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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2026-66917 — JoomGallery में Broken Object-Level Authorization के माध्यम से IDOR + Stored XSS | Kitploit
उपकरण/GitHubGitHub/toanln-cov/cve-2026-66917
प्रमाणीकरण और प्राधिकरणभेद्यता विश्लेषणकोड विश्लेषणशोषणवेब एप्लिकेशन शोषणवेब सुरक्षा
GitHubtoanln-cov/cve-2026-66917

CVE-2026-66917

JoomGallery में Broken Object-Level Authorization के माध्यम से IDOR + Stored XSS

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

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

सभी देखें →

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

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

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

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

JoomGallery में टूटे ऑब्जेक्ट-स्तर प्राधिकरण के माध्यम से IDOR + संग्रहीत XSS

JoomGallery ≤ 4.3.0 — एडिटर-रोल उपयोगकर्ता किसी भी गैलरी छवि को हाईजैक करता है और XSS पेलोड संग्रहीत करता है, जिससे एडमिन सत्र अपहरण सक्षम होता है

CVE CVSS v4.0 CWE-639 CWE-79 Affected Researcher


सारांश

JoomGallery में UserimageController::save() checkACL('edit.own', ...) के बजाय checkACL('edit', ...) की जाँच करता है। एक एडिटर-रोल उपयोगकर्ता स्वामित्व की परवाह किए बिना किसी भी छवि के लिए task=userimage.save&id=N पर POST कर सकता है (IDOR — CWE-639)। चूँकि एडिटर-रोल के पास वैश्विक रूप से core.edit होता है, साइट पर हर छवि ID के लिए प्राधिकरण जाँच सफल हो जाती है, जिसमें एडमिनिस्ट्रेटरों के स्वामित्व वाली छवियाँ भी शामिल हैं।

फ्रंटएंड इमेज टेम्पलेट में $this->escape() कॉल की कमी के साथ, एक एडिटर किसी भी छवि शीर्षक में XSS पेलोड संग्रहीत कर सकता है — जिसमें एडमिन-स्वामित्व वाली छवियाँ भी शामिल हैं — जिससे हर आगंतुक के ब्राउज़र में JavaScript निष्पादित होती है। यह पूर्ण एडमिन सत्र अपहरण और पूरी साइट से समझौता सक्षम करता है।


प्रभावित संस्करण

कॉम्पोनेंटअसुरक्षित संस्करणपरीक्षण किया गयाहल संस्करण
JoomGallery (com_joomgallery)4.0.0 – 4.3.0Joomla 5.4.7 + JoomGallery 4.3.0-stable (PHP 8.2 / Apache)4.4.0

भेद्यता विवरण

प्रकार: टूटा हुआ ऑब्जेक्ट-स्तर प्राधिकरण / IDOR (CWE-639) जो संग्रहीत क्रॉस-साइट स्क्रिप्टिंग (CWE-79) के साथ जुड़ा हुआ है आवश्यक प्रमाणीकरण: निम्न-विशेषाधिकार वाला एडिटर खाता

मूल कारण 1 — IDOR (CWE-639)

फ़ाइल: components/com_joomgallery/src/Controller/UserimageController.php

save() क्रिया edit.own के बजाय edit अनुमति का उपयोग करके ACL जाँच करती है। edit अनुमति सभी एडिटर-रोल उपयोगकर्ताओं को वैश्विक रूप से दी जाती है, इसलिए जाँच किसी भी छवि ID के लिए सफल हो जाती है, चाहे उसे किसी ने भी बनाया हो।

USERIMAGECONTROLLER.PHP — असुरक्षित कोड (लाइन 145)

root@kitploit:~
// Vulnerable
if (!$this->checkACL('edit', 'image', $recordId, $parent_id, true)) { ... }

चूँकि core.edit एडिटर समूह के पास वैश्विक रूप से होता है, हर छवि ID के लिए शर्त false मूल्यांकित होती है, जिससे असीमित लेखन पहुँच मिलती है। सफल सहेजने पर, मॉडल अतिरिक्त रूप से created_by को हमलावर के उपयोगकर्ता ID में अपडेट कर देता है, जिससे छवि का स्वामित्व चुपचाप हमलावर को स्थानांतरित हो जाता है।

