长亭百川云 - 文章详情

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

李姐姐的扫描器

56

2024-07-13

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

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

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

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

测试静态页

扫描统计

   AWVS插件目录结构

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

C:\Program Files (x86)\Acunetix\14.7.220401065\wvsc_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的能力, 这也是多数其他扫描器并不具备的。

相关推荐
关注或联系我们
添加百川云公众号,移动管理云安全产品
咨询热线:
4000-327-707
百川公众号
百川公众号
百川云客服
百川云客服

Copyright ©2024 北京长亭科技有限公司
icon
京ICP备 2024055124号-2