目录
漏洞简介
使用 SSI ( Server Side Include )的 html 文件扩展名,通常称为 “ 服务器端嵌入 ” 或者叫 “ 服务器端包含 ” ,是一种类似于 ASP 的基于服务器的网页制作技术。
当目标服务端同时又开启了SSI与CGI支持,攻击者就通过可以上传一个shtml文件,利用 语法执行任意命令。因为 SSI 支持从 HTML 的注释行中读取命令并执行。
实验环境
设备信息
靶机:Ubuntu vulhub(192.168.81.135)
攻击机:win10
环境搭建
使用Ubuntu搭建vulhub
cd进入目标路径
docker-compose build
docker-compose up -d
环境启动后访问http://192.168.81.135:8080/upload.php,可以看到上传表单页面
漏洞复现
创立脚本文件
在桌面创立cmd.shtml脚本文件
正常上传PHP文件是不被允许的,我们可以将后缀改为.shtml文件格式,test.shtml文件,内容如下:
<!--#exec cmd="命令" --> //脚本格式
写入
<!--#exec cmd="whoami" -->
上传脚本
点击cmd.shtml
复现成功
漏洞预防及修复
1.关闭SSI服务
2.过滤掉特殊字符串