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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
stirling-storage-folder-idor — Stirling-PDF v3.2.0 - उच्च - रिमोट - IDOR - processing-folder स्टोरेज रूट सूचीबद्ध करता है और सहकर्मी PDFs को अधिलेखित करता है | Kitploit
उपकरण/GitHubGitHub/abraxas/stirling-storage-folder-idor
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणवेब सुरक्षापेनिट्रेशन टेस्टिंगलैब और अभ्यास
GitHubabraxas/stirling-storage-folder-idor

stirling-storage-folder-idor

Stirling-PDF v3.2.0 - उच्च - रिमोट - IDOR - processing-folder स्टोरेज रूट सूचीबद्ध करता है और सहकर्मी PDFs को अधिलेखित करता है

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

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

सभी देखें →

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

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

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

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

Abraxas Labs - stirling-storage-folder-idor

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  stirling-storage-folder-idor

stirling-storage-folder-idor

Stirling-PDF 3.2.0 - Stirling Tools

Class: IDOR. Reach: Remote ROLE_USER.

POST /api/v1/processing-folders में लॉग-इन उपयोगकर्ता के अलावा कोई @PreAuthorize नहीं है। FolderAccessGuard पूरे लोकल स्टोरेज basePath (./storage) को निहित करता है, भले ही policies.allowedFolderRoots खाली हो। LocalStorageProvider {ownerId}/{uuid}_{filename} लिखता है। एक ROLE_USER directory: "storage/<victimUserId>" सेट कर सकता है, उस owner की PDFs को सूचीबद्ध कर सकता है, और replace=true के साथ उन्हें जगह पर ही बदल सकता है।

सीधा /api/v1/storage/files/{id} पैच किया गया है (findByIdAndOwner)। पीयर के रूप में पीड़ित फ़ाइल का लैब GET 403 है। जो बचा है वह प्रोसेसिंग-फ़ोल्डर का निहित रूट है, स्टोरेज CRUD API नहीं।

एक ROLE_USER किसी अन्य उपयोगकर्ता की संग्रहीत PDF नामों को सूचीबद्ध करता है और उन ब्लॉब्स को अधिलेखित करता है। पीड़ित का डाउनलोड छेड़छाड़ की गई फ़ाइल लौटाता है।

IDअभी तक कोई CVE नहीं
CWECWE-639 / CWE-73
CVSS7.1 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:H/A:N
ProductStirling-PDF
Affectedv3.2.0 (a7e593728dd9aa81e75318a949789d3c2e9ee754), image stirlingtools/stirling-pdf:3.2.0-fat, login-on, storage.enabled=true
Authडिफ़ॉल्ट टीम पर ROLE_USER
LicenseGNU Affero GPL v3.0
Labकेवल 127.0.0.1:18154

Stirling-PDF v3.2.0 leftovers श्रृंखला का अवशेष। सहोदर: stirling-h2-import-leftover (H2 CREATE OR REPLACE ALIAS)। यह पैक स्टोरेज IDOR है।

एक हमलावर क्या कर सकता है

कोई भी लॉग-इन मानव ROLE_USER जो login-on proprietary/fat पर लोकल स्टोरेज सक्षम (टेम्पलेट डिफ़ॉल्ट) के साथ है। आधिकारिक compose login-off प्लस DISABLE_ADDITIONAL_FEATURES=true है; वह डिप्लॉय /api/v1/storage पर 403 देता है और इस कंट्रोलर को छोड़ देता है। HIT डिप्लॉय टेम्पलेट login-on प्लस fat है।

विशेषाधिकार तालिका (पूर्ण)। Signal-Server Dropwizard admin के समान मानक।

AxisMethod + pathGrantsProvenance
ReconROLE_USER GET /api/v1/user/usersadmin, peer, और STIRLING-PDF-BACKEND-API-USER के लिए संख्यात्मक userIdलैब-प्रमाणित
ReconPOST /api/v1/processing-folders {directory:"storage/1"} फिर GET /api/v1/processing-folders/{id}/filesadmin की संग्रहीत PDF का नाम, आकार, mtime (5341de35-8729-49cf-92d0-c8284e05bfc5_victim-lab.pdf)लैब-प्रमाणित
IntegrityPOST /api/v1/processing-folders/{id}/sweep के साथ /api/v1/security/add-watermark फिर पीड़ित Range GET /api/v1/storage/files/1/downloadजगह पर पुनर्लेखन। पीड़ित 206 / 3450 बाइट्स में STIRLING-STORAGE-FOLDER-IDOR-WITNESS शामिल हैलैब-प्रमाणित (replace=true)
Confidentialityवही sweep प्लस एक टीम outputId / आउटबाउंड चरण जिसे हमलावर पढ़ सकता हैपीड़ित PDF बाइट्स की प्रतिलिपिअनुमानित। सूचीबद्ध करने/अधिलेखित करने के लिए आवश्यक नहीं

इस पिन पर बंद रहता है

