freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

waf绕过-成功使用扫描器
2021-09-10 11:26:46


大佬轻喷,本篇都是一些基本的骚操作,小白不易,谢谢。

各位表哥们在做项目的和挖src的时候,想挖出尽可能多的漏洞。这时在已经授权的情况下,开启扫描器一顿ak狂扫,说不定可以收获几个洞洞,但是烦恼来了,有waf,这就导致了误报,更直接的就是被ban了ip。
image

这真是个悲伤的故事。为了解决这种情况的发生,我们先来探讨waf的拦截机制


waf拦截机制

  • 扫描速度过快被ban

自动扫描器在开扫时,就会在短时间内发送大量的数据包,这对服务器会造成负荷,影响服务器运行,waf自然会对其进行拦截。

waf可以开启cc防御来抵御扫描器扫描

image

通过设置每秒钟ip的访问上限,来配置cc防御的基本设置,一旦超过这个上限就会被拦截
image

  • 扫描器指纹被waf识别出来导致被ban

waf有着自己所收集的常用工具指纹库,扫描器在发送数据包时都有自己的指纹头,这些指纹头一般都在数据包中的UA头体现
image

我们再来看下宝塔规则库
image

可以看见常见扫描器awvs,appscan等常见扫描器都被记录在内

  • payload特征被waf识别封禁

扫描器在进行漏洞在扫描时,会发送大量的具有攻击性的payload给目标,waf识别出来了这是带有攻击性的payload,自然会对其进行拦截,导致我们的扫描器误报甚至ip被ban

想必各位都有在测试sql注入时,输入and 1=1 偶吼,被拦截了,这就是payload被识别出来了导致被拦截
image


知道了为啥会被拦截,我们就好对症下药


解决办法

  • 针对扫描速度过快,我们可以采用延时扫描,代理池,伪造ua的方法来进行绕过

先用延时扫描举例,代理池绕过,伪造ua的方法下面会提

比如说sqlmap中的delay参数

python sqlmap.py -u xxx.xxx.com --delay 2

通过delay参数,来延时扫描绕过cc防护,这时有小伙伴就说我用了delay参数啊,但是还是被ban了(这里假设是扫描速度过快导致),那肯定是延时时间不够,就拿阿里云服务器做例子,阿里云服务器延时2秒被ban,延时2.5秒被ban,只有延时3秒才可以绕过。

  • 针对扫描器指纹被waf修改,可以修改UA头,伪造模拟真实用户,使得扫描器指纹改变,让waf识别不出来

比如说awvs

我们上文提到了宝塔的指纹库中有awvs,然而最新版的awvs,可以设置UA头,这样我们就能进行绕过了。
image

在ua头这里,建议大家选择爬虫引擎的ua头,因为有些网站考虑到自身流量的问题,希望网站被爬虫引擎收录,而爬虫引擎的扫描速度自然也是极快的,为了防止爬虫引擎被ban,有些waf(某狗)就会将爬虫引擎设置在白名单内,此时我们伪造成爬虫引擎的ua头,就可以成功地绕过cc防护和扫描器指纹,一举两得

贴出常见爬虫的ua头

Mozilla/5.0 (compatible; Baiduspider-render/2.0; +http://www.baidu.com/search/spider.html)
Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0);
“Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)”
“Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)”
“Sosospider+(+http://help.soso.com/webspider.htm)”
“Sogou web spider/4.0(+http://www.sogou.com/docs/help/webmasters.htm#07)”
  • 针对payload特征被waf识别,我们将字典中的数据变异,来进行扫描

比如说对一个网站进行目录扫描,而目录扫描可能会出现这种情况
image

我们都知道文件上传的时候,如果对方是windows系统,我们可以在文件名后面加个空格或者加个.或者加::$DATA,就可以绕过黑名单限制

这里我们同样也可以利用这个特性,在扫描路径后面加个.或者空格或者::$DATA来进行绕过


案例

在实战中,我们会采用awvs,appscan等工具对网站进行整个web漏洞扫描,我们自然可以通过延时扫描来绕过waf的cc防护,但是虽然绕过了,我们花费的时间自然是极大的,一两个小时出结果,想必也等不及。这时我们祭出终极大法:隧道代理。

安全狗+宝塔+阿里云的网站做个例子

绕过安全狗:延时,ua头修改,代理池

绕过宝塔:延时,代理池

绕过阿里云:延时,代理池

所以面对这个架构的网站,我们可以采用延时和代理池绕过,延时效率低,我们介绍下代理的方法

代理可以选择白嫖的和付费的

白嫖的代理,表哥们大多是通过爬虫工具将代理网站上的代理ip爬下来,然后逐一验证有效性,最后存放在本地。有几个缺点就是这个白嫖过来的ip有效性可能只有一两分钟左右,还有就是怎样实现发送一个数据包,就换一个ip接着扫描,这需要自己写脚本来实现,是比较麻烦的。而付费的代理则可以完美解决以上问题

去快代理买个隧道代理,记住一定要选择隧道代理每次请求换ip的,一天也不贵,就一杯奶茶钱
image

隧道代理有个优点就是可以实现每次请求更换ip,并且ip数量多,正常情况下完全不用担心ip数量不够

接着去会员中心将本机ip地址设置在白名单内,这样使用买的隧道接口就不需要输入账号密码
image

然后在awvs内设置代理
image

然后就可以愉快地开扫了,并且也是成功扫出了漏洞

扫完看下宝塔日志,可以看见被封的ip都是代理Ip,并且每个Ip都不一样,实现了每个请求都更换ip
image

隧道代理还可以利用在sqlmap上,表哥们在发现注入点后,兴致旦旦的开启sqlmap扫,结果一片姨妈红,事后发现ip还被ban了真是烦恼。这时我们就可以利用sqlmap的proxy参数使用隧道代理来开扫,实现每次请求换ip,成功拿到数据。之前我尝试过使用tor代理,使用代理池弄了几天都没有成功实现每次请求换ip(我菜),出了20块钱就解决了一直困扰我的问题

sqlmap命令

python sqlmap.py -u xxx.xxx.com --proxy="http://tps116.kdlapi.com:15818" --user-agent="Mozilla/5.0 (compatible; Baiduspider-render/2.0; +http://www.baidu.com/search/spider.html)"

隧道代理还有许多妙用,还有望各位表哥去探索

前路漫漫,一起学习

文章受启发于小迪渗透学习

# web安全 # waf绕过
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录