题库地址:http://hackinglab.cn
题目:
key又又找不到了
key分值: 200
key小明这次哭了,key又找不到了!!! key啊,你究竟藏到了哪里,为什么我看到的页面上都没有啊!!!!!!
Writeup:
点击(到这里找key_)抓包后,鼠标右键,选择send to Repeater
点击go发送数据包后,在返回包即可看到key值
题目:
快速口算
分值: 350
小明要参加一个高技能比赛,要求每个人都要能够快速口算四则运算,2秒钟之内就能够得到结果,但是小明就是一个小学生没有经过特殊的培训,那小明能否通过快速口算测验呢?看到的页面上都没有啊!!!!!!
Writeup:
每两秒会刷新一次算术题,当然我们人工算是不可能完成的,思路就是写个python脚本,爬取这段算术题,然后也是利用脚本提交,提交之后查看返回包就可以看到key值
这里利用到了requests模块去爬取题目,然后利用re模块匹配算术题
import requests,re
r = requests.Session()
url='http://lab1.xseclab.com/xss2_0d557e6d2a4ac08b749b61473a075be1/index.php'
html=r.get(url).content
results=eval(re.findall('([0-9].*)=<',html)[0])
data = {'v':results}
print r.post(url,data=data).text
题目:
这个题目是空的
分值: 100
Tips:这个题目真不是随便设置的。 什么才是空的呢? 通关地址:没有,请直接提交答案(小写即可)
Writeup:
写过脚本的人大家都知道空就是null,null就是正确答案
题目:
怎么就是不弹出key呢?
分值: 150
提交说明:提交前14个字符即可过关
Writeup:
查看源代码,可以看到
创建个html文件,将代码复制下来,去除掉前面定义的一些函数
弹窗代码改成:
alert("key is first 14 chars "+d.substr(0,14));
题目:
逗比验证码第一期
分值: 100
逗比的验证码,有没有难道不一样吗?
Writeup:
验证码失效,进入靶场后可以看到有提示:登陆密码是4位纯数字数,第一位不为0
只要我们输入正确的账号和正确的验证码后,一直点击go发包,可以看到验证码并没有更新,并且一直提示pwd error,说明只要我们只要保持当前会话,验证码就不会失效
右键选择send to intruder(发送到爆破模块)
1.选择Clear(清除当前已选的标记)
2.鼠标左键框选密码
3.点击Add(标记需要爆破的值)
1.选择payloads(设置我们爆破密码的规则)
2.选择Numbers(数字类型的爆破)
3.from是从多少开始,to是到多少结束
step是数字爆破的规则,如果设置2的话,他就会按照1000,1002,1004…这种爆破规则去进行爆破(相当去跳过1个数值),至于这个设置大家可以亲自实验,可以很明显的看出效果
4.先单击一次hex,再点击Decimal(这一步是为了刷新我们设置好的规则,意义不大,如果不进行这一步的话,payload count那里会一直为0)
点击又上角的Start attack(开始爆破)
爆破完成后,点击length(一般登陆成功和密码错误的返回包值是不一样的,所以一般看返回值就能看出哪一个是登陆成功的),查看正确密码的数据包,即可看到key
题目:
逗比验证码第二期
分值: 150
验证便失效的验证码
Writeup:
还是验证码失效题,抓包的时候删除验证码的值,就能绕过
按照上一题的爆破步骤去爆破,即可拿到key
题目:
逗比的验证码第三期(SESSION)
分值: 150
尼玛,验证码怎么可以这样逗比。。
验证码做成这样,你家里人知道吗?
Writeup:
还是验证码失效题,这题需要连带cookie一起删除(cookie会匹配一个验证码,存在会话凭证时,一个验证码用过一次后就不能重复使用了,所以连同cookie一起删除即可)
继续按照第五题的爆破步骤去爆破,即可获取key
题目:
微笑一下就能过关了
分值: 150
尼玛,碰到这样的题我能笑得出来嘛…
Writeup:
php伪协议题
查看源代码时可以看到一个超链接,点击可以看到源码
可以看到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;
if (preg_match ('/_/', $_SERVER['QUERY_STRING'])) $smile = 0;
if ($smile) {
if (@file_exists ($_GET['^_^'])) $smile = 0;
}
if ($smile) {
$smile = @file_get_contents ($_GET['^_^']);
if ($smile === "(●'◡'●)") die($flag);
}
?>
题意是 输入了. % 数字 http https ftp telnet _ 如果匹配到了,$smile值就会为0
file_exists()函数会判断文件存不存在,如果不存在,则返回false,如果存在返回true。
但这里用了if条件,如果文件存在,则$smile=0
file_get_contents()把整个文件读入一个字符串中,但我们并不知道文件名,而且文件名内容要等于(●’◡’●),不过data协议可以实现这类方法
1.匹配字符串中,笑脸得^_^与匹配字符串_有冲突,可以利用url编码绕过
2.data协议使用方法,使用第一种方法就能达到获取flag
data:,<文本数据>
data:text/plain,<文本数据>
data:text/html,
data:text/html;base64,
data:text/css,
data:text/css;base64,
data:text/javascript,
data:text/javascript;base64,
data:image/gif;base64,base64编码的gif图片数据
data:image/png;base64,base64编码的png图片数据
data:image/jpeg;base64,base64编码的jpeg图片数据
data:image/x-icon;base64,base64编码的icon图片数据
payload:
?^%5f^=data:,(●'◡'●)
题目:
逗比的手机验证码
分值: 150
你的手机号码是13388886666,验证码将会以弹窗的形式给出
Writeup:
验证码与手机号未绑定漏洞
先利用我们的手机号进行登陆
他会给提示,需要用13388886667这个手机号登陆
我们返回刚才登陆页面,用我们的手机号重新获取一下验证码,
然后修改手机号码为13388886667
点击登陆之后就可以看到key值了
一般来说短信验证码仅能使用一次,验证码和手机号未绑定,验证码一段时期内有效。
关于验证码其他漏洞的讲解可以观看以下文章:
https://blog.csdn.net/Sunnyyou2011/article/details/79803481
题目:
基情燃烧的岁月
分值: 150
Tips:你是一名黑客,你怀疑你的“(男/女)闺蜜”的出轨了,你要登陆TA手机的网上营业厅查看详单,一探究竟! 闺蜜手机号码:13388886666
Writeup:
验证码爆破漏洞,服务端未对验证时间、次数进行限制。
进入题目,点击获取验证码后,提示验证码是3位数,不以0开头
输入验证码后,拦截数据包,发送到intruder进行爆破
标记验证码位
设置好数字之间的长度,就可以开始进行爆破了
找到正确的验证码提交时,他给了下一个提示,需要我们再登陆13399999999手机号
利用刚才相同的手法,13399999999手机号获取验证码,爆破验证码成功后即可看到key
题目:
验证码识别
分值: 350
验证码识别
Tips:验证码依然是3位数
Writeup:
利用验证码识别工具然后进行爆破
利用工具:Pkav HTTP Fuzzer
进入靶场,先获取验证码
输入手机验证码以及图片验证码,然后进行抓包
复制数据包到Pkav HTTP Fuzzer ,标记需要爆破的值
在Pkav HTTP Fuzzer 右边设置爆破手机验证码的字典规则
复制图片验证码
选择图片验证码识别
1.选择图片验证码识别
2.填入验证码图片地址
3.设置识别字符
4.识别图片测试
选择重放选项,设置发包线程,验证码长度(多线程会失败,大家可以自行测试)
开始爆破验证码
有时不会成功,可能在运气不好的时候,正好爆破那个验证码,图片正好识别出错(我就遇到过一次 - -)
点击长度(和burp suite一样,成功和失败的返回长度是不一样的),查看返回包就可以看到flag了
题目:
XSS基础关
分值: 50
XSS基础:很容易就可以过关.XSS类题目必须在平台登录才能进行.登录地址请参考左侧<子系统>
Writeup:
在输入框输入xss代码,能弹窗即可获取key
<script>alert(HackingLab)</script>
题目:
XSS基础2:简单绕过
分值: 100
很容易就可以过关.
Writeup:
xss绕过
过滤了