分享

CVE-2021-41773升华篇-Apache HTTP Server 路径穿越漏洞提升至RCE回...

 冲天香阵 2021-11-12

接上一篇:

漏洞快速分析与复现

QCyber,公众号:且听安全【最新漏洞预警】CVE-2021-41773-Apache HTTP Server 路径穿越漏洞快速分析与复现

本文进一步探讨将CVE-2021-41773路径穿越漏洞提升至RCE的可能性。

RCE探索



在安装Apache之后,默认并不包含cgi 模块,需要我们自行安装以完成cgi解析,那么有没有可能在启用`mod_cgi`模块的前提下,实现RCE呢?

首先修改`httpd.conf`配置文件,启用`mod_cgid`和`mod_cgi`模块。

图片

使用`apachectl -k restart`重启服务,`mod_cgi`模块的功能是根据输入脚本类型选择不同解析器进行执行,常用的解析器有`php`、`perl`等,直接写一个`id`命令,虽然httpd错误日志提示`Bad header`,但是命令已经执行成功:

图片

图片

尝试使用重定向,命令结果成功写入文件。

图片

图片

命令回显



在跟踪代码的过程中,注意到错误日志`apache/error_log`提示`malformed header from script sh`,分析后发现该错误来自于`ap_scan_script_header_err_core_ex`函数:

图片

根据分析可知,`ap_scan_script_header_err_core_ex`函数主要负责从cgi处理结果中读取输入,并确保输出格式符合一定要求。

图片

大体来说就是解析后的结果必须符合http协议规范,我们知道http请求分为header和body,且中间需要使用`\r\n`进行分割。这里使用`echo`命令直接写入一个文件头,由此成功获取了一个正常的返回报文。

图片

接下来使用相关语法就可以成功获取命令执行的回显结果。

图片

Windows版本补充分析



Windows版本的Apache通过目录穿越来读取`cmd.exe`,会提示`mallformed header from script`,无法实现命令执行。

图片

但是如果安装了对应的cgi也有可能实现RCE,比如php:

图片

由于传播、利用此文档提供的信息而造成任何直接或间接的后果及损害,均由使用本人负责,且听安全团队及文章作者不为此承担任何责任。

点关注,不迷路!

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多