不安全的HTTP方法

honky   ·   发表于 2021-08-20 12:08:20   ·   漏洞文章

漏洞名称:不安全的HTTP方法
漏洞链接:https://hack.zkaq.cn/api/getCatalog
漏洞简介:HTTP通常有GET、POST、DELETE、OPTIONS、PUT、TRACE六种,当然也有拓展的。我们将PUT、DELETE这种明显含有上传和删除文件权限的方法称作不安全的HTTP方法

漏洞验证:
抓包将POST方法改成OPTIONS方法,然后查看返回包中是否有PUT、DELETE等不安全的方法,如果有则不安全


由于DELETE方法比较危险,所以我自己在本地使用phpstudy搭了一个环境来演示,默认phpstudy是不开启PUT、DELETE方法的,如下图所示:

如何开启phpstudy的PUT、DELETE方法:

1.找到httpd.conf文件,我的路径是phpStudy\Apache\conf\httpd.conf
在修改前先复制一份,以防万一。

2.使用Notepad++打开httpd.conf文件,搜索一下DocumentRoot,然后添加下图红框中的代码

3.找到下图红框中的代码,删掉#号,开启这两个模块

4.因为在第二步我们添加的代码路径为phpStudy\WWW\Davlock,所以我们需要在WWW目录下创建一个文件夹Davlock

5.配置完成后重启服务,然后再测试一下,确认PUT、DELETE方法开启了就可以了

PUT方法:

语法:

PUT /new.html HTTP/1.1

示例:

PUT /new.html HTTP/1.1
Host: example.com
Content-type: text/html
Content-length: 16

<p>New File</p>

应答:
如果目标资源不存在,并且PUT方法成功创建了一份,那么源头服务器必须返回201 (Created) 来通知客户端资源已创建。

HTTP/1.1 201 Created
Content-Location: /new.html

如果目标资源已经存在,并且依照请求中封装的表现形式成功进行了更新,那么,源头服务器必须返回200 (OK) 或者204 (No Content) 来表示请求的成功完成。

HTTP/1.1 204 No Content
Content-Location: /existing.html

测试:
先上传一个1.txt试试

查看服务器,确认上传成功了

再测试上传一个一句话木马

查看服务器,确实存在1.php

然后使用菜刀连接,获得webshell

DELETE方法:

语法:

DELETE /file.html HTTP/1.1

示例:

DELETE /file.html HTTP/1.1

应答:
如果 DELETE 方法成功执行,那么可能会有以下几种状态码:

状态码  202 (Accepted) 表示请求的操作可能会成功执行,但是尚未开始执行。
状态码 204 (No Content) 表示操作已执行,但是无进一步的相关信息。
状态码  200 (OK) 表示操作已执行,并且响应中提供了相关状态的描述信息。
HTTP/1.1 200 OK
Date: Wed, 21 Oct 2015 07:28:00 GMT



    <h1>File deleted.</h1>

测试:
因为我们知道路径下有1.txt,直接将方法改为DELETE,返回204,说明已经删掉了1.txt文件

查看服务器,确实已经删掉了1.txt,只剩下1.php

再试试把1.php删掉

查看服务器发现1.php也被删掉了

用户名金币积分时间理由
Track-手电筒 50.00 0 2021-08-24 14:02:51 一个受益终生的帖子~~

打赏我,让我更有动力~

2 条回复   |  直到 2021-8-26 | 2579 次浏览

Track-手电筒
发表于 2021-8-20

后面关于漏洞验证的,同学再补充些,补充下put,delete这些的操作

评论列表

  • 加载数据中...

编写评论内容

乐伟超
发表于 2021-8-26

强啊,老哥

评论列表

  • 加载数据中...

编写评论内容
登录后才可发表内容
返回顶部 投诉反馈

© 2016 - 2024 掌控者 All Rights Reserved.