危险的HTTP请求OPTIONS

危险的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创建成功的状态码
3
我们可以直接上传反向shell

tips

  1. 如果存在这个安全问题,可以尝试使用PUT上传shell
  2. 如果直接上传shell报后缀名不被允许,你可以先以shell.txt方式上传再用MOVE更改后缀名,如果没有MOVE你可以使用COPY
  3. 如果都不行,你还可以试试上传jar文件或者一个包含请求头的html文件
  4. 不一定每个目录都有执行权限,所以我们在攻击中的需要进行递归权限检查,比如说davtest

修复方法

在配置文件仅允许GET和POST的方法,其他危险的方法禁用即可

2赞

服务器资源由ZeptoVM赞助

Partners Wiki IRC