
CVE-2022-36804 के लिए Python एक्सप्लॉइट, जो कमजोर Bitbucket Server/Data Center पर दूरस्थ कमांड निष्पादन और फ़ाइल स्थानांतरण को सक्षम बनाता है, विशेष रूप से तैयार किए गए आर्काइव अनुरोधों के माध्यम से।
इस रिपॉजिटरी में Atlassian Bitbucket Server/Data Center की CVE-2022-36804 भेद्यता के लिए एक Python एक्सप्लॉइट स्क्रिप्ट है। यह समस्या Git archive प्रवाह में एक कमांड-इंजेक्शन दोष है, जहाँ विशेष रूप से तैयार किए गए prefix पैरामीटरों की सर्वर द्वारा व्याख्या की जा सकती है और उन्हें शेल कमांड के रूप में निष्पादित किया जा सकता है।
CVE-2022-36804 Bitbucket Server/Data Center की एक रिमोट कमांड निष्पादन भेद्यता है। यह archive endpoint पर prefix मान की असुरक्षित हैंडलिंग के कारण उत्पन्न हुई, जिससे हमलावर-नियंत्रित डेटा Git के माध्यम से शेल इनवोकेशन तक पहुँच सकता है। परिणामस्वरूप पथ और डिप्लॉयमेंट मॉडल के आधार पर बिना प्रमाणीकरण या प्रमाणित कमांड निष्पादन संभव है।
यह स्क्रिप्ट भेद्य archive endpoint को लक्षित करती है और इंजेक्शन ट्रिगर करने के लिए एक विशेष रूप से तैयार अनुरोध का उपयोग करती है।
यह PoC CVE-2022-36804 के लिए Atlassian परामर्श द्वारा कवर किए गए प्रभावित Bitbucket Server/Data Center बिल्ड के लिए है। व्यवहार में, भेद्य रेंज में Atlassian द्वारा सूचीबद्ध फिक्स किए गए संस्करणों से पहले के पुराने 7.x/8.x Bitbucket Server/Data Center रिलीज़ शामिल हैं। यह पैच किए गए या अपग्रेड किए गए बिल्ड के लिए नहीं है।
इसे केवल उन्हीं सिस्टमों के विरुद्ध उपयोग करें जिनके मालिक आप हैं या जिनके परीक्षण के लिए आपको स्पष्ट रूप से अधिकृत किया गया है।
स्क्रिप्ट एक अनुरोध भेजती है:
/rest/api/latest/projects/{project}/repos/{repo}/archive
इस रूप में एक विशेष रूप से तैयार prefix पैरामीटर के साथ:
ax%00--exec=`<command>`%00--remote=origin
चाल null-byte / Git कमांड पथ का फायदा उठाना है ताकि सर्वर archive अनुरोध से एक शेल कमांड निष्पादित कर दे। स्क्रिप्ट आवश्यकता पड़ने पर कमांड को gzip + base64 में लपेटती है ताकि आउटपुट संक्षिप्त रूप से लौटाया जाए और स्थानीय रूप से डिकोड किया जाए।
स्क्रिप्ट दो मुख्य मोड का समर्थन करती है:
python cve-2022-36804_v5.py <url> <username> <password> -p <project> -r <repo> -c "whoami"
विकल्प:
-c, --command: एक कमांड चलाएँ--no-encode: gzip+base64 लपेटने के बिना कच्चा कमांड भेजें-p, --project: Bitbucket प्रोजेक्ट कुंजी-r, --repo: Bitbucket रिपॉजिटरी स्लगpython cve-2022-36804_v5.py <url> <username> <password> -p <project> -r <repo> -f /path/to/local.bin -o /tmp/remote.bin
यह स्थानीय फ़ाइल को चंक्स में पढ़ता है, प्रत्येक चंक को base64-एन्कोड करता है, और एक्सप्लॉइट का उपयोग करके सर्वर पर लक्ष्य पथ पर इसे पुनर्निर्मित करता है।
requests.Session का उपयोग करती है।verify = False) अक्षम करती है।यह उपकरण केवल अधिकृत सुरक्षा अनुसंधान और नियंत्रित परीक्षण के लिए है। ऐसे सिस्टमों के विरुद्ध इसका उपयोग करना जिनके मालिक आप नहीं हैं या जिनके परीक्षण की अनुमति नहीं है, अवैध और अनैतिक है।