修改AWVS特征及设置代理来绕过WAF

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

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

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


waf 拦截机制

  • 扫描速度过快被 ban

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

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

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

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

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

我们再来看下宝塔规则库

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

  • payload 特征被 waf 识别封禁

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

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


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


解决办法

  • 针对扫描速度过快,我们可以采用延时扫描,代理池, 伪造 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 头,这样我们就能进行绕过了。

在 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 识别,我们将字典中的数据变异,来进行扫描

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

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

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


案例

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

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

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

绕过宝塔: 延时,代理池

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

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

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

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

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

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

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

然后在 awvs 内设置代理

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

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

隧道代理还可以利用在 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)"

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

前路漫漫,一起学习


原文标题:waf绕过-成功使用扫描器

原文地址 www.freebuf.com

文章作者:  BigYoung
版权声明:  本网站所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 BigYoung !



z