Apache SSI 远程命令执行漏洞


Apache SSI 远程命令执行漏洞

在测试任意文件上传漏洞的时候,目标服务端可能不允许上传php后缀的文件。如果目标服务器开启了SSI与CGI支持,我们可以上传一个shtml文件,并利用<!--#exec cmd="id" -->语法执行任意命令。

SSI

Apache SSI(Server Side Include),通常称为”服务器端嵌入”或者叫”服务器端包含”,是一种类似于ASP的基于服务器的网页制作技术。
默认扩展名是 .stm、.shtm 和 .shtml。

在技术上,SSI就是在静态HTML文件中,根据需求插入不同的内容。

例如一个article的频道,每一个article内页都生成一个静态的HTML,如此时,header某个位置需要修改,则需要重新生成所有article的静态HTML文件。
如使用了SSI,可以在HTML文件中通过注释行嵌入经常会变化的共用部分,例如登入讯息等。可以不需要重新生成所有article,服务器会根据嵌入文件自动生成网页,输出到浏览器,如要修改则只需要修改嵌入的文件即可,无需重新生成所有HTML文件,服务器包含这种方式与php的include类似。

漏洞复现

upload.php

正常上传PHP文件是不允许的,我们可以上传一个shell.shtml文件:

成功上传,然后访问shell.shtml,可见命令已成功执行:


文章作者: Geekby
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Geekby !
 上一篇
Aria2 任意文件写入漏洞 Aria2 任意文件写入漏洞
Aria2 任意文件写入漏洞Aria2是一个命令行下轻量级、多协议、多来源的下载工具(支持 HTTP/HTTPS、FTP、BitTorrent、Metalink),内建XML-RPC和JSON-RPC接口。在有权限的情况下,我们可以使用RP
2019-01-06
下一篇 
Apache HTTPD 多后缀解析漏洞 Apache HTTPD 多后缀解析漏洞
Apache HTTPD 多后缀解析漏洞Apache HTTPD 支持一个文件拥有多个后缀,并为不同后缀执行不同的指令。比如,如下配置文件: AddType text/html .html AddLanguage zh-CN .cn其给.h
2019-01-05
  目录