SSI-RCE(Apache SSI-RCE)¶
漏洞描述¶
在测试任意文件上传漏洞的时候,目标服务端可能不允许上传php后缀的文件。如果目标服务器开启了SSI与CGI支持,我们可以上传一个shtml文件,并利用#exec cmd=“id” 语法执行任意命令。
影响版本¶
- Apache全版本(支持SSI与CGI)
需要开启SSI和CGI,且后端对扩展名校验不严格时
环境配置¶
- Vulhub项目
- Docker-compose启动
漏洞复现¶

WebShell¶

访问test.shtml,执行命令,写入WebShell

反弹Shell¶

开启监听,访问test.shtml

漏洞原理¶
SSI(服务器端包含)是放置在HTML页面中的指令,并在服务页面时在服务器上对其进行评估。它们使您可以将动态生成的内容添加到现有的HTML页面,
而不必通过CGI程序或其他动态技术来提供整个页面。
其实apache的ssl更像是flask的jinjia2,用来实现和前端实现一种动态交互,只不过在配置ssl之后,如果上传接口没有过滤掉.shtml文件,那么就可以就其中包含我们要执行的命令。
SSI注入:https://www.cnblogs.com/seizer/p/17035775.html
修复建议¶
- 关闭SSI功能