第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都没有反应,
先过了吧这道题
标签:username,15,uname,--,闭合,lab,sqli,sleep,password From: https://www.cnblogs.com/limihacker/p/17442333.html