Apache[多后缀文件名解析漏洞+换行解析漏洞+SSI远程命令执行漏洞]复现
Posted 热绪
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Apache[多后缀文件名解析漏洞+换行解析漏洞+SSI远程命令执行漏洞]复现相关的知识,希望对你有一定的参考价值。
目录
二、Apache换行解析漏洞(CVE-2017-15715)
一、多后缀文件解析漏洞
Apache的多后缀名特性:
如果一个文件有多个后缀名,那么Apache会从后(右)往前(左)辨别后缀。所以攻击者在可以上传文件的地方上传hack.php.xxx的文件,假设网站有对php的后缀进行过滤,但判断是xxx文件,不在黑名单里,安全检查就会放行,然而Apache的多后缀名特性会以倒数第二个后缀".php"为准,把该文件当做是php文件,解析执行。但是需要把 php5.conf文件中的正则表达式的“$”换成".",然后重启。
总结:Apache文件解析漏洞就是由于用户在配置服务器时,配置不当导致本来非php文件也会被认为php文件处理。
打开靶场环境:
cd /vulhub/httpd/apache_parsing_vulnerability
docker-compose up -d
访问上传界面如下:
我们直接上传一句话木马发现:
Unsupported filetype uploaded。
我们利用Apache的多后缀文件解析漏洞,进行抓包修改后缀名上传:
上传成功而且返回了文件路径;我们访问http://192.168.41.138/uploadfiles/key.php.jpg
成功访问,方便观察,我们把key.php文件内容改成phpinfo进行尝试:
可以发现:虽然安全性检查不让上传php文件,但是由于apache的解析特性还是把key.php.jpg当初php文件解析;key.php.jpg该文件即绕过了安全性检查,又可被apache解析。
我们关闭靶场:
docker-compose down
二、Apache换行解析漏洞(CVE-2017-15715)
影响版本:Apache 2.4.0 - 2.4.29
漏洞利用:文件上传
漏洞介绍:在解析PHP时,1.php%0a 将被按照PHP后缀进行解析,导致绕过一些服务器的安全策略;%0a是换行符。
漏洞复现:
cd /vulhub/httpd/CVE-2017-15715
docker-compose up -d
打开页面:
上传.php文件发现:
我们重新上传,抓包,在文件的扩展名后面添加0a
重发发现,我们的文件上传成功,我们访问:http://192.168.41.138:8080/key.php%0a
可以发现:我们直接上传php文件是不可以的,但是由于1.php%0a 将被按照PHP后缀进行解析,所以我们抓包修改后缀名即可成功上传,上传一句话木马还可以getshell
别忘了关闭:
docker-compose down
三、Apache SSI 远程命令执行漏洞
SSI
使用SSI(Server Side Include)的html文件扩展名,SSI(Server Side Include),通常称为"服务器端嵌入"或者叫"服务器端包含",是一种类似于ASP的基于服务器的网页制作技术。默认扩展名是 .stm、.shtm 和 .shtml。
漏洞介绍:在测试任意文件上传漏洞的时候,目标服务端可能不允许上传php后缀的文件。如果目标服务器开启了SSI与CGI支持,我们可以上传一个shtml文件,并利用其语法执行任意命令。shtml包含有嵌入式服务器方包含命令的文本,在被传送给浏览器之前,服务器会对SHTML文档进行完全地读取、分析以及修改。
漏洞复现:
cd /vulhub/httpd/ssi-rce
docker-compose up -d
打开环境:
上传php文件发现:
编写id.shtml
<!--#exec cmd="id" -->
"id"位置替换命令 例如ls(没有引号)
上传发现:
可以发现:上传php文件无法成功,可以试试是否可以利用SSI远程命令执行漏洞。
记得关闭:
docker-compose down
以上是关于Apache[多后缀文件名解析漏洞+换行解析漏洞+SSI远程命令执行漏洞]复现的主要内容,如果未能解决你的问题,请参考以下文章