मूल कारण 2 — संग्रहीत XSS (CWE-79)

फ़ाइल: components/com_joomgallery/tmpl/image/default.php

फ्रंटएंड इमेज टेम्पलेट $this->item->title को alt एट्रिब्यूट संदर्भ में HTML-एन्कोडिंग किए बिना प्रतिध्वनित (echo) करता है। जूमला का JInput STRING फ़िल्टर दोहरे-उद्धरण वर्णों को नहीं हटाता है, इसलिए " युक्त पेलोड एट्रिब्यूट से बाहर निकलकर मनमाने ईवेंट हैंडलर इंजेक्ट कर देता है।

DEFAULT.PHP — असुरक्षित कोड (लाइन 64, 78)

root@kitploit:~
// Vulnerable
item->title; ?>" ...>

पेलोड abc" onmouseover="alert(document.domain);" x=" को jos_joomgallery.title में संग्रहीत किया जाता है और हर पेज रेंडर पर HTML एट्रिब्यूट में कच्चा (raw) इंजेक्ट किया जाता है। स्टोरेज या डिस्प्ले लेयर पर कोई सैनिटाइज़ेशन नहीं किया जाता।


प्रूफ ऑफ कॉन्सेप्ट

हमले की श्रृंखला का अवलोकन

  1. एडमिन एक गैलरी छवि बनाता है (ID=3)। स्वामी = एडमिनिस्ट्रेटर। प्रकाशित और अनुमोदित।
  2. हमलावर एडिटर के रूप में लॉगिन करता है। लॉगिन पेज से सत्र कुकी और CSRF टोकन निकालता है।
  3. हमलावर JoomGallery कॉम्पोनेंट से एक ताज़ा CSRF टोकन प्राप्त करता है।
  4. IDOR: एडिटर XSS पेलोड के साथ jform[title] में task=userimage.save&id=3 पर POST करता है। ACL जाँच सफल होती है (core.edit, न कि edit.own)। सर्वर HTTP 303 — न कि 403 — लौटाता है।
  5. शीर्षक को बिना एस्केप किए पेलोड के साथ अपडेट किया जाता है। created_by हमलावर के उपयोगकर्ता ID पर स्थानांतरित हो जाता है।
  6. XSS पेलोड jos_joomgallery.title में बिना एस्केप किए संग्रहीत होता है।
  7. कोई भी आगंतुक (या एडमिन) गैलरी फ्रंटएंड ब्राउज़ करता है। टेम्पलेट alt="abc" onmouseover="alert(document.domain);" रेंडर करता है। XSS ट्रिगर होता है। एडमिन सत्र कैप्चर हो जाता है → पूरी साइट से समझौता।

1. एडमिन गैलरी छवि बनाता है — स्वामी: एडमिनिस्ट्रेटर, ID = 3

एडमिन JoomGallery बैकएंड (Joomla 5.4.7) के माध्यम से admin_image बनाता है। छवि प्रकाशित, अनुमोदित है, और इसका स्वामित्व एडमिनिस्ट्रेटर के पास है।

चरण 1


2. एडिटर लॉगिन पेज से CSRF टोकन निकालता है

GET /index.php/component/users/login — प्रतिक्रिया JSON में "csrf.token":"a68c2b3a..." होता है। टोकन बाद के लॉगिन POST के लिए कैप्चर किया जाता है।

चरण 2


3. एडिटर लॉगिन करता है — HTTP 303, joomla_user_state=logged_in

POST /index.php/component/users/login CSRF टोकन और एडिटर क्रेडेंशियल के साथ। प्रतिक्रिया: HTTP 303 और Set-Cookie: joomla_user_state=logged_in। सत्र कुकी कैप्चर की गई।

चरण 3


4. एडिटर नया JoomGallery CSRF टोकन निकालता है

GET /index.php?option=com_joomgallery सत्र कुकी के साथ। प्रतिक्रिया में सहेजने के अनुरोध के लिए एक नया "csrf.token":"2d96934b..." होता है।

चरण 4


5. IDOR + XSS इंजेक्शन — सर्वर HTTP 303 के साथ स्वीकार करता है

