1.ubuntu镜像安装
在docker-master/htttpd/apache_parsing_vulnerability路径下进行安装:
docker-compose up -d
2.目标网站访问
环境运行后,访问http://your-ip/uploadfiles/apache.php.jpeg即可发现,phpinfo被执行,该文件被解析为php脚本。
http://you-ip/index.php中是一个白名单检查文件后缀的上传组件,上传完成后并未重命名。我们可以通过上传文件名为xxx.php.jpg或xxx.php.jpeg的文件,利用Apache解析漏洞进行getshell。
3.burpsuit抓包
用burpsuit抓一下上传的包-->发送至Reapter-->GO
浏览器访问http://172.17.0.1/uploadfiles/phpinfo.php.jpg,发现phpinfo被执行了,该文件被解析为php脚本。(发现虽然后缀修改了,但apache一样当成php来解析,可以绕过一些防火墙的后缀过滤。)
-->
漏洞原理:在有多个后缀的情况下,只要一个文件含有.php后缀的文件即将被识别成PHP文件,没必要是最后一个后缀。利用这个特性,将会造成一个可以绕过上传白名单的解析漏洞。