SQL注入 绕过WAF 绕过cc防护,没想到爬虫这么有用!!!比代理池还有延迟好用太多。
一个实战:see https://www.freebuf.com/articles/network/262295.html
1、绕过 (安全狗) ,自己搭建环境测试
示例绕过:
如何发现上述payload,使用的就是模糊测试,代码示例如下:
If len部分也可以修改成if safedog in result 。。。
2、常见waf绕过方式:
其中IP白名单可以设置为站点的IP。
利用静态资源绕过,因为老的waf对于静态资源是不检测的,所以可以绕过。例如攻击:www.xxx.com/xxx.php?a=b会被拦截但是www.xxx.com/xxxx.php/xx.png?a=b却不会拦截!但是攻击效果是一样的。再看如下代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 | bogon:wafw00f $ cat tmp.py from urllib.parse import urlparse url = 'https://docs.google.com/xxx.php/x.txt?a=b' result = urlparse(url) print(result) url = 'https://www.cnblogs.com/bonelee/p/14907671.html/xx.jpg' result = urlparse(url) print(result) bogon:wafw00f $ python tmp.py ParseResult(scheme= 'https' , netloc= 'docs.google.com' , path= '/xxx.php/x.txt' , params= '' , query= 'a=b' , fragment= '' ) ParseResult(scheme= 'https' , netloc= 'www.cnblogs.com' , path= '/bonelee/p/14907671.html/xx.jpg' , params= '' , query= '' , fragment= '' ) |
看来站点处理还是有bug。
3、爬虫白名单,在扫描的时候特别有用,伪造成爬虫,绕过检测。
自己写示例代码(有工具直接支持吗???):
我自己写的一个示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | #coding: utf-8 import requests headers = { #'User-Agent':"Mozilla/5.0 (compatible;Baiduspider-render/2.0; +http://www.baidu.com/search/spider.html)" 'User-Agent' : "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" } domain = "http://XXX.com/" with open ( "dicc.txt" ) as f: for line in f: path = line.strip() url = domain + path res = requests.get(url=url,headers=headers) status = res.status_code print( "url:{} status:{}" . format (url, status)) # print("response: ", res.text) # break |
4、利用数据库特效绕过,例如mysql特殊语法,
在MySQL里,多行解释 是 /* */,这个是SQL的标准
但是MySQL扩张了解释 的功能
假如 在起头的/*后头加了惊叹 号,那么此解释 里的语句将被推行
比如
mysql> /*! select * from test */;
+------+
| id |
+------+
| 1 |
| 2 |
| 3 |
+------+
3 rows in set (0.00 sec)
再看如下语句
/*!50001 select * from test */;
这里的50001表示假如 数据库是5.00.01以上版本,该语句才会被推行
一个绕过示例:
5、当然还有一些SX的waf直接使用了union select关键字,而没有对union all select进行过滤,因此,加一个all即可绕过检测
fuzz测试
在安全测试中,模糊测试(fuzz testing)是一种介于完全的手工渗透测试与完全的自动化测试之间的安全性测试类型。在某些有安全狗一类的防护系统下,如果要手工判断过滤规则需要安全工作者很高的执行力,在这些情况下fuzz测试可以充分利用机器生成无规则且大量的数据来进行测试,拥有很高的效率。
1
|
|
这里将fuzz常用到的内联注释、特殊字符等,随机组合(换行 %0A),循环添加到union select之间,如果返回的页面正常显示user,没有进入防护系统的拦截界面,说明这里的表达式没有被过滤,然后写到results.txt中保存。
之后我们可以利用results.txt分析到的规则,再完善前面的其他脚本,进行自动化注入。
5、上述fuzzy结果如何应用于sqlmap呢???因为sqlmap有tamper模块,所以自己写一个就可以。
如下:
然后运行:
rdog.py就是自己写的。
注意参数 --delay是为了防止cc。当然为了绕过cc,除了延时、代理池外,最方便的思路是自己使用spider绕过,UA里修改下就可以,如下:
当然,更灵活的方式是使用-r,自己定制header,如下:
然后-u那里修改为-r xxxx.txt 即可!!!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」
2018-06-20 leetcode 342. Power of Four
2018-06-20 leetcode 345. Reverse Vowels of a String
2018-06-20 CC 攻击检测研究现状
2018-06-20 DDOS SYN Flood攻击、DNS Query Flood, CC攻击简介——ddos攻击打死给钱。限网吧、黄网、博彩,,,好熟悉的感觉有木有
2017-06-20 EM算法——有隐含变量时,极大似然用梯度法搞不定只好来猜隐含变量期望值求max值了
2017-06-20 SVM最通俗的解读
2017-06-20 SVM中的线性分类器