危险的HTTP请求OPTIONS
为什么要写这个?
危险的HTTP请求这个看似很简单,也的确很简单,但是我遇到的很多客户都会问有关这个的一些非常愚蠢的问题
1. 为什么请求方式一样,请求内容也差不多一个告警是中危,一个告警是低危?
2. WebDAV是什么?我们业务中没有遇到啊?
3. 我们业务中都需要啊?使用了这么多年也没发生什么问题
你不解释明白了,人家就觉得你技术不行,很可能转身就要投诉你,WTF?
什么是WebDav?
它是基于HTTP1.1协议的通信协议,可用于处理Web服务器的文件,如果攻击者可以访问这些功能,那么这些方法就可以为攻击者攻击提供很好的途径,WebDav是HTTP Method统一的叫法,HTTP可以使用除GET和POST以外的其他办法比如:
-PUT /*将文件上传到指定位置*/
-DELETE /*删除指定的资源*/
-COPY /*将指定的文件复制到指定的位置*/
-MOVE /*将指定的文件移动到指定的位置*/
-SEARCH /*在目录路径中搜索资源*/
-PROPFIND /*检索有关指定资源的信息*/
我们测试一下
可以看到实际上是允许使用一些十分危险的请求的
此时攻击者直接就会在服务器上传shell.
我们尝试PUT一个一句话,我们会看到201创建成功的状态码
我们可以直接上传反向shell
tips
- 如果存在这个安全问题,可以尝试使用PUT上传shell
- 如果直接上传shell报后缀名不被允许,你可以先以shell.txt方式上传再用MOVE更改后缀名,如果没有MOVE你可以使用COPY
- 如果都不行,你还可以试试上传jar文件或者一个包含请求头的html文件
- 不一定每个目录都有执行权限,所以我们在攻击中的需要进行递归权限检查,比如说davtest
修复方法
在配置文件仅允许GET和POST的方法,其他危险的方法禁用即可