HTTP的危险方法(不安全的HTTP方法)

友情链接:
Web安全|为什么要禁止除GET和POST之外的HTTP方法?
不安全的HTTP方法

我们常见的HTTP请求方法是GET、POST和HEAD。但是,其实除了这两个之外,HTTP还有一些其他的请求方法。

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

WebDAV虽然方便了网站管理员对网站的管理,但是也带来了新的安全风险!

  • PUT:由于PUT方法自身不带验证机制,利用PUT方法可以向服务器上传文件,所以恶意攻击者可以上传木马等恶意文件。
  • DELETE:利用DELETE方法可以删除服务器上特定的资源文件,造成恶意攻击。
  • OPTIONS:将会造成服务器信息暴露,如中间件版本、支持的HTTP方法等。
  • TRACE:可以回显服务器收到的请求,主要用于测试或诊断,一般都会存在反射型跨站漏洞

以下是WebDAV支持的HTTP请求方法。

方法      描述
GET       Get长度限制为1024,特别快,不安全,在URL里可见,URL提交参数以?分隔,多个参数用&连接,请求指定的页面信息,并返回实体主体。
HEAD      类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头
POST      长度一般无限制,由中间件限制,较慢,安全,URL里不可见。请求的参数在数据包的请求body中
PUT       向指定资源位置上传其最新内容
DELETE    请求服务器删除指定的页面。
CONNECT   HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。
OPTIONS   返回服务器针对特定资源所支持的HTTP请求方法。也可以利用向Web服务器发送'*'的请求来测试服务器的功能性。
TRACE     回显服务器收到的请求,主要用于测试或诊断。

我们可以将请求方法设置为OPTIONS,来查看服务器支持的请求方法。

HTTP head请求
.
官方定义:
HEAD方法跟GET方法相同,只不过服务器响应时不会返回消息体。一个HEAD请求的响应中,HTTP头中包含的元信息应该和一个GET请求的响应消息相同。这种方法可以用来获取请求中隐含的元信息,而不用传输实体本身。也经常用来测试超链接的有效性、可用性和最近的修改。一个HEAD请求的响应可被缓存,也就是说,响应中的信息可能用来更新之前缓存的实体。如果当前实体跟缓存实体的阈值不同(可通过Content-Length、Content-MD5、ETag或Last-Modified的变化来表明),那么这个缓存就被视为过期了。
.
简而言之
HEAD请求常常被忽略,但是能提供很多有用的信息,特别是在有限的速度和带宽下。主
要有以下特点:

  1. 只请求资源的首部;
  2. 检查超链接的有效性;
  3. 检查网页是否被修改;
  4. 多用于自动搜索机器人获取网页的标志信息,获取rss种子信息,或者传递安全认证信息等
    .
    HEAD方法:它与GET方法几乎是一样的,对于HEAD请求的回应部分来说,它的HTTP头部中包含的信息与通过GET请求所得到的信息是相同的。利用这个方法,不必传输整个资源内容,就可以得到Request-URI所标识的资源的信息。该方法常用于测试超链接的有效性,是否可以访问,以及最近是否更新。
    .
    错误码:
  • 1xx:指示信息–表示请求已接收,继续处理。
  • 2xx:成功–表示请求已被成功接收、理解、接受。
  • 3xx:重定向–要完成请求必须进行更进一步的操作。
  • 4xx:客户端错误–请求有语法错误或请求无法实现。
  • 5xx:服务器端错误–服务器未能实现合法的请求。常见状态代码、状态描述的说明如下。
  • 200 OK:客户端请求成功。
  • 400 Bad Request:客户端请求有语法错误,不能被服务器所理解。
  • 401 Unauthorized:请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用。
  • 403 Forbidden:服务器收到请求,但是拒绝提供服务。
  • 404 Not Found:请求资源不存在,举个例子:输入了错误的URL。
  • 500 Internal Server Error:服务器发生不可预期的错误。
  • 503 Server Unavailable:服务器当前不能处理客户端的请求,一段时间后可能恢复正常,举个例子:HTTP/1.1 200 OK(CRLF)。

在这里插入图片描述
但是有些网站开启了WebDAV,并且管理员配置不当,导致支持危险的HTTP方法,如下。该网站除了支持GET、POST、OPTIONS、HEAD之外,还支持 PUT、DELETE请求方法。

在这里插入图片描述风险等级 :低风险(具体风险视通过不安全的HTTP请求能获得哪些信息)

修订建议 :如果服务器不需要支持WebDAV,请务必禁用它,或禁止不必要的HTTP 方法,只留下GET、POST方法!

发布了181 篇原创文章 · 获赞 11 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_45116657/article/details/102865810