CVE漏洞中文网

0DayBank一个专门收集整理全球互联网漏洞的公开发布网站
  1. 首页
  2. 百科
  3. 正文

扫描器

2017年5月23日 819点热度 0人点赞 0条评论

扫描器

  • 首页
  • 分类阅读
  • 文库
  • 专栏
  • 公开课
  • 商城
  • 漏洞盒子
注册 | 登录
投稿

[科普]Waf实现扫描器识别 彻底抵挡黑客扫描

Seay2013-11-08共149841人围观 ,发现 15 个不明物体WEB安全

目前安全测试的软件越来越多,也越来越强大,越来越多的人成为[黑客],今天在网上看到一个文章说拦截wvs的扫描,勾起了我写这篇文章的欲望。

因为公司的三大业务之一就有一个云waf,每天拦截的日志里面,有将近90%的请求是扫描器发出,waf接收到请求会解析数据包,然后过一遍规则,过完成百上千条规则必定对性能有一定的影响。如果能识别出来是人还是扫描器的请求,就可以在这方面节省很大的资源。

下面的分析介绍只针对web安全扫描器。

目前全能型的扫描器主要是wvs(Acunetix Web Vulnerability Scanner)、AppScan、WebInspect,国内的像aisec、bugscan等等…还有国内那些老安全厂商的扫描器就不说了,主要提一下像wvs这种使用率比较高的。另外还有目录文件型的扫描器、注入工具(类似sqlmap、Havij)等等。

扫描器识别主要从以下几点来做:

  1、扫描器指纹(head字段/请求参数值等)
  2、单IP+ cookie某时间段内触发规则次数
  3、隐藏的链接标签(<a>)
  4、Cookie植入
  5、验证码验证
  6、单IP请求时间段内Webserver返回http状态404比例

一、扫描器指纹(head字段/请求参数值等)

目前最常见的手法就是收集扫描器的指纹特征来做识别,不同的扫描器都有自己的一些特征,比如发出的请求会加一些特定的head 字段,测试漏洞的请求参数的值会带上自己扫描器的名称等。

下面通过抓网络数据包来看常见扫描器的指纹特征:

wvs(Acunetix Web Vulnerability Scanner):

下面是我抓到的一个wvs的请求

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拦截中调取到的结果。

根据以上抓取到的特征,我们可以把这个作为wvs的一个指纹,在waf中进行过滤。

Appscan:

同样的,appscan也有自己的一些特征,如下

Bugscan:

关于Bugscan,我咨询了一下作者,作者给了XSS模块的扫描源码我看了下,主要特征是:

–>’”><H1>XSS@HERE</H1>,另外还有一些特征就不一一列举。

注意:并不是所有的请求都会带有扫描器的特征,比如下面的一个包也是wvs发出的,但是没有带上面我们说的特征,扫描器指纹特征只能抵挡住一部分的扫描,但是我们可以利用这些信息识别出扫描器然后干掉IP等。

二、单IP+ cookie某时间段内触发规则次数

根据某个IP+ cookie某时间段内触发waf拦截规则的次数大于设定的某个阀值,比如在20秒内,某个IP+cookie触发waf拦截规则10次。

数据证明如下图:

另外还可以根据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。

隐藏的标签链接是指人看不见的链接,如<a href=”http://www.cnseay.com/”></a> 形式,人是点击不到的,只有软件能够匹配出这个地址,我们新建一个网页,抓扫描器数据包测试。

<html>
<head>
<title>test</title>
</head>
<body>
<a href="</a>
</body>
</html>

通过抓取wvs的数据包可以看到,扫描器很快的捕获了http://localhost/1.php?id=1这个链接,并进行漏洞测试。

当然如果在正常情况下也给所有用户植入这种代码是非常令人反感的,用户体验也会大打折扣,可以在前期先做一些条件限制,比如固定时间段内触发waf拦截规则到达预定阀值,再给这个用户单独植入一个隐藏链接。

  1. 四、Cookie植入

Cookie植入的方式跟上面讲的隐藏链接植入大同小异,实现原理是:当一个IP+user angent在固定时间段内触发规则的次数到达一定阀值,给发起请求的这个人植入一个cookie,如果下次再请求没有携带这个cookie,则说明是扫描器。

cookie植入有利有弊,优点是更直接,种下cookie马上就能根据下一个请求判断。缺点是这个方式在基于webkit的扫描器上面行不通。

五、验证码验证

验证码验证的方式跟上面的cookie植入也大同小异,不过是把cookie换成了验证码的方式,这种方法也被用于防CC攻击。

  1. 六、单IP请求时间段内Webserver返回http状态404比例

这种方法主要用来应对探测敏感目录和文件的扫描器,这类的扫描器都是基于字典文件,通过对字典内的url进行请求获得的返回信息来进行判断目录或者文件的是否存在。

如果某个IP在一段时间内请求频率过快,这时候waf可以进行收集一段时间内webserver返回404状态数目,到达一定阀值后进行封杀。

看过上面几种方法的介绍,应该大部分人都会想到两个问题,

  1.  一大拨人使用同一个公网IP,怎么判断谁是攻击者?
  2.  一大拨人使用同一个公网IP,怎么才能保证不误杀?

第一,对于怎么判断攻击者,当然不能单纯的从一个IP判断,一般一个完整的http请求都会带有

user angent、cookie等信息,我们可以结合ip+user angent来判断请求的人,或者再加一个cookie的维度,当然在给这个攻击者植隐藏链接、cookie或者验证码之前,需要它触发一些规则阀值,以免影响用户体验。

第二,说到怎么保证不误杀,也就是怎么去封杀的问题,关键在于怎么二次判断攻击者,目前最好的方法也是利用ip+user angent,在判断是扫描器请求后,根据IP+user angent进行封杀,另外也是靠cookie封杀,关键在于是携带某个cookie键的封杀掉还是不带的封杀掉。

PS:如果误杀太大,如果刚好哪个妹纸在线看小电影到激情片段,这是多伤人妹纸的心啊。

Seay

Seay14 篇文章等级: 4级
|
|
  • 上一篇:走近科学:如何利用Google机器人进行SQL攻击
  • 下一篇:移花接木,如何利用第三方服务发动WEB攻击

这些评论亮了

  • 匿名回复
    )27(亮了
  • iLink(1级)回复
    屏蔽WVS之类的检测工具不能从根本上解决漏洞存在性问题,那是不理性的做法,不利于问题的发现和解决。
    )17(亮了
  • xx(1级)深圳某快递公司专业送快递、查水表!回复
    拒绝无脑喷,警告一次 by FB客服
    )6(亮了
发表评论

已有 15 条评论

  • swordzjj 2013-11-08回复1楼

    另可错杀一千,不可放过一个

    亮了(1)
  • MeirLin (5级)研表究明,汉字的序顺并不定一能影阅响读,比如当你看完这句话后... 2013-11-08回复2楼

    博客被劫持了

    亮了(2)
  • axis 2013-11-08回复3楼

    呵呵

    亮了(4)
  • iLink (1级) 2013-11-08回复4楼

    屏蔽WVS之类的检测工具不能从根本上解决漏洞存在性问题,那是不理性的做法,不利于问题的发现和解决。

    亮了(17)
  • softbug (7级)011101000110100001100001011011... 2013-11-08回复5楼

    感谢seay给我们带来了如此好的文章,我收藏了,为waf界的朋友谋福利了。

    亮了(1)
  • h4ck0r 2013-11-08回复6楼

    喜欢这样的分享,赞楼主~

    亮了(2)
  • 匿名 2013-11-08回复7楼

    亮了(27)
  • xx (1级)深圳某快递公司专业送快递、查水表! 2013-11-08回复8楼

    拒绝无脑喷,警告一次 by FB客服

    亮了(6)
  • anonymous 2013-11-08回复9楼

    搞脚本后面还有前途吗?

    亮了(2)
  • c 2013-11-11回复10楼

    hehe
    现在都喜欢这样干了
    以后肯定有分布式攻击云
    让你判断

    亮了(1)
  • 非主流杀马特屌丝联盟盟主 2013-11-11回复11楼

    awvs配置其实可以修改部门

    亮了(2)
    • winger (1级)放下才能高飞 2013-11-12回复

      @非主流杀马特屌丝联盟盟主 某个2x经理命令我们看了这文章, 让后用代理改关键字, 我说你这智商真让人捉急啊. 返回的数据不一定是发送时标识的. 改了让扫描器怎么识别. 就算这种discovery模式是少部分, 人家一个攻击语句次数+IP统计, 直接定位了攻击源了, 修改通用扫描器payload标识有用? 孩子别骗自己了, 要不就是自己写, 要不就用纯开源的. 不然这去标识简直是"掩耳盗铃" . 想是一回事, 做是另外一回事. 经理们洗洗回家300去吧.

      亮了(4)
  • 河蟹 2013-11-17回复12楼

    呵呵。云waf。呵呵。直接扫ip不经过云waf。呵呵。

    亮了(2)
  • netorgcom (4级) 2013-11-27回复13楼

    扫扫更健康

    亮了(0)
  • demon 2014-05-24回复14楼

    其实你按着报头来做,报头改了还是没法。

    亮了(1)

必须您当前尚未登录。登陆?注册

必须(保密)

表情插图

取消

Seay

Seay

安全宝安全工程师

14 篇文章17 条评论

相关阅读

  • 阿里云云盾Web应用防火墙深度测评
  • Web应用防火墙(WAF)竞品分析
  • 为什么WAF(应用防火墙)不能确保数据库安全?
  • 安全科普:SQLi Labs 指南 Part 1
  • 安全公司新星Aorato推出“行为防火墙”

特别推荐

关注我们 分享每日精选文章

不容错过

  • 基于约束的SQL攻击鸢尾2017-01-06
  • 互联网公司WAF系统设计chengfangang2017-03-08
  • 苹果高管公开反对iPhone解锁提议,美国政府将与苹果公司对簿公堂FireFrank2016-03-11
  • 逆向工程(三):实例破解VillanCh2015-12-02

FREEBUF

  • 免责声明
  • 关于我们
  • 加入我们

广告及服务

  • 寻求报道
  • 广告合作
  • 联系我们
  • 友情链接

关注我们

  • 官方微信
  • 新浪微博
  • 腾讯微博
  • Twitter

赞助商

Copyright © 2013 WWW.FREEBUF.COM All Rights Reserved 沪ICP备13033796号

css.php

正在加载中...

0daybank

标签: 暂无
最后更新:2017年5月23日

小助手

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

文章评论

您需要 登录 之后才可以评论

COPYRIGHT © 2024 www.pdr.cn CVE漏洞中文网. ALL RIGHTS RESERVED.

鲁ICP备2022031030号

联系邮箱:wpbgssyubnmsxxxkkk@proton.me