Apache httpd 中的另一个漏洞允许在站点根目录之外进行访问

Apache http 服务器发现了一个新的攻击媒介,该攻击媒介在 2.4.50 更新中仍未得到纠正,并允许从站点根目录之外的区域访问文件。 此外,研究人员还发现了一种方法,在存在某些非标准设置的情况下,不仅可以读取系统文件,还可以在服务器上远程执行其代码。 该问题仅出现在版本 2.4.49 和 2.4.50 中;早期版本不受影响。 为了消除这个新漏洞,Apache httpd 2.4.51很快就发布了。

从本质上讲,新问题(CVE-2021-42013)与2021中的原始漏洞(CVE-41773-2.4.49)完全相似,唯一的区别是“..”字符的编码不同。 特别是,在版本 2.4.50 中,使用序列“%2e”对点进行编码的能力被阻止,但错过了双重编码的可能性 - 当指定序列“%%32%65”时,服务器对其进行了解码进入“%2e”,然后进入“.”,即转到上一个目录的“../”字符可以编码为“.%%32%65/”。

至于通过代码执行来利用该漏洞,当启用 mod_cgi 并且使用允许执行 CGI 脚本的基本路径时(例如,如果启用 ScriptAlias 指令或在选项指令)。 成功攻击的强制要求还包括显式提供对包含可执行文件的目录的访问权限,例如 /bin,或对 Apache 设置中的文件系统根目录“/”的访问权限。 由于通常不会授予此类访问权限,因此代码执行攻击在实际系统中几乎没有应用。

与此同时,获取运行 http 服务器的用户可读的任意系统文件和 Web 脚本源文本内容的攻击仍然具有相关性。 要进行此类攻击,只需使用“Alias”或“ScriptAlias”指令(DocumentRoot 还不够)在站点上配置一个目录即可,例如“cgi-bin”。

允许您在服务器上执行“id”实用程序的漏洞示例:curl 'http://192.168.0.1/cgi-bin/.%%32%65/.%%32%65/.%% 32%65/.%% 32%65/.%%32%65/bin/sh' —data 'echo 内容类型:文本/纯文本; 回声; id' uid=1(守护进程) gid=1(守护进程) groups=1(守护进程)

允许您显示 /etc/passwd 内容和 Web 脚本之一的漏洞利用示例(要输出脚本代码,必须指定通过“Alias”指令定义的目录,该目录未启用脚本执行作为基本目录):curl 'http://192.168.0.1 .32/cgi-bin/.%%65%32/.%%65%32/.%%65%32/.%%65%32/.% %65%192.168.0.1/etc/passwd'curl'http://32/aliaseddir/.%%65%32/.%%65%32/.%%65%32/.%%65%32/。 %%65%2/usr/local/apacheXNUMX/cgi-bin/test.cgi'

该问题主要影响持续更新的发行版,例如Fedora、Arch Linux和Gentoo,以及FreeBSD的移植版。 保守服务器发行版 Debian、RHEL、Ubuntu 和 SUSE 的稳定分支中的软件包不受该漏洞影响。 如果使用“要求全部拒绝”设置显式拒绝对目录的访问,则不会出现此问题。

来源: opennet.ru

添加评论