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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2026-76564 — PhocaCart के व्यवस्थापक ऑर्डर दृश्य में User-Agent के माध्यम से Stored XSS | Kitploit
उपकरण/GitHubGitHub/toanln-cov/cve-2026-76564
भेद्यता विश्लेषणकोड विश्लेषणशोषणवेब एप्लिकेशन शोषणवेब सुरक्षापेपर और शोध
GitHubtoanln-cov/cve-2026-76564

CVE-2026-76564

PhocaCart के व्यवस्थापक ऑर्डर दृश्य में User-Agent के माध्यम से Stored XSS

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

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

सभी देखें →

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

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

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

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

PhocaCart के एडमिन ऑर्डर दृश्य में User-Agent के माध्यम से Stored XSS

PhocaCart ≤ 6.1.7 — बिना प्रमाणीकरण वाला हमलावर Checkout के माध्यम से XSS Payload संग्रहीत करता है। यह एडमिन ब्राउज़र संदर्भ में निष्पादित होता है

CVE CVSS v4.0 CWE-79 Affected Researcher


सारांश

जब store_user_agent कॉन्फ़िगरेशन विकल्प सक्षम होता है, तो Joomla के लिए PhocaCart 6.1.7, checkout अनुरोधों से कच्चे HTTP User-Agent हेडर को orders डेटाबेस तालिका में संग्रहीत करता है। संग्रहीत मान को बाद में Adminview.php में itemText() के माध्यम से एडमिनिस्ट्रेटर ऑर्डर संपादन दृश्य में बिना HTML एन्कोडिंग के प्रस्तुत किया जाता है।

एक बिना प्रमाणीकरण वाला हमलावर JavaScript payload युक्त क्राफ्टेड के साथ ऑर्डर दे सकता है। जब कोई एडमिनिस्ट्रेटर बैकएंड में ऑर्डर खोलता है, तो payload एडमिन ब्राउज़र संदर्भ में निष्पादित हो जाता है — जिससे सत्र अपहरण (session hijacking), क्रेडेंशियल चोरी, या अनधिकृत प्रशासनिक कार्य संभव हो जाते हैं।

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

इस भेद्यता के लिए store_user_agent = 1 (गैर-डिफ़ॉल्ट) सक्षम होना आवश्यक है। चूँकि यह विकल्प ब्राउज़र आँकड़े एकत्र करने के लिए एडमिनिस्ट्रेटर का जानबूझकर किया गया चयन है, प्रभावित दुकानें वे हैं जहाँ दुकान स्वामी ने इस सुविधा को सक्षम किया है — जिससे हमलावर के दृष्टिकोण से शोषण पूरी तरह से मूक रहता है।


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

घटकभेद्यपरीक्षण किया गयासमाधान
PhocaCart (com_phocacart)5.0.0 – 6.1.7Joomla 5.4.7 + PhocaCart 6.1.7 + MariaDB 10.66.1.8

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

प्रकार: Stored XSS (CWE-79) — एडमिन-लक्षित प्रमाणीकरण आवश्यक: इंजेक्ट करने के लिए कोई प्रमाणीकरण आवश्यक नहीं। ट्रिगर करने के लिए एडमिनिस्ट्रेटर आवश्यक। CSRF टोकन आवश्यक: हाँ (checkout के लिए मानक Joomla CSRF टोकन आवश्यक) फ़ाइल: administrator/components/com_phocacart/libraries/Phoca/Render/Adminview.php:382

मूल कारण

जब store_user_agent = 1 होता है, तो PhocacartUtils::getUserAgent() विधि $_SERVER['HTTP_USER_AGENT'] को बिना किसी सैनिटाइज़ेशन के लौटाती है। यह कच्चा स्ट्रिंग #__phocacart_orders में संग्रहीत होता है (200 वर्णों पर छोटा किया गया — XSS रोकने के लिए अपर्याप्त)। जब कोई एडमिनिस्ट्रेटर बैकएंड में ऑर्डर देखता है, तो itemText() बिना htmlspecialchars() को कॉल किए संग्रहीत मान को सीधे HTML प्रतिक्रिया में जोड़ देता है।

