不安全的HTTP方法

博客介绍了不安全的HTTP方法,如TRACE、PUT等,其中TRACE方法易被攻击者利用进行XST攻击。还给出检测方法,即通过抓包软件抓取并修改数据包发送到服务器查看返回结果。同时针对不同中间件,如apache、Microsoft IIS等,提供了TRACE相关的修复建议。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.漏洞描述

不安全的HTTP方法一般包括:TRACE、PUT、DELETE、COPY等。其中最常见的
为TRACE方法可以回显服务器收到的请求,主要用于测试或诊断,恶意攻击者可以
利用该方法进行跨站跟踪攻击(即XST攻击),从而进行网站钓鱼、盗取管理员cookie
等。其他说明方式如下所示:

方法解释
 
PUT 向指定的目录上传文件
DELETE 删除指定的资源
COPY将指定的资源复制到Destination消息头
指定的位置
MOVE将指定的资源移动到Destination消息头
指定的位置       
CONNECT 客户端使用Web服务器作为代理
PROPFIND获取与指定资源有关的信息,如作者、大
小与内容类别
TRACE 在响应中返回服务器收到的原始请求
DEAD 返回报文的头部
OPTIONS 客户端询问服务器可以提交哪些请求方法
 
GET 获取服务器资源
 
POST 传输实体文本

2.检测方法

1、使用抓包软件抓取数据包
2、拦截数据包,将HTTP方法修改为GET、POST、HEAD、PUT、DELETE、
TRACE等
3、分别发送数据包到服务器
4、查看每种HTTP方法的返回结果。如果服务器完全忽略请求或者返回错误,则该
项是安全的。如果服务器有其他任何返回,则服务器响应了不必要的方法,是不安全
的。注意:GET和POST响应是正常的,其他的不正常。 

 

3.修复方案


 以下为针对不安全的HTTP方法中的TRACE相关的修复建议:
       

 3.1、中间件为apache服务器
a、利用apache服务器的rewrite功能,对TRACE请求进行拦截。编辑httpd.conf文件
增加下面内容:
  

RewriteEngine On
RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
RewriteRule .* - [F]

b、更详细的解释如下:
     


LoadModule rewrite_module modules/mod_rewrite.so #首先激活rewrite模块
RewriteEngine On #启用Rewrite引擎
RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK) 
#对Request中的Method字段进行匹配:^TRACE 即以TRACE字符串开头

RewriteRule .* - [F] #定义规则:对于所有格式的来源请求,均返回[F]-Forbidden响应

c、对于1.3.34以上和2.0.55以上版本的apache服务器,配置文件增加:TraceEnable
off
或者用如下方法:

<!-- 关闭不安全的HTTP方法-->
<security-constraint>
<web-resource-collection>
<web-resource-name>任意名称</web-resource-name>
<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>
<login-config>
<auth-method>BASIC</auth-method>
</login-config>

3.2、中间件为Microsoft IIS
如果你使用的是Microsoft IIS,使用URLScan工具禁用HTTP TRACE请求,或者只开
放满足站点需求和策略的方式。安装URLScan(URLScan是微软提供给IIS6的路径
重定向工具,在这里下载: http://www.iis.net/learn/extensions/working-withurlscan/
urlscan-3-reference),在URLScan.ini中配置,只允许GET、HEAD和POST
这三个常用命令(UseAllowVerbs=1)

3.3、中间件为Sun ONE Web Server releases 6.0

如果你使用的是Sun ONE Web Server releases 6.0 SP2或者更高的版本,在
obj.conf文件的默认object section里添加下面的语句:
 

<Client method="TRACE">
AuthTrans fn="set-variable"
remove-headers="transfer-encoding"
set-headers="content-length: -1"
error="501"
</Client>

3.4、Sun ONE Web Server releases 6.0 SP2
如果你使用的是Sun ONE Web Server releases 6.0 SP2或者更低的版本,编译如下
地址的NSAPI插件:http://sunsolve.sun.com/pubcgi/retrieve.pl?doc=fsalert%2F50603


4.其他说明


由于不同的Web服务器支持的HTTP协议版本不同,如果系统不支持HTTP/1.0,那么
步骤4返回“HTTP/1.0 400 Bad Request”;这种情况下,应该更改步骤4的输入行
为OPTIONS / HTTP/1.0

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值