CVE-2017-15715漏洞复现
复现环境dockeapache 2.4.0到2.4.29即可php5.5复现过程先在物理机上创建目录mkdir -p /var/www/html然后创建个容器,并关联物理机的/var/www/html目录docker run -d -v /var/www/html:/var/www/html -p 8080:80 --name apache php...
·
复现环境
复现过程
然后创建个容器,并关联物理机的/var/www/html目录
docker run -d -v /var/www/html:/var/www/html -p 8080:80 --name apache php:5.5-apache
<?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); }
这里过滤了php,php3,php4,php5,phtml,pht
上传一个1.php文件,会被拦截
后记
1. 默认的Apache配置文件即可利用,因为Apache配置使用了<FileMatch>:
SetHandler application/x-httpd-php
</FilesMatch>
后来测试发现回车的(0D)是不行的,虽然能上传成功,但是无法解析
2. 获取文件名时不能用$_FILES['file']['name'],因为他会自动把换行去掉,这一点有点鸡肋
更多推荐
已为社区贡献11条内容
所有评论(0)