डेटा प्रवाह:

root@kitploit:~
Attacker sends checkout request:
  User-Agent: <script>alert(document.domain)</script>

    utils.php:334   PhocacartUtils::getUserAgent()
    └─ return (string) $_SERVER['HTTP_USER_AGENT']   // raw, no sanitization
        order.php:413  $d['user_agent'] = substr($user_agent, 0, 200)
        └─ INSERT INTO #__phocacart_orders (user_agent) VALUES ('<script>...</script>')

Admin opens order in backend:
    edit.php:84    echo $r->itemText($this->itemcommon->user_agent, ...)
    Adminview.php:382  '<div class="controls >' . $item . '</div>'
                                           // → NO htmlspecialchars()
    → Browser renders: <div><script>alert(document.domain)</script></div>
    → XSS fires in administrator's browser

ORDER.PHP — संग्रहण चरण (भेद्य स्रोत)

administrator/components/com_phocacart/libraries/phocacart/order/order.php:424

root@kitploit:~
$user_agent = PhocacartUtils::getUserAgent(); // reads $_SERVER['HTTP_USER_AGENT'] raw
$d['user_agent'] = substr($user_agent, 0, 200); // stored in DB unfiltered

ADMINVIEW.PHP:382 — प्रतिपादन चरण (भेद्य सिंक)

root@kitploit:~
// No htmlspecialchars() applied:
$output .= '  <div class="controls ' . $class . '">' . $item . '</div>' . "\n";

administrator/components/com_phocacart/views/phocacartorder/tmpl/edit.php:84 से कॉल किया गया:

root@kitploit:~
echo $r->itemText($this->itemcommon->user_agent, Text::_('COM_PHOCACART_USER_AGENT'), '', 'user_agent');

itemText() फ़ंक्शन $item (संग्रहीत user_agent मान) को बिना किसी एन्कोडिंग के सीधे HTML आउटपुट में पारित करता है, जिससे यह प्राथमिक सिंक बन जाता है। इसे सिंक स्तर पर ठीक करने से itemText() के सभी कॉलर सुरक्षित हो जाते हैं।


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

हमले के लिए एक दुर्भावनापूर्ण User-Agent हेडर के साथ पूर्ण checkout प्रवाह को पूरा करना आवश्यक है। CSRF टोकन पहले प्राप्त किया जाना चाहिए क्योंकि Joomla का checkout नियंत्रक इसे मान्य करता है।

0. पूर्वापेक्षा — Store User Agent Information सक्षम करें

Joomla एडमिन में, Components → Phoca Cart → Options → Main tab → Statistics Options पर जाएँ। Store User Agent Information = Yes सेट करें और सहेजें।

पूर्वापेक्षा: Store User Agent Information = Yes

1. CSRF टोकन प्राप्त करें

हमलावर checkout नियंत्रक द्वारा आवश्यक एक मान्य Joomla CSRF टोकन निकालने के लिए दुकान के फ्रंटएंड पर जाता है। टोकन किसी भी दुकान पृष्ठ के HTML स्रोत या JavaScript कॉन्फ़िगरेशन में दिखाई देता है।

चरण 1: हमलावर Burp Suite के माध्यम से दुकान फ्रंटएंड से CSRF टोकन प्राप्त करता है

2. उत्पाद को कार्ट में जोड़ें

हमलावर एक हानिरहित User-Agent का उपयोग करके AJAX checkout एंडपॉइंट के माध्यम से उत्पाद को कार्ट में जोड़ता है। यह checkout सत्र को अगली स्थिति में ले जाता है।

चरण 2: उत्पाद को कार्ट में जोड़ें — POST checkout.add

3. बिलिंग पता सहेजें

हमलावर checkout स्टेट मशीन को आगे बढ़ाने के लिए बिलिंग जानकारी जमा करता है।

चरण 3: बिलिंग पता सहेजें — Burp Suite

4. शिपिंग विधि सहेजें