एडिटर निम्न के साथ option=com_joomgallery&task=userimage.save&id=3 पर POST करता है, जिसमें jform[title] सेट है:

root@kitploit:~
abc" onmouseover="alert(document.domain);" x="

सर्वर HTTP 303 (न कि 403) लौटाता है, जो IDOR की पुष्टि करता है। Location हेडर रीडायरेक्ट URL में XSS पेलोड दिखाता है, जिससे पुष्टि होती है कि शीर्षक स्वीकार कर सहेज लिया गया था।

चरण 5


6. स्वामित्व स्थानांतरित — स्वामी एडिटर उपयोगकर्ता में बदल गया

JoomGallery बैकएंड दिखाता है कि छवि ID=3 का स्वामी अब Editor User है। अनधिकृत सहेजने के दौरान डेटाबेस में created_by फ़ील्ड चुपचाप अपडेट कर दी गई थी।

चरण 6


7. डेटाबेस पुष्टि करता है कि पेलोड बिना एस्केप किए संग्रहीत है

jos_joomgallery पर SQL क्वेरी पुष्टि करती है कि XSS पेलोड संग्रहीत है — " को " के रूप में नहीं, बल्कि कच्चे दोहरे-उद्धरण के रूप में संग्रहीत किया गया है। स्टोरेज लेयर पर कोई सैनिटाइज़ेशन नहीं हुआ।

चरण 7


8. XSS गैलरी फ्रंटएंड पर ट्रिगर होता है

/index.php/component/joomgallery/gallery पर जाने वाला कोई भी उपयोगकर्ता पेलोड को ट्रिगर करता है। ब्राउज़र का alert() डायलॉग पीड़ित के मूल (origin) में JavaScript निष्पादन की पुष्टि करता है (document.domain)।

चरण 8


प्रभाव

  1. अनधिकृत छवि संशोधन (IDOR): एक एडिटर-रोल उपयोगकर्ता बिना स्वामित्व सत्यापन के साइट पर किसी भी गैलरी छवि को संशोधित कर सकता है, जिसमें एडमिनिस्ट्रेटर के स्वामित्व वाली छवियाँ भी शामिल हैं।
  2. गुप्त स्वामित्व स्थानांतरण: हर अनधिकृत सहेजना चुपचाप created_by को हमलावर को पुनः सौंप देता है, जिससे ऑडिट ट्रेल स्थायी रूप से बदल जाता है।
  3. संग्रहीत XSS — लगातार निष्पादन: इंजेक्ट किया गया JavaScript पेलोड प्रत्येक गैलरी पेज लोड पर हर आगंतुक के ब्राउज़र में निष्पादित होता है, जो बिना प्रमाणीकरण वाले आगंतुकों और एडमिनिस्ट्रेटरों दोनों को प्रभावित करता है।
  4. एडमिन सत्र अपहरण → पूरी साइट से समझौता: alt एट्रिब्यूट में एक दुर्भावनापूर्ण स्क्रिप्ट एडमिनिस्ट्रेटर के सत्र कुकी को बाहर निकाल सकती है, जिससे हमलावर को पूर्ण बैकएंड पहुँच और पूरे Joomla इंस्टॉलेशन पर नियंत्रण मिल जाता है।
  5. स्कोप परिवर्तन: XSS पीड़ित के ब्राउज़र मूल (CVSS S:C) में निष्पादित होता है, जो हमलावर के निम्न-विशेषाधिकार सत्र और पीड़ित के उच्च-विशेषाधिकार सत्र के बीच की विश्वास सीमा को पार कर जाता है।

संदर्भ

  • CVE: https://www.cve.org/CVERecord?id=CVE-2026-66917
  • NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-66917
  • GitHub एडवाइज़री: https://github.com/advisories/GHSA-8vxv-gf52-gm5h
  • विक्रेता रिपॉजिटरी: https://github.com/JoomGalleryfriends/JoomGallery
  • विक्रेता की नई रिलीज़ नोट: https://www.joomgalleryfriends.net/en/blog/joomgallery-4-en/joomgallery-4-4-0.html
टूल डाउनलोड करें