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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
plausible-traffic-notify — Plausible Analytics master d44e104 - उच्च - रिमोट - IDOR - PUT traffic-change-notification site_id मास असाइनमेंट | Kitploit
उपकरण/GitHubGitHub/abraxas/plausible-traffic-notify
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणवेब सुरक्षापेनिट्रेशन टेस्टिंगलैब और अभ्यास
GitHubabraxas/plausible-traffic-notify

plausible-traffic-notify

Plausible Analytics master d44e104 - उच्च - रिमोट - IDOR - PUT traffic-change-notification site_id मास असाइनमेंट

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

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

सभी देखें →

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

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

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

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

Abraxas Labs - plausible-traffic-notify

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  plausible-traffic-notify

plausible-traffic-notify

Plausible Analytics कम्युनिटी संस्करण, GitHub master d44e104ae3943a9240d5cb6b62e67dff0f069d3a (2026-10-16) - Plausible Insights OÜ

वर्ग: IDOR (mass-assignment)। पहुँच: रिमोट (उस साइट का owner / admin / editor जिसे हमलावर पहले से नियंत्रित करता है)।

Plausible.Site.TrafficChangeNotification.changeset/2 अभी भी :site_id को cast करता है। SiteController.update_traffic_change_notification/2 पंक्ति को अधिकृत पथ डोमेन द्वारा लोड करता है, फिर क्लाइंट मैप का Repo.update! करता है। रूट PUT /sites/:domain/traffic-change-notification/:type :browser + CSRF + AuthorizeSiteAccess [:owner, :admin, :editor, :super_admin] के अंतर्गत आता है। HTML फ़ॉर्म केवल threshold पोस्ट करता है। Phoenix फिर भी अतिरिक्त कुंजियाँ स्वीकार करता है।

whoareme Bug 02 ने Shield / Goal site_id को उसी तरह पैच किया था: socket.assigns.site.id को बाइंड करें, :site_id को cast करना बंद करें। यह कंट्रोलर उस पास में नहीं था। Enable (POST .../enable) assigns से site_id: site.id स्टांप करता है। हमलावर अपनी साइट पर enable करता है, फिर traffic_change_notification[site_id]=<victim_pk> PUT करता है। यूनिक इंडेक्स (site_id, type)। डिफ़ॉल्ट इंस्टॉल में कोई spike/drop पंक्ति नहीं होती, इसलिए अपडेट सफल होता है और पंक्ति अब पीड़ित की हो जाती है। तालिका का नाम लीगेसी spike_notifications है।

अपनी साइट का एक editor spike/drop notify पंक्ति को किसी पीड़ित साइट पर re-parent कर देता है। प्राप्तकर्ता हमलावर का मेलबॉक्स ही रहते हैं। Oban हमलावर को पीड़ित के ट्रैफ़िक के बारे में मेल भेजता है।

IDअभी कोई CVE नहीं
CWECWE-915 / CWE-639
CVSSHigh: 7.1 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:L
ProductPlausible Analytics
AffectedGitHub master d44e104ae3943a9240d5cb6b62e67dff0f069d3a (2026-10-16)। अंतिम CE टैग v3.2.1 (e4f5a87a5570bd61605217e7ceb376636db8eddb, 2026-05-15) पाँच महीने पीछे है। CE + EE (lib/, extra/lib नहीं)।
Authउस साइट का owner / admin / editor जिसे वे नियंत्रित करते हैं। Viewer नहीं कर सकता। CSRF आवश्यक (same-session IDOR)।
LicenseGNU Affero GPL v3.0
Labकेवल 127.0.0.1:18183 (http) 18184 (postgres) 18185 (clickhouse http)

Plausible Analytics leftovers का Leftover #2। वही pin, दूसरा पैक: plausible-editor-invite (People HTML editors को transfer nanoid लीक करता है)। यह पैक वह Shield/Goal सहोदर है जो अभी भी :site_id को cast करता है।

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

किसी भी ऐसी साइट का owner, admin, या editor जिसे वे पहले से नियंत्रित करते हैं। उन्हें उस सत्र से एक session cookie और CSRF टोकन चाहिए। उन्हें पीड़ित पर सदस्यता की आवश्यकता नहीं है। वे पीड़ित का पथ डोमेन PUT नहीं करते (वह 404 देता है)। वे अपना ही डोमेन एक विदेशी site_id integer PK के साथ PUT करते हैं।

विशेषाधिकार तालिका (विस्तृत)। Signal-Server Dropwizard admin के समान मानक: method + path, वह कॉल क्या प्रदान करती है, recon बनाम integrity बनाम availability, lab-proven बनाम inferred, वह निकटवर्ती सतह जो बंद रहती है।

