【1】漏洞名称:不安全的HTTP方法
【2】漏洞描述:不安全的HTTP方法一般包括:TRACE、PUT、DELETE、COPY 等。其中最常见的为TRACE方法可以回显服务器收到的请求,主要用于测试或诊断,恶意攻击者可以利用该方法进行跨站跟踪攻击(即XST攻击),从而进行网站钓鱼、盗取管理员cookie等。 其他说明方式如图所示:
【3】检测案例:
步骤1:Burpsuite捉包修改方法为OPTIONS:
现象:出现 Allow:POST、GET、DELETE、OPTIONS、PUT、HEAD等
在8月5日处理的案例中,客户先是对IIS进行了加固,但复核发现问题依然存在。在与客户沟通的过程中,我发现实际环境除了使用IIS之外,还利用Nginx进行了反向代理,因此我建议客户对Nginx也进行加固处理,加固后问题顺利解决。
【4】修复方案(转自网络)
一、Apache
使用Apache的重写规则来禁用Options方法和Trace方法
在Apache配置文件httpd-conf中【vhosts-conf】添加以下代码:
单独禁用Trace方法:
RewriteEngine On
RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
RewriteRule .* - [F]
单独禁用Options方法:
RewriteEngine On
RewriteCond %{REQUEST_METHOD} ^(OPTIONS)
RewriteRule .* - [F]
同时禁用Trace方法和Options方法
RewriteEngine On RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK|OPTIONS) RewriteRule .* - [F] <VirtualHost *:80> DocumentRoot "D:\wwwroot" ServerName www.abc.com ServerAlias abc.com <Directory "D:\wwwroot"> Options FollowSymLinks ExecCGI AllowOverride All Order allow,deny Allow from all Require all granted RewriteEngine on RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK|OPTIONS) RewriteRule .* - [F] </Directory> </VirtualHost>
二、Nginx
在你要屏蔽的虚拟主机的server段里加入下面代码:
if ($request_method !~* GET|POST) {
return 403;
}
重启nginx,这样就屏蔽GET、POST、之外的HTTP方法
三、Tomcat
web.xml(url下禁用的请求方式)
<security-constraint> <web-resource-collection> <url-pattern>/*</url-pattern> <http-method>PUT</http-method> <http-method>DELETE</http-method> <http-method>HEAD</http-method> <http-method>OPTIONS</http-method> <http-method>TRACE</http-method> </web-resource-collection> <auth-constraint> </auth-constraint> </security-constraint>
四、IIS
1、禁用WebDAV功能
2、web.config
在<configuration>节点下添加如下代码:
1 <system.webServer> <security> <requestFiltering> <verbs allowUnlisted="false"> <add verb="GET" allowed="true"/> <add verb="POST" allowed="true"/> <add verb="HEAD" allowed="true"/> </verbs> </requestFiltering> </security></system.webServer>