不安全的HTTP方法

近日,一个上线很久的项目,后台使用curl测试时发现了一个漏洞:不安全的HTTP方法,如下图所示:

一、HTTP方法

根据HTTP标准,HTTP请求可以使用多种方法,其如下所示:

HTTP1.0定义了三种请求方法:GET、POST和HEAD

HTTP1.1新增了五种请求方法:OPTIONS、PUT、DELETE、TRACE和CONNECT

WebDAV (Web-based Distributed Authoring and Versioning) 一种基于 HTTP 1.1协议的通信协议。它扩展了HTTP 1.1,在GET、POST、HEAD等几个HTTP标准方法以外添加了一些新的方法,使应用程序可对Web Server直接读写,并支持写文件锁定(Locking)及解锁(Unlock),还可以支持文件的版本控制。

二、不安全的HTTP方法

众所周知,GET、POST是最为常见方法,而且大部分主流网站只支持这两种方法,因为它们已能满足功能需求。其中,GET方法主要用来获取服务器上的资源,而POST方法是用来向服务器特定URL的资源提交数据。而其它方法出于安全考虑被禁用,所以在实际应用中,九成以上的服务器都不会响应其它方法,并抛出404或405错误提示。以下列举几个HTTP方法的不安全性:

1、OPTIONS方法,将会造成服务器信息暴露,如中间件版本、支持的HTTP方法等。

2.png

2、PUT方法,由于PUT方法自身不带验证机制,利用PUT方法即可快捷简单地入侵服务器,上传Webshell或其他恶意文件,从而获取敏感数据或服务器权限。

3、DELETE方法,利用DELETE方法可以删除服务器上特定的资源文件,造成恶意攻击。

三、禁用不安全的HTTP方法

修改自己应用的web.xml文件,添加以下配置:

 <!-- 禁用不安全的HTTP方法,即DELETE、PUT等 -->
 <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>
 		<role-name>All Role</role-name>
 	</auth-constraint>
 	<user-data-constraint>
 		<transport-guarantee>NONE</transport-guarantee>
 	</user-data-constraint>
 </security-constraint>

 四、使用curl测试

下载curl,下载地址:https://curl.haxx.se/download.html,如下图所示:

下载完成后,解压。

然后配置系统环境变量:

CURL_HOME            D:\java\curl

在PATH中追加;%CURL_HOME%\I386

在CMD中输入命令:curl --help,如下图所示即安装成功:

然后使用 curl -v -X OPTIONS http://baidu.com 测试OPTIONS的   (http://baidu.cpm 这个是你自己的项目访问路径)。

成功的信息如下:

不会在出现 Allow:POST、GET、DELETE、OPTIONS、PUT、HEAD

 

最后 curl的下载和配置如下链接:

http://blog.csdn.net/qq_21126979/article/details/78690960?locationNum=10&fps=1

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值