Apache远程命令执行漏洞

Apache远程命令执行漏洞

一、SHTML

sthtml简介:

shtml是一种基于SSI技术的文件,也就是(Server Side Include)SSI服务器端包含指令,一些Web Server如果有SSI功能的话就会对shtml文件特殊招待,服务器会先扫一次shtml文件看没有特殊的SSI指令存在,如果有的话就按Web Server设定规则解释SSI指令,解释完后跟一般html一起调去客户端。

html或htm与shtml或shtm的关系:

html或者htm是一种静态的页面格式,也就是说不需要服务器解析其中的脚本,或者说里面没有服务器端执行的脚本,而shtml或者shtm由于它基于SSI技术,当有服务器端可执行脚本时被当作一种动态编程语言来看待,就如asp、jsp或者php一样。当shtml或者shtm中不包含服务器端可执行脚本时其作用和html或者htm是一样的。

二、SSI指令

1.SSI:(Server Side Include)的简写,服务器端嵌入或者服务器端包含。

通过在文档中加入SSI指令,服务器端在输出文档之前会解析SSI指令,并把解析完的结果和文档一同输出给客户端。

2.SSI的指令格式为:

<!-- #directive parameter="value" -->

<!-- -->:是HTML语法中表示注释,当WEB服务器不支持SSI时,会忽略这些信息。
directive:指令名
parameter:指令参数
value:指令参数值

SSI的指令格式形如HTML注释。在将内容发送到浏览器之前,可以使用SSI指令将文本、图形或应用程序信息包含到网页中,如果Web服务器开启了SSI功能模块,并且页面包含可以解析的指令,那么Web服务器就会解析这个指令。若服务端没开启SSI功能模块或者开启了SSI功能模块,但是页面包含的指令不是可以解析的指令,那么将当做注释处理。

3.SSI包含的指令有:

config:修改 SSI 的默认设置
echo:显示环境变量
exec:执行 CGI 脚本
flastmod :显示指定文件的最后修改日期
fsize:显示指定文件的大小
include:把其它文档插入到当前被解析的文档中

三、漏洞复现

1.环境

2.web页面http://ip:8080/upload.php

3.上传1.shtml文件

4.上传成功

5.访问http://ip:8080/1.shtml

6.服务器验证

posted @ 2021-09-17 14:43  ct-debug  阅读(435)  评论(0)    收藏  举报