अक्षविधि + पथयह क्यों बंद है
रेकॉनकिसी गैर-साझा फ़ाइल का GET /api/v1/storage/files/{id}403 Access denied। फ़ाइल id 1 पर लैब-प्रमाणित
रेकॉनअन-ऑथ /api/v1/storage/**लॉगिन बंद होने पर 403 (ensureStorageEnabled)
अखंडतामालिकों के बीच फ़ोल्डर UUID CRUDfindByIdAndOwner
अखंडताLocalStorageProvider .. / निरपेक्ष कुंजीnormalize के बाद Path.startsWith(basePath)
अखंडताअल्ट्रा-लाइट इमेजप्रोप्राइटरी प्रोसेसिंग-फ़ोल्डर कंट्रोलर अनुपस्थित

GET /api/v1/user/users जो STIRLING-PDF-BACKEND-API-USER को सूचीबद्ध करता है, अतिरिक्त IOC है। मैंने इसे इसके अपने लेफ्टओवर के रूप में दर्ज नहीं किया। ओवरराइट के बाद अन-रेंज्ड विक्टिम डाउनलोड 500 देता है क्योंकि FileStorageController अभी भी मूल DB sizeBytes का विज्ञापन करता है। Range काम करता है। वॉटरमार्क टेक्स्ट FlateDecode में Identity-H है; ओरेकल स्ट्रीम्स को इन्फ्लेट करता है।

मैंने इसे कैसे खोजा

3.x ने लोकल स्टोरेज और प्रोसेसिंग फ़ोल्डर जोड़े। स्टोरेज CRUD मालिक-स्कोप्ड है। FolderAccessGuard.serverStorageRoots पूरे ट्री के लिए Path.of(basePath) लौटाता है, basePath/{currentUserId} नहीं। storage/<victimId> उस निहित रूट से startsWith करता है।

लैब peeruser को ROLE_USER के रूप में बनाती है, एडमिन के रूप में एक विक्टिम PDF अपलोड करती है, प्रत्यक्ष स्टोरेज GET 403 साबित करती है, एक प्रोसेसिंग फ़ोल्डर को storage/1 पर इंगित करती है, UUID-प्रीफ़िक्स्ड नाम को सूचीबद्ध करती है, एक वॉटरमार्क स्वीप करती है, फिर विक्टिम के रूप में Range-डाउनलोड करती है।

गलत मोड़: प्रत्यक्ष स्टोरेज IDOR को अभी भी खुला मानना (403); लॉगिन-ऑफ आधिकारिक compose को HIT डिप्लॉय मानना (स्टोरेज 403, कंट्रोलर अनुपस्थित); outputId के बिना हमलावर-पठनीय बाइट कॉपी का दावा करना।

लैब

python3 stirling-storage-folder-idor-Abraxas-Labs.py

या

cd lab
./run.sh

केवल http://127.0.0.1:18154 को लक्षित करें। इमेज stirlingtools/stirling-pdf:3.2.0-fat। Docker आवश्यक है। लॉगिन-ऑन। लॉन्चर lab/ में chdir करता है और run.sh को exec करता है।

IOC direct-storage-get http=403
IOC processing-folders-save directory=storage/1 http=202
IOC listed-peer ... victim-lab.pdf
IOC victim-download attempt=1 http=206 bytes=3450 witness=1
SUCCESS stirling-storage-folder-idor direct-storage-403=yes listed-peer-pdf=yes download-has-witness=yes STIRLING-STORAGE-FOLDER-IDOR-WITNESS

समाधान

मल्टी-यूज़र सर्वर पर डिस्क directory के लिए निहित स्टोरेज रूट को basePath/{currentUserId} तक सीमित करें। storage/<otherId> को उसी तरह अस्वीकार करें जैसे findByIdAndOwner पहले से ही बाहरी फ़ाइल आईडी को अस्वीकार करता है। इन-प्लेस रीराइट के बाद विज्ञापित sizeBytes की पुनर्गणना करें।

पैच किए गए बिल्ड के विरुद्ध लूपबैक क्लाइंट को फिर से चलाएँ: peeruser के रूप में directory=storage/1 को 403 देना चाहिए, और सूचीबद्ध-पीयर खाली ही रहना चाहिए।

तब तक, "मैंने /api/v1/storage/files/{id} को पैच कर दिया" को "मैंने ./storage के अंतर्गत डिस्क पाथ लेने वाले हर API को सीमित कर दिया" के रूप में न मानें।

संदर्भ

  • github.com/Stirling-Tools/Stirling-PDF टैग v3.2.0 (a7e593728dd9aa81e75318a949789d3c2e9ee754)
  • abraxaslabs.tech/research/stirling-storage-folder-idor
  • abraxaslabs.tech/research/stirling-pdf-3.2.0-leftovers

विक्रेता इनटेक: GitHub Security Advisory टैब या [email protected]। मैं Stirling-Tools/Stirling-PDF पर सार्वजनिक इश्यू नहीं खोल रहा हूँ।

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