हमलावर भुगतान के लिए आगे बढ़ने हेतु एक शिपिंग विधि चुनता है।

चरण 4: शिपिंग विधि सहेजें — Burp Suite

5. भुगतान विधि सहेजें

हमलावर एक भुगतान विधि चुनता है (उदा., Cash on Delivery)।

चरण 5: भुगतान विधि सहेजें — Burp Suite

6. Payload इंजेक्ट करें — दुर्भावनापूर्ण User-Agent के साथ ऑर्डर दें

महत्वपूर्ण इंजेक्शन चरण। हमलावर User-Agent हेडर को XSS payload पर सेट करके task=checkout.order के माध्यम से अंतिम ऑर्डर देता है। checkout.order कार्य कच्चे HTTP_USER_AGENT मान को पढ़ता है और इसे #__phocacart_orders.user_agent में बिना एस्केप किए संग्रहीत करता है।

root@kitploit:~
POST /index.php/shop/checkout HTTP/1.1
Host: TARGET
User-Agent: <script>alert(document.domain)</script>
Content-Type: application/x-www-form-urlencoded

phcheckouttac=1&task=checkout.order&option=com_phocacart&return=&<CSRF_TOKEN>=1

परिणाम: ऑर्डर बन गया। डेटाबेस user_agent = '<script>alert(document.domain)</script>' संग्रहीत करता है।

चरण 6: दुर्भावनापूर्ण User-Agent के साथ ऑर्डर देना — payload डेटाबेस में इंजेक्ट किया गया

7. एडमिन ऑर्डर सूची देखता है

एडमिनिस्ट्रेटर Components → Phoca Cart → Orders पर जाता है। इंजेक्ट किया गया ऑर्डर सूची में दिखाई देता है। इस चरण में XSS अभी तक ट्रिगर नहीं होता है।

चरण 7: Joomla बैकएंड में एडमिन ऑर्डर सूची — इंजेक्ट किया गया ऑर्डर दिखाई दे रहा है

8. XSS सक्रिय होता है — एडमिन ऑर्डर विवरण खोलता है

जब एडमिनिस्ट्रेटर संपादन दृश्य खोलने के लिए ऑर्डर पर क्लिक करता है, तो संग्रहीत user_agent को itemText() के माध्यम से बिना एस्केप किए प्रस्तुत किया जाता है। JavaScript तुरंत निष्पादित हो जाता है।

ट्रिगर URL:

root@kitploit:~
/administrator/index.php?option=com_phocacart&view=phocacartorder&layout=edit&id=<ORDER_ID>

चरण 8: XSS payload एडमिनिस्ट्रेटर के ब्राउज़र में निष्पादित होता है — alert(document.domain) निष्पादन संदर्भ की पुष्टि करता है


प्रभाव

  1. एडमिन सत्र अपहरण — XSS payload एडमिनिस्ट्रेटर के सत्र कुकी को चुराकर बाहर भेज सकता है, जिससे बिना क्रेडेंशियल के पूर्ण बैकएंड पहुँच मिल जाती है।
  2. अनधिकृत एडमिन कार्रवाइयाँ — एडमिन ब्राउज़र संदर्भ में निष्पादित होकर, payload कोई भी बैकएंड कार्रवाई कर सकता है: विशेषाधिकार प्राप्त खाते बनाना, दुर्भावनापूर्ण एक्सटेंशन इंस्टॉल करना, या सामग्री संशोधित करना।
  3. स्थायी बैकडोर — एक payload जो वेब शेल इंस्टॉल करता है या एक दुष्ट एडमिन खाता बनाता है, वह XSS घटना से परे भी बना रहता है, जिससे हमलावर को सर्वर तक स्थायी पहुँच मिलती है।

संदर्भ

  • CVE: https://www.cve.org/CVERecord?id=CVE-2026-76564
  • NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-76564
  • GitHub Advisory: https://github.com/advisories/GHSA-98mw-pj3j-99v2
  • विक्रेता रिपॉजिटरी: https://github.com/PhocaDesign/PhocaCart