简介
SSI 注入全称Server-Side Includes Injection,即服务端包含注入。
目标服务器开启了ssi功能,那么shtml文件将可以执行任意命令。
在SSI中,默认扩展名是 .stm、.shtm 和 .shtml。
如果上传文件程序限制了php文件的上传,且没有限制shtml文件上传,我们可以上传一个shtml文件,并利用<!--#exec cmd="命令" -->语法执行任意命令。
实验环境
靶机:使用docker搭建的环境 (192.168.121.131)
攻击机: win10 (192.168.121.132)
漏洞复现:
启动环境:
cd 到环境对应的目录后 docker-compose -up -d 启动
![](https://i-blog.csdnimg.cn/blog_migrate/a8c0f4d316c17fd8308e9447b2ef4c24.png)
启动环境后,使用浏览器进行访问http://192.168.121.131:8080/upload.php可以看到一个上传表单
![](https://i-blog.csdnimg.cn/blog_migrate/2baa12902264a75d9c53c2a117f993e5.png)
尝试上传一个php类型的文件,但不支持该类型文件进行上传
![](https://i-blog.csdnimg.cn/blog_migrate/5b42723b8cfccf3bb842a64782d0af9a.png)
![](https://i-blog.csdnimg.cn/blog_migrate/000dce740d1ff8cc3c4c7160a10d5a41.png)
上传一个后缀为.shtml的文件
<!--#exec cmd="id" -->
![](https://i-blog.csdnimg.cn/blog_migrate/6158ff0651717478c3fd289fa1c18223.png)
可以看到上传成功,点击查看
![](https://i-blog.csdnimg.cn/blog_migrate/a9bf8c429b8f1a73ecdd911548bbf7ff.png)
也可将文件中的id替换成其他内容,例如:
<!--#exec cmd="whoami" -->
![](https://i-blog.csdnimg.cn/blog_migrate/3e9153564b938f8c4ae2b783374aadce.png)
<!--#exec cmd="cat /etc/passwd" -->
![](https://i-blog.csdnimg.cn/blog_migrate/338286519425fa8fc774392df07a32d0.png)
复现成功