安全-Apache HTTPD 换行解析漏洞复现(CVE-2017-15715)
Posted 小狐狸FM
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了安全-Apache HTTPD 换行解析漏洞复现(CVE-2017-15715)相关的知识,希望对你有一定的参考价值。
前言
复现环境
docker
、docker-compose
、vulhub
,请勿用于违法用途
Apache HTTPD 换行解析漏洞复现(CVE-2017-15715)
影响版本
2.4.0~2.4.29
漏洞复现
启动
docker
服务
如果你使用
docker-compose up -d
启动时出现下面的报错,就表示端口已经被占用了
我的8080
端口已经被占用了,可以在docker-compose.yml
配置中修改端口号
index.php
是一个上传页面,可以看到黑名单中有php
后缀
<?php
if(isset($_FILES['file'])) {
$name = basename($_POST['name']);
$ext = pathinfo($name,PATHINFO_EXTENSION);
if(in_array($ext, ['php', 'php3', 'php4', 'php5', 'phtml', 'pht'])) {
exit('bad file');
}
move_uploaded_file($_FILES['file']['tmp_name'], './' . $name);
} else {
?>
<!DOCTYPE html>
<html>
<head>
<title>Upload</title>
</head>
<body>
<form method="POST" enctype="multipart/form-data">
<p>
<label>file:<input type="file" name="file"></label>
</p>
<p>
<label>filename:<input type="text" name="name" value="evil.php"></label>
</p>
<input type="submit">
</form>
</body>
</html>
<?php
}
?>
构造一个
php
脚本
上传抓包,
filename
右侧的输入框是上传后该文件存储的名称
只需要修改
test.php%0a
部分的文件名,data.php
是原先的文件名不会被使用到
将
%0a
选中后进行URL
解码(URL-decode
)
点击发送后,成功上传
在页面中访问
http://IP:端口/文件名.php%0a
即可解析php
代码
以上是关于安全-Apache HTTPD 换行解析漏洞复现(CVE-2017-15715)的主要内容,如果未能解决你的问题,请参考以下文章
漏洞复现Apache HTTPD 换行解析漏洞(CVE-2017-15715)