Apache SSI 远程命令执行漏洞

漏洞描述

当目标服务器开启了SSI与CGI支持,我们就可以上传shtml,利用<!--#exec cmd=“id” -->语法执行命令。
使用SSI(Server Side Include)的html文件扩展名,SSI(Server Side Include),通常称为"服务器端嵌入"或者叫"服务器端包含",是一种类似于ASP的基于服务器的网页制作技术。默认扩展名是 .stm、.shtm 和 .shtml。

漏洞危害

攻击者可以利用此问题进行任意命令执行操作。这可能有助于进一步的攻击。

漏洞影响版本

目标服务器开启了SSI与CGI支持

漏洞分析

如果目标服务器开启了SSI与CGI支持,我们可以上传一个shtml文件,并利用<!--#exec cmd="id" -->语法执行任意命令。
正常上传PHP文件是不允许的,我们可以上传一个shell.shtml文件:<!--#exec cmd="whoami" -->
查看上传文件,页面回显如上执行的whoami命令结果

环境搭建

  1. 将docker-compose、Dockerfile、upload.php放在一个文件夹里
    在这里插入图片描述
  2. 使用docker搭建漏洞环境
启动docker:
	sudo service docker start
启动docker-compose.yml(在docker-compose.yml文件所在的路径执行)
	docker-compose build
	docker-compose up -d

在这里插入图片描述在这里插入图片描述

漏洞复现

  1. 环境启动后,访问http://192.168.111.130:8080,正常上传PHP文件是不允许的,我们可以上传一个内容为“<!--#exec cmd=”ls” -->”的shell.shtml文件:
    在这里插入图片描述
  2. 成功上传,然后访问shell.shtml,可见命令已成功执行:
    在这里插入图片描述POC验证:
    使用方法:python3 exp.py --target-url http://192.168.111.130:8080
    在这里插入图片描述

修复建议

  1. 关闭SSI服务;
  2. 过滤<、>、-、#、!等字符。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值