अक्षविधि + पथअनुदानउद्गम
अखंडताPOST /sites/:attacker_domain/traffic-change-notification/:type/enable फिर PUT /sites/:attacker_domain/traffic-change-notification/:type के साथ traffic_change_notification[site_id]=<victim_pk>आक्रमणकर्ता की spike_notifications पंक्ति को victim.sites.id पर पुनः-मूल निर्धारित करता है। प्राप्तकर्ता आक्रमणकर्ता का पता ही रहते हैं। अद्वितीय (site_id, type) स्लॉट का स्वामित्व रखता है। थ्रेशोल्ड आक्रमणकर्ता द्वारा चुना गया (लैब ने 1 का उपयोग किया)।लैब-प्रमाणित। पंक्ति 1 ने site_id 2 → 1 स्थानांतरित किया, प्राप्तकर्ता {[email protected]}
टोहOban TrafficChangeNotifier ईमेल notification.recipients कोविषय Traffic spike on <victim.domain>। मुख्य भाग: वर्तमान आगंतुक संख्या, शीर्ष 3 स्रोत, शीर्ष 3 पृष्ठ। पहला प्रेषण तत्काल होता है (last_sent nil)। अधिकतम हर 12 घंटे में दोहराव। थ्रेशोल्ड 1 तब मेल उत्पन्न करता है जब भी पीड़ित के पास कोई वर्तमान आगंतुक हो। मेल में डैशबोर्ड HTML / इंस्टॉलेशन लिंक तब तक छोड़े जाते हैं जब तक प्राप्तकर्ता टीम/अतिथि सदस्य न हो (आक्रमणकर्ता नहीं है)।नोटिफ़ायर स्रोत से अनुमानित। लैब में मेल कैप्चर नहीं हुआ (MAILER_ADAPTER=Bamboo.LocalAdapter)
उपलब्धतापीड़ित का उसी प्रकार के लिए POST .../enableअद्वितीय (site_id, type) अस्वीकार करता है। पीड़ित रोपित पंक्ति हटने तक सुविधा चालू नहीं कर सकता।स्रोत (unique_constraint)
उपलब्धतापीड़ित का disable (site_id द्वारा delete_all)यदि पीड़ित अतिरिक्त प्राप्तकर्ता को नोटिस करे तो रोपित पंक्ति साफ़ कर सकता है।स्रोत (disable_traffic_change_notification)

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

अक्षविधि + पथयह क्यों बंद है
अखंडताPUT /sites/:victim_domain/traffic-change-notification/:typeपथ डोमेन AuthorizeSiteAccess है। आक्रमणकर्ता सदस्य नहीं है। लैब-प्रमाणित 404। attacker-not-member-of-victim=1
अखंडताShield / Goal / funnel / segment / shared-link लेखनwhoareme Bug 02 ने उन cast :site_id हैंडलरों को पैच किया। वे assigns को बाइंड करते हैं।
टोहClickHouse डंप, Stats API, डैशबोर्ड HTMLकोई सदस्यता नहीं, कोई साझा लिंक नहीं। नोटिफ़ायर मेल गैर-सदस्य के लिए डैशबोर्ड लिंक छोड़ देता है।
अखंडताtracker ingestपहले से ही unauth POST /api/event क्लाइंट-चयनित डोमेन के साथ। यह वह अवशेष नहीं है।
अखंडताRepo.update! जब पीड़ित के पास पहले से वह प्रकार होअद्वितीय (site_id, type) पर 500। डिफ़ॉल्ट इंस्टॉल में कोई पंक्ति नहीं, इसलिए पहला रोपण काम करता है।
अखंडताआक्रमणकर्ता साइट का viewerAuthorizeSiteAccess owner/admin/editor है। Viewer नहीं कर सकता।
अखंडताOS शेल, सुपर-एडमिन LiveViewबंद। कोई शेल नहीं।

मैं ClickHouse डंप, रिवर्स शेल, या पीड़ित के रूप में डैशबोर्ड लॉगिन का दावा नहीं कर रहा हूँ। डंप उस मेल में ट्रैफ़िक टोह है जो आक्रमणकर्ता को पहले से प्राप्त होता है: डोमेन, लाइव आगंतुक, शीर्ष स्रोत, शीर्ष पृष्ठ। site_id पूर्णांक PK है (गणनीय; whoareme ने site_id=1 का उपयोग किया)। डैशबोर्ड data-* इसे उत्सर्जित नहीं करता।

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

whoareme Bug 02 ने Shield और Goal को :site_id cast करना बंद करना सिखाया। मैंने lib/ के अंतर्गत शेष cast(.*:site_id को grep किया। Traffic-change notification में अभी भी यह था। Enable assigns को स्टाम्प करता है। Update क्लाइंट मैप लेता है। यही अवशेष है।

run.sh पिन को क्लोन करता है यदि plausible-lab:d44e104ae3943a अनुपस्थित है, DISABLE_REGISTRATION=false के साथ compose को उठाता है ताकि दो स्वतंत्र टीमें पंजीकरण कर सकें, victim.lab (id 1 team 1) और attacker.lab (id 2 team 2) को सीड करता है, आक्रमणकर्ता पर spike notify सक्षम करता है, फिर site_id=1 को PUT करता है।

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