Apache SSI 遠程命令執行漏洞復現
一、漏洞描述
當目標服務器開啟了SSI與CGI支持,我們就可以上傳shtml,利用<!--#exec cmd=”id” -->語法執行命令。
使用SSI(Server Side Include)的html文件擴展名,SSI(Server Side Include),通常稱為"服務器端嵌入"或者叫"服務器端包含",是一種類似於ASP的基於服務器的網頁制作技術。默認擴展名是 .stm、.shtm 和 .shtml。
二、漏洞環境搭建與復現
1、使用docker搭建漏洞環境,啟動環境
docker-compose build
docker-compose up -d
2、瀏覽器訪問http://172.17.0.1:8080/upload.php,即可看到一個上傳表單。
3、上傳一個php文件,提示不支持的上傳的類型
4、上傳一個shell.shtml文件
<!--#exec cmd="id" -->
5、瀏覽器訪問上傳的文件,下圖可以看到成功執行代碼,說明存在遠程命令執行漏洞