宁波网站优化方法,2345高级版,做二手市场类型的网站名字,网站页面统计代码是什么漏洞简介
pache HTTPD是一款HTTP服务器#xff0c;它可以通过mod_php来运行PHP网页。其2.4.0~2.4.29版本中存在一个解析漏洞#xff0c;在解析PHP时#xff0c;1.php\x0A将被按照PHP后缀进行解析#xff0c;导致绕过一些服务器的安全策略。
漏洞环境
vulhub/httpd/CVE-2… 漏洞简介
pache HTTPD是一款HTTP服务器它可以通过mod_php来运行PHP网页。其2.4.0~2.4.29版本中存在一个解析漏洞在解析PHP时1.php\x0A将被按照PHP后缀进行解析导致绕过一些服务器的安全策略。
漏洞环境
vulhub/httpd/CVE-2017-15715
Vulhub - Docker-Compose file for vulnerability environment
漏洞复现
进入vulhub项目对应的目录cd vulhub-master/httpd/CVE-2017-15715
编译容器“docker-compose build”
启动Docker容器输入命令“docker-compose up -d”。
查看容器状态输入命令“docker ps”并查看对应容器ID。
进入容器输入命令“docker exec -it 容器id /bin/bash”。
该漏洞属于用户配置不当所产生的看一下配置文件信息输入命令“cat /etc/apache2/conf-available/docker-php.conf”如图所示。 前三行的内容意思是将所有以“.php”为后缀的文件内容当作PHP代码进行解析但是却使用了“$”进行文件匹配这就导致了漏洞的产生。这个符号在正则表达式中是匹配字符串中结尾的位置若存在换行则匹配换行符为结尾也就是说可以利用换行符使“$”与其匹配从而绕过黑名单机制实现文件上传。
如果在黑名单的后缀不让上传php jsp等就可以通过php%0a绕过黑名单但是需要保证这个后缀是能够正常解析的脚本代码。如果是白名单可能不行在白名单里面才可以上传jpjpnggif 等但是如果没有考虑以最后一个点为后缀通过1.jpg.php%0a的形式也可能能够绕过。
查看index.php内容代码如下
?phpif(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);}
可以看到除了上传文件外还要以POST请求方式传入参数name其值作为文件上传后最后的名字同时设置了黑名单过滤name值传递的带有黑名单信息的后缀。如果通过 $FILES[file]获 取文件名的话会把\x0a自动去除所以 $FILES[file]这种方式获取文件名也不会造成这个漏洞.
启动后Apache运行在http://your-ip:8080 创建一个文件写入?php phpinfo();? 上传文件可以看到是上传失败 通过burp抓包把在实际上传文件名后加0a,也就是filename的值加上0a 我用的burp是2021版本没有hex选项可以通过选择单个字符修改 老版本可以通过hex修改修改完文件正常上传。 访问http://your-ip:8080/test.php%0A可以看到PHP代码已经被解析如图所示。