了解AWVS的漏洞贪心设计,一个默认静态页竟然扫了3000+HTTP请求!

admin 2022年4月21日00:17:43评论223 views字数 2726阅读9分5秒阅读模式

Acunetix WVS是目前大众可见的,设计最好的Web漏洞扫描工具之一,有极高的分析价值。

  • 对于学习Web安全的同学,可以通过它来认识常见Web漏洞,其内置了超过500个扫描插件,覆盖了你见过、以及还没见过的漏洞

  • 对于开发扫描器的同学,可以借鉴其扫描框架设计、漏洞检测的思路。其中不乏巧妙的设计


如标题所说,我们使用AWVS默认配置,扫描一个只包含index.html静态页的站点,会发现一个惊人的结果,扫描器竟然产生了多达3000+HTTP请求。小网站被AWVS扫挂,也并不是什么稀奇的见闻了。另一方面,AWVS能发现别家扫不到的漏洞,也正是因为其 “漏洞贪心” 的设计。本篇我们先介绍一下AWVS插件的目录结构,以及在URL发现方面的实现方法,这是它的核心能力之一。


了解AWVS的漏洞贪心设计,一个默认静态页竟然扫了3000+HTTP请求!

测试静态页

了解AWVS的漏洞贪心设计,一个默认静态页竟然扫了3000+HTTP请求!

扫描统计


   AWVS插件目录结构

这里有必要介绍一下AWVS的插件目录结构,以Windows为例,其插件为压缩包形式存放在类似下面的目录:

C:Program Files (x86)Acunetix14.7.220401065wvsc_blob.bin

通过网上已公开的脚本,可以将其解压,产生如下目录:

+---Crawler    +---deepscan+---httpdata       +---input_group     +---lib           +---location      +---RPA   +---Scripts|   +---Includes |   +---PerFile  |   +---PerFolder    |   +---PerScheme  |   +---PerServer  |   +---PostCrawl  |   +---PostScan |   ---WebApps---target
  • Crawler:  爬虫阶段信息收集,例如上传点、SSL弱加密套件,作用不太大

  • Deepscan: 扫描客户端模板注入漏洞,命中率低,即使命中,也只换算成一个XSS漏洞,依赖浏览器动态检测,高成本低收益,一般禁用

  • Httpdata:检测每个HTTP Response的正文。例如:

    • 把外链投递到Google Safe Browsing,检测是不是存在恶意外链

    • 自动发现页面中的登录表单,扫描是否存在弱口令

    • 检测引入的依赖js是否存在漏洞

    • CMS识别

    • 发现POST请求,全局扫一次Json反序列化漏洞      

  • input_group:     

  • Lib:公共模块           

  • Location: 检测每个Location的插件,在下方Scripts中,还有PerFile/PerFolder的概念,你可以认为Location是 PerFile+PerFolder,它是不包含参数和hash的

  • RPA:这里主要是分析爬虫HTTP Response,检测是否存在弱秘钥。看起来像是Robot Page Analysis的缩写。至于为什么没有放Crawler,基本的考虑是

    • 不要阻塞爬虫程序,这里的扫描更heavy,需要单独启动分析线程/进程

    • 有的扫描通过flow.callIdOnce控制了全局只扫1次。

  • --Scripts

  •   +---Includes:公共模块

  •   +---PerFile:应用于每个文件的扫描插件

  •   +---PerFolder: 应用于每个文件夹的扫描插件    

  •   +---PerScheme :应用于每个输入点的扫描插件

  •   +---PerServer:应用于目标Web服务,只扫1次的插件

  •   +---PostCrawl:应用于爬虫所构建的目录树,分析爬虫发现的URL

  •   +---PostScan: 完成漏洞扫描后,检查是否有存储型漏洞触发

  •   ---WebApps:常见CMS漏扫插件

  • target:目标主机高危端口未授权漏洞扫描插件,不限于指定的Web端口,实际属于主机漏扫功能


AWVS的URL发现能力

发现URL是扫到漏洞的基础,一个强大的爬虫,是扫描器的核心。

规则再多、插件再强,没有URL Feed,也是无的放矢。

AWVS为什么强大,主要是因为:

  • 有一个基于Chrome Headless的动态爬虫

  • 支持H5 SPA爬取。常见的基于正则和HTML Parser的爬虫,在这个地方多数就爬不到接口了,因为JS都是打包、压缩、混淆过的

  • 支持遍历发现hashbang格式的链接

    • Scripts/PerFile/Hashbang_Ajax_Crawling.script

  • 支持sitemap解析:

    • httpdata/sitemap/parse.js   

    • target/default_sitemap.js

  • 支持robots.txt解析:target/robots.js

  • 支持open search 解析

      • httpdata/opensearch-httpdata.js

      • target/opensearch-target.js

  • 遍历枚举常见API接口:

    • target/common_api_endpoints.js

    • 枚举 "/api" "/v1" 这样的路径

  • 分析 /.well-known/apple-app-site-association

  • 分析 /.well-known/openid-configuration

  • 在HTTP Headers中查找新的URL:

    • httpdata/search_paths_in_headers.js

  • 自动拼接发现不可见的参数名:

    • location/hidden_parameters.js

  • 扫描发现swagger文件,添加新的URL

    • location/import_swager_files_from_common_locations.js

  • 通过Git/SVN信息泄露来发现并追加URL

    • Scripts/PerFolder/GIT_Repository.script

    • Scripts/PerFolder/SVN_Repository.script

  • 通过目录浏览来发现文件:

    • Scripts/PostCrawl/Server_Directory_Listing.script

  • 暴力枚举注册页面:

    • Scripts/PerServer/Registration_Page.script

  • 暴力枚举常见Java web应用路径 

    • Scripts/PerServer/Java_Application_Servers_Fuzz.script

  • 根据CMS识别结果,追加部分特征URL

  • 分析添加参数中出现的URL:

    • httpdata/analyze_parameter_values.js


总结

限于篇幅,本篇只列举了AWVS有哪些URL发现的能力,没有做详细说明,有兴趣的朋友可以自己探索。实际上,AWVS在扫描插件执行过程中,还实现了通过插件进一步发现URL的能力, 这也是多数其他扫描器并不具备的。


原文始发于微信公众号(李姐姐的扫描器):了解AWVS的漏洞贪心设计,一个默认静态页竟然扫了3000+HTTP请求!

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年4月21日00:17:43
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   了解AWVS的漏洞贪心设计,一个默认静态页竟然扫了3000+HTTP请求!http://cn-sec.com/archives/929591.html

发表评论

匿名网友 填写信息