快捷搜索:  汽车  科技

五个http常用状态码:每日漏洞不安全的HTTP方法

五个http常用状态码:每日漏洞不安全的HTTP方法发现服务器报错,证明并不支持TRACE方法。(不支持一般会报405) 查询阶段显示,支持TRACE方法。那我们将OPTIONS方法修改为TRACE方法试试,如果响应包主体中包含接收到的请求,则证明支持TRACE方法,系统存在漏洞。 在之前的文章里提到过,OPTIONS请求方法可以查询URL指定的资源支持哪些方法。 首先正常请求,抓包,然后将请求包中的请求方法修改为OPTIONS,提交,如果成功,响应包中就会出现一个Allow首部字段,里面列出了URL指定资源所支持的方法列表。执行到这一步,就出现这么一种现象,有的校友在执行OPTIONS请求后,发现响应包的Allow字段中包含了PUT、DELETE等不安全方法,就直接认定系统存在漏洞。在我看来,这是不严谨的。有时候Allow字段提示支持,但实际上并不支持,因此需要进一步验证该资源是否真的支持不安全的HTTP方法。

五个http常用状态码:每日漏洞不安全的HTTP方法(1)

01 漏洞描述

《HTTP | HTTP报文》 中介绍了HTTP的请求方法。在这些方法中,HTTP定义了一组被称为安全方法的方法:GET、HEAD、OPTIONS、TRACE,这些方法不会产生什么动作,不会在服务器上产生结果,只是简单获取信息。相对的,能产生动作的方法就会被认为是不安全的HTTP方法。

注意,安全方法不一定什么动作都不执行,比如在登陆时用GET方法传输数据,这个时候GET方法也会产生动作。就比如钱是用来花的,你硬要用来擦屁屁,这也没办法。

五个http常用状态码:每日漏洞不安全的HTTP方法(2)

在HTTP认为的那些不安全的HTTP方法中,安全界认为PUT、DELETE、TRACE是不安全的,另外WebDAV中的几个方法,RFC 5789中的PATCH方法也被认为是不安全的。(TRACE容易引发XST攻击,PATCH修改资源的部分内容,PUT/DELETE没有认证机制等原因,不仅仅因为它们会产生结果)

五个http常用状态码:每日漏洞不安全的HTTP方法(3)

五个http常用状态码:每日漏洞不安全的HTTP方法(4)

02 漏洞检测

不安全的HTTP方法漏洞检测,分为两步:查询资源支持的方法、验证方法是否真的支持。

查询

在之前的文章里提到过,OPTIONS请求方法可以查询URL指定的资源支持哪些方法。

首先正常请求,抓包,然后将请求包中的请求方法修改为OPTIONS,提交,如果成功,响应包中就会出现一个Allow首部字段,里面列出了URL指定资源所支持的方法列表。

五个http常用状态码:每日漏洞不安全的HTTP方法(5)

执行到这一步,就出现这么一种现象,有的校友在执行OPTIONS请求后,发现响应包的Allow字段中包含了PUT、DELETE等不安全方法,就直接认定系统存在漏洞。在我看来,这是不严谨的。有时候Allow字段提示支持,但实际上并不支持,因此需要进一步验证该资源是否真的支持不安全的HTTP方法。

验证

查询阶段显示,支持TRACE方法。那我们将OPTIONS方法修改为TRACE方法试试,如果响应包主体中包含接收到的请求,则证明支持TRACE方法,系统存在漏洞。

五个http常用状态码:每日漏洞不安全的HTTP方法(6)

发现服务器报错,证明并不支持TRACE方法。(不支持一般会报405)

不安全HTTP方法漏洞的检测大概就是这个流程,其余不安全方法在《HTTP | HTTP报文》中介绍过,检测的时候只是利用方法的特性而已,这里就不再赘述。

不过要注意的是,在验证PUT和DELETE的时候,不要在原有资源上进行操作,一定要指定一个不存在的资源,比如先PUT一个文件上去,然后DELETE刚才创建的文件,只要证明支持不安全的HTTP方法即可, 切记不可修改和删除服务器原有文件

另外,PUT还可以和WebDAV扩展中的COPY/MOVE配合,PUT上传文件,COPY/ MOVE修改文件位置和类型。

五个http常用状态码:每日漏洞不安全的HTTP方法(7)

五个http常用状态码:每日漏洞不安全的HTTP方法(8)

具体怎么用,请自行百度,点到即止。

五个http常用状态码:每日漏洞不安全的HTTP方法(9)

03 漏洞修复

修改配置文件,禁用不安全的HTTP方法。

猜您喜欢: