最近一直刷新AppScan的下限,对于Appscan报出的中危漏洞“启用不安全的HTTP方法”。分析了其扫描机制,以及处理方法和绕开方法。如果不耐烦看分析过程,请直接跳到文章最后看处理方法。
漏洞背景
“启用了不安全的 HTTP 方法”属于“中”危漏洞。漏洞描述是:根据APPSCAN的报告,APPSCAN通过OPTIONS请求,当响应中发现DELETE、SEARCH、COPY等方法为允许方法时,则认为是漏洞。 详见下图:
[attach]121668[/attach]
Web服务器(以IIS为例)在没有任何设置是,使用OPTIONS命令,可以返回所有能够响应的HTTP方法,如OPTIONS, TRACE, GET, HEAD, COPY, PROPFIND, SEARCH, LOCK, UNLOCK。
发送OPTIONS请求:(使用telnet或者secureCRT等软件):
[attach]121669[/attach]
服务器响应可以使用的 HTTP 方法,见 Allow 部分。
[attach]121670[/attach]
实验环境
Web服务器环境:IIS6。站点结构如下,使用了主机头myapp.com指向了我的测试应用app。
[attach]121671[/attach]
配置只有读取权限,还有执行权限设置为“纯脚本”。
[attach]121672[/attach]
实验
实验1:裸实验
未启用WebDav,OPTIONS命令的返回中,只显示只有OPTION、TRACE、GET、HEAD和POST。
[attach]121673[/attach]
APPSCAN扫描结果也没有扫描出“启用了不安全的 HTTP 方法”这个漏洞。
[attach]121674[/attach]
实验2:开启WebDAV
启用WebDAV后,OPTIONS命令的返回中,显示多了很多新的HTTP方法,包括APPSCAN会认为是不安全的COPY、SEARCH、LOCK和UNLOCK等。
[attach]121675[/attach]
APPSCAN的扫描结果如下,扫描到了“启用了不安全的HTTP方法”这个漏洞。
[attach]121676[/attach]
结论:如果关闭WebDAV支持,APPSCAN则无法扫描出“启用了不安全的 HTTP 方法”漏洞。
实验3:URLScan正向实验
安装URLScan(URLScan是微软提供给IIS6的路径重定向工具,在这里下载),在URLScan.ini中配置,只允许GET、HEAD和POST这三个常用命令(UseAllowVerbs=1)。
[attach]121677[/attach]
运行OPTIONS命令,则服务器返回响应失败,无法列出所有的HTTP方法
[attach]121678[/attach]
APPSCAN扫描结果显示,禁用OPTIONS命令后无法扫描出“启用了不安全的 HTTP 方法”这个漏洞。
[attach]121679[/attach]
实验4:URLScan正向实验2
安装URLScan,在URLScan.ini中配置,只允许GET、HEAD、POST和OPTIONS命令。
由于URLScan的模式,要么设置允许命令,要么设置禁止命令,不能同时设置。因此允许这4个命令,表示不能禁用其他命令,因此OPTIONS会显示其他的可用命令。
[attach]121680[/attach]
[attach]121681[/attach]
由于APPSCAN默认是以OPTIONS命令来看漏洞的,因此自然本次扫描会有漏洞。
[attach]121682[/attach]
实验5:URLScan反向实验
在URLSCAN中,采用禁止模式(UseAllowVerbs=0),只禁止OPTIONS命令。
[attach]121683[/attach]
结果OPTIONS被禁用。
[attach]121684[/attach]
处理方法
回顾一下实验过程中的结论:
消除“启用了不安全的 HTTP 方法”漏洞,关键在于是否能够阻止OPTIONS命令。如果禁止OPTIONS命令,但没有禁用其他危险命令如MOVE等,APPSCAN不会提示漏洞
如果禁止所有危险命令如MOVE等(实际调用出错),但是OPTIONS命令没有禁止并且显示这些危险命令可以使用,APPSCAN提示漏洞。
如果关闭WebDAV支持,APPSCAN则无法扫描出“启用了不安全的 HTTP 方法”漏洞。
因为不开启WebDAV,则不开启OPTIONS命令。
因此
王道方法是:禁用所有危险命令以及OPTIONS(OPTIONS命令并不危险,但不禁用是不行的)
邪道方法是:只禁用OPTIONS命令,其他危险命令APPSCAN是不会主动扫描,留着也不会报漏洞。但实际是不是有,这个就要具体分析了。
综上:解决“启用了不安全的 HTTP 方法”,可采用3种方法:
方法 | 描述 | |
1 | 禁用WebDAV功能 | 根本解决。不引入新的不稳定因素URLSCAN |
2 | 使用URLSCAN禁用OPTIONS | 实际没有真正禁用,但缩小了影响范围。URLSCAN可能有副作用。 |
3 | 使用URLSCAN禁用OPTIONS和其他HTTP方法 或者只允许GET/POST/HEAD方法(自动禁用其他方法) | 等效于取消WebDAV,但URLSCAN可能副作用。 |
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) | Powered by Discuz! X3.2 |