Apache开启SSI,文件上传Getshell复现

Apache开启SSI,文件上传Getshell复现_第1张图片

一、什么是shtml

使用SSI(Server Side Include)的html文件扩展名,SSI(Server Side Include),通常称为“服务器端嵌入”或者叫“服务器端包含”,是一种类似于ASP的基于服务器的网页制作技术。

二、SSI指令基本格式

我这里就列举本文用到的

程序代码:

exec
作用:将某一外部程序的输出插入到页面中
语法:

参数:
cmd 常规应用程序
示例:
将会显示密码文件
将会显示当前目录的文件夹和文件

echo
作用:将环境变量插入到页面中。
语法:

示例:
你的IP地址

具体指令和原理等传送门
 

三、搭建上传环境

1. 这里本地进行搭建,使用的为phpstudy

2. 搭建并使用Pikachu靶场,把源码放到网站根目录之后,访问,127.0.0.1/pk/index.php

3. 点击安装即可

Apache开启SSI,文件上传Getshell复现_第2张图片

 

四、Apache开启SSI

1. D:\phpStudy\PHPTutorial\Apache\conf,在此目录找到http.conf

2. 找到以下两个,把前面的#号去掉

AddType text/html .shtml

AddOutputFilter INCLUDES .shtml

3. 在httpd.conf文件中找到这一行:

Options +Indexes +FollowSymLinks +ExecCGI

在后面添加INCLUDES,如下面所示:

Options +Indexes +FollowSymLinks +ExecCGI +INCLUDES

/*因为我的是PHP Study所以有个+号,宝塔的话,直接去掉+号就可以了*/

4. 测试

REMOTE_ADDR:显示发出请求信息的客户端IP地址。

往1.shtml写入,并上传

Apache开启SSI,文件上传Getshell复现_第3张图片

成功执行

五、Getshell

假如该网站是可以上传除PHP外的文件,尝试绕过也不行,但是该站开启了SSI,那么就可以上传shtml、bat进行Getshell(不过这个是真的少见)

1. 因为在上传成功的时候,pikachu这里会直接显示文件上传到了哪里,所以可以省去找相对路劲的步骤。

Apache开启SSI,文件上传Getshell复现_第4张图片

 

也可以让其报错显示网站的路径,可以看到它是把上传的文件上传到uploads这个目录

Apache开启SSI,文件上传Getshell复现_第5张图片

 

2. 上传一个带有木马的jpg

Apache开启SSI,文件上传Getshell复现_第6张图片

 

3. 上传一个bat文件,内容写入移动的代码

Move D:\phpStudy\PHPTutorial\WWW\pk\vul\unsafeupload\uploads\1.jpg D:\phpStudy\PHPTutorial\WWW\shell.php

Apache开启SSI,文件上传Getshell复现_第7张图片

 

4. 上传stml文件,执行SSI指令

路径为bat所在的目录

Apache开启SSI,文件上传Getshell复现_第8张图片

 

上传成功后访问11.shtml文件即可

Apache开启SSI,文件上传Getshell复现_第9张图片

 

可以看到已经移动成功

Apache开启SSI,文件上传Getshell复现_第10张图片

 

访问127.0.0.1/shell.php即可

 

转载请注明:Adminxe's Blog »Apache开启SSI,文件上传Getshell复现

你可能感兴趣的:(渗透测试,apache,信息安全,安全漏洞)