目前安全测试的软件越来越多,也越来越强大,越来越多的人成为[黑客],今天在网上看到一个文章说拦截wvs的扫描,勾起了我写这篇文章的欲望 。
![WAF是如何识别扫描器的?](http://img.jiangsulong.com/220409/0952111301-0.jpg)
文章插图
【WAF是如何识别扫描器的?】因为公司的三大业务之一就有一个云waf,每天拦截的日志里面,有将近90%的请求是扫描器发出,waf接收到请求会解析数据包,然后过一遍规则,过完成百上千条规则必定对性能有一定的影响 。如果能识别出来是人还是扫描器的请求,就可以在这方面节省很大的资源 。
下面的分析介绍只针对web安全扫描器 。
目前全能型的扫描器主要是wvs(Acunetix Web Vulnerability Scanner)、AppScan、WebInspect,国内的像aisec、bugscan等等…还有国内那些老安全厂商的扫描器就不说了,主要提一 下像wvs这种使用率比较高的 。另外还有目录文件型的扫描器、注入工具(类似sqlmap、Havij)等等 。
扫描器识别主要从以下几点来做:
一、 扫描器指纹(head字段/请求参数值等)
二、 单IP+ cookie某时间段内触发规则次数
三、 隐藏的链接标签(<a>)
四、 Cookie植入
五、 验证码验证
六、 单IP请求时间段内Webserver返回http状态404比例
一、扫描器指纹(head字段/请求参数值等)
目前最常见的手法就是收集扫描器的指纹特征来做识别,不同的扫描器都有自己的一些特征,比如发出的请求会加一些特定的head 字段,测试漏洞的请求参数的值会带上自己扫描器的名称等 。
下面通过抓网络数据包来看常见扫描器的指纹特征:
wvs(Acunetix Web Vulnerability Scanner):
下面是我抓到的一个wvs的请求
![WAF是如何识别扫描器的?](http://img.jiangsulong.com/220409/0952115549-1.jpg)
文章插图
1 2 3 4 5 6 7 8 9 10 11 12 13 GET /help/website-performance-settings/x HTTP/1.1 Pragma: no-cache Cache-Control: no-cache Referer: http://www.anquanbao.com/help Acunetix-Aspect: enabled Acunetix-Aspect-Password: 082119f75623eb7abd7bf357698ff66c Acunetix-Aspect-Queries: filelist;aspectalerts Cookie: xxxxxxxxxxxx Host: www.anquanbao.com Connection: Keep-alive Accept-Encoding: gzip,deflate User-Agent: Mozilla/5.0 (windows NT 6.1; WOW64) AppleWebKit/537.36 (Khtml, like Gecko) Chrome/28.0.1500.63 Safari/537.36 Accept: */*
请求头里面有三个很明显的标志:
Acunetix-Aspect: enabled
Acunetix-Aspect-Password: 082119f75623eb7abd7bf357698ff66c
Acunetix-Aspect-Queries: filelist;aspectalerts
另外在请求的参数值,比如URL跟POST数据中都有很明显的acunetix_wvs_security_test特征,下图是我从waf拦截中调取到的结果 。
![WAF是如何识别扫描器的?](http://img.jiangsulong.com/220409/095211O96-2.jpg)
文章插图
根据以上抓取到的特征,我们可以把这个作为wvs的一个指纹,在waf中进行过滤 。
Appscan:
同样的,appscan也有自己的一些特征,如下
![WAF是如何识别扫描器的?](http://img.jiangsulong.com/220409/0952112447-3.jpg)
文章插图
Bugscan:
关于Bugscan,主要特征是:
-->'"><H1>XSS@HERE</H1>,另外还有一些特征就不一一列举 。
![WAF是如何识别扫描器的?](http://img.jiangsulong.com/220409/09521164O-4.jpg)
文章插图
注意:并不是所有的请求都会带有扫描器的特征,比如下面的一个包也是wvs发出的,但是没有带上面我们说的特征,扫描器指纹特征只能抵挡住一部分的扫描,但是我们可以利用这些信息识别出扫描器然后干掉IP等 。
![WAF是如何识别扫描器的?](http://img.jiangsulong.com/220409/0952114427-5.jpg)
文章插图
二、单IP+ cookie某时间段内触发规则次数
根据某个IP+ cookie某时间段内触发waf拦截规则的次数大于设定的某个阀值,比如在20秒内,某个IP+cookie触发waf拦截规则10次 。
数据证明如下图:
![WAF是如何识别扫描器的?](http://img.jiangsulong.com/220409/0952113428-6.jpg)
文章插图
另外还可以根据IP+user angent等,或者更多维度 。
三、隐藏的链接标签等(<a>)
扫描器的爬虫会把页面里面的所有链接都抓出来去做漏洞探测,特别是现在基于webkit一类的扫描器,能够渲染css跟js,可以爬出更多的链接测试 。
下面贴出一个百度百科关于webkit的介绍
WebKit 是一个开源的浏览器引擎,与之相对应的引擎有Gecko(Mozilla Firefox 等使用)和Trident(也称MSHTML,IE 使用) 。同时WebKit 也是苹果mac OS X 系统引擎框架版本的名称,主要用于Safari,Dashboard,Mail 和其他一些Mac OS X 程序 。WebKit 前身是 KDE 小组的 KHTML,WebKit 所包含的 WebCore 排版引擎和 JSCore 引擎来自于 KDE 的 KHTML 和 KJS,当年苹果比较了 Gecko 和 KHTML 后,仍然选择了后者,就因为它拥有清晰的源码结构、极快的渲染速度 。Apple将 KHTML 发扬光大,推出了装备 KHTML 改进型 WebKit 引擎的浏览器 Safari 。
推荐阅读
- 11个审查Linux是否被入侵的方法
- ZFS文件系统是什么
- 世界上最干旱的大洲是? 最干旱的大洲是哪个大洲
- 昆虫记中谁是一种长得很漂亮的蛾 什么是一种很漂亮的蛾它们中最大的来自欧洲
- 梦见别的男人裸睡是啥意思 梦见自己裸睡还有男人抱着
- 中注穴
- 日环食是什么现象 这样的日环食也被称为
- 梦见房子倒塌是什么预兆,但无人伤亡 梦见房子倒塌人没事是什么意思
- 埃及文明是伪造的吗 古埃及文明是伪造的
- 巴颜喀拉山是黄河的发源地 巴颜喀拉山黄河源头