Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

الخلاصاتاتصالالخصوصية© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
plausible-editor-invite — Plausible Analytics master d44e104 - عالية - عن بُعد - بقايا صلاحيات - محرر أشخاص HTML تسريبات نقل nanoid | Kitploit
أدوات/GitHubGitHub/abraxas/plausible-editor-invite
تصعيد الامتيازاتتحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبأمن الويباختبار الاختراقمختبرات وتدريب عملي
GitHubabraxas/plausible-editor-invite

plausible-editor-invite

Plausible Analytics master d44e104 - عالية - عن بُعد - بقايا صلاحيات - محرر أشخاص HTML تسريبات نقل nanoid

عرض المستودع
1منذ يوم واحدلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

Abraxas Labs - plausible-editor-invite

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

plausible-editor-invite

Plausible Analytics إصدار المجتمع، فرع GitHub الرئيسي d44e104ae3943a9240d5cb6b62e67dff0f069d3a (2026-10-16) - Plausible Insights OÜ

التصنيف: صلاحية متبقية (تسريب رمز الدعوة). الوصول: عن بُعد (محرر ضيف أو محرر فريق لذلك الموقع).

Sites.list_people/1 يحدد guest_invitations.invitation_id وteam_site_transfers.transfer_id الخامّين. settings_people.html.heex يضع ذلك الـ nanoid المكوّن من 21 حرفًا في id="invitation-#{invitation.invitation_id}" لكل صف معلّق. إعدادات الأشخاص ليست ضمن @special_cased_actions في SiteController، لذا يسمح AuthorizeSiteAccess بـ :editor. محرر الضيف يُعيَّن إلى دور الموقع :editor. مشاهد الضيف يحصل على 404.

Nanoid.generate/0 هو حامل رمز التسجيل من الدعوة. طلب غير مصادق عليه GET /register/invitation/:invitation_id يبحث بالمعرّف فقط. LiveView register يستبدل البريد الإلكتروني المُرسَل بـ invitation.email. الإعداد الافتراضي في CE هو DISABLE_REGISTRATION=invite_only وENABLE_EMAIL_VERIFICATION=false. القبول يتم عبر POST /sites/invitations/:id/accept بمطابقة بريد citext.

محرر ضيف يستطيع بالفعل رؤية HTML صفحة الأشخاص يقرأ nanoid نقل ملكية معلّق، ثم يسجّل بصفة المدعو، ويقبل. ينتقل الموقع إلى الفريق الشخصي للمهاجم.

IDلا يوجد CVE بعد
CWECWE-200 / CWE-269
CVSSعالٍ: 8.1 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:L
المنتجPlausible Analytics
المتأثرفرع GitHub الرئيسي d44e104ae3943a9240d5cb6b62e67dff0f069d3a (2026-10-16). آخر وسم CE v3.2.1 (e4f5a87a5570bd61605217e7ceb376636db8eddb، 2026-05-15) متأخر بخمسة أشهر. SECURITY.md يوجّه المشغّلين إلى تشغيل :latest. التثبيت هو HEAD الحالي. CE MIX_ENV=ce يترجم lib/ فقط.
المصادقةمحرر ضيف مصادق عليه (:guest_member, :editor) أو محرر فريق لذلك الموقع. ليس غير مصادق عليه. ليس مشاهد ضيف.
الترخيصGNU Affero GPL v3.0
المختبر127.0.0.1:18180 (http) 18181 (postgres) 18182 (clickhouse http) فقط

المتبقي #1 من بقايا Plausible Analytics. نفس التثبيت، حزمة أخرى: plausible-traffic-notify (إسناد جماعي لـ site_id في PUT traffic-change-notification). هذه الحزمة هي التي تسرق نقل ملكية معلّقًا.

ما يمكن للمهاجم فعله

محرر ضيف مصادق عليه أو محرر فريق لموقع لديه دعوة ضيف معلّقة و/أو نقل ملكية. يحتاج إلى ملف تعريف ارتباط جلسة عادي. لا مالك، لا مسؤول، لا LiveView لمسؤول أعلى. لا يقوم بتخمين الـ nanoid المكوّن من 21 حرفًا. يقرأه من HTML المسموح له بتحميله، ثم يسجّل بصفة المدعو.

جدول الصلاحيات (شامل). نفس المعيار كـ Signal-Server Dropwizard admin: الطريقة + المسار، ما يمنحه ذلك الاستدعاء، الاستطلاع مقابل السلامة مقابل التوافر، مُثبت مختبريًا مقابل مُستنتج، السطح المجاور الذي يبقى مغلقًا.

المحورالطريقة + المسارما يمنحهالمصدر
الاستطلاعGET /:domain/settings/people بصفتك ضيفًا/محرر فريقالصفوف المعلّقة تُصيّر id="invitation-<nanoid>". الـ nanoid هو invitation_id أو transfer_id. نفس الموقع فقط. بريد المدعو موجود أيضًا في الجدول.مُثبت مختبريًا. صفحة people للمحرر 200 سرّبت nanoid Hc8DiBC2q08mv5LFmBysu
الاستطلاعGET /register/invitation/:id بدون مصادقةبريد المدعو في نموذج التسجيل. البحث يتم بالمعرّف فقط (find_by_id_unified).مُثبت مختبريًا. أظهر HTML التسجيل [email protected]
السلامةLiveView register على /register/invitation/:idيُستبدل user[email] المُرسَل بـ invitation.email. حساب CE جديد على عنوان المدعو. التحقق من بريد CE معطّل افتراضيًا. وضع الدعوة فقط لا يزال يسمح بـ :invitation.مُثبت مختبريًا. أُرسل [email protected]؛ البريد المخزّن كان [email protected]
السلامةPOST /sites/invitations/:id/accept بذلك الحساب الجديدنقل الملكية المعلّق ينقل sites.team_id إلى فريق newowner الشخصي. صف النقل يختفي.مُثبت مختبريًا. sites.team_id 1 → 2
السلامةنفس القبول على دعوة ضيف معلّقة لذلك البريدعضوية جديدة على ذلك الموقع (محرر مقابل محرر ليس مكسبًا). صفوف الفريق/الضيف/النقل المعلّقة الأخرى لذلك البريد تصبح أيضًا قابلة للقبول.المصدر (InvitationController.accept_invitation)
الإتاحةبعد قبول النقلالفريق الأصلي يفقد الموقع. الإحصاءات تستمر بالعمل على الفريق الجديد.مُثبت مختبريًا. team_id انتقل

يبقى مغلقًا على هذا التثبيت

المحورالطريقة + المسارلماذا هو مغلق
الاستطلاععارض ضيف GET /:domain/settings/people404. العارض ليس :editor. مُثبت مختبريًا.
السلامةقبول المحرر POST /sites/invitations/:id/accept لمعرّف النقل المسرّبتطابق البريد. المحرر ليس [email protected]. الموقع يبقى على الفريق 1. مُثبت مختبريًا.
السلامةتسجيل بدون مصادقة دون معرّف دعوة صالحcheck_registration_enabled(:default) مقابل :invitation. خطأ whoareme 02، مُرقّع.
الاستطلاعتخمين nanoid بـ 21 حرفًاأبجدية آمنة لعناوين URL، 21 حرفًا. خارج هذا المتبقي.
الاستطلاعأحداث ClickHouse، SMTP، صفحات people لمواقع أخرىنفس الموقع فقط. لا صلاحية إدارة ClickHouse. لا قراءة لصندوق البريد.
السلامةدعوة ونقل المالك/المديريمكنهم ذلك بالفعل. هذا المتبقي يخص المحرر الذي لا يستطيع.
السلامةLiveView للمدير الأعلى، صدفة نظام التشغيل، extra/lib EE SSOمغلق. مختبر CE. لا صدفة.

لا أدّعي الاستيلاء على حساب مستخدم مسجّل مسبقًا دون مصادقة، ولا صدفة عكسية، ولا تفريغ ClickHouse. حالة الخطورة العالية هي نقل ملكية معلّق (أو دعوات إلى مواقع/فرق أخرى لذلك البريد) على CE الافتراضي: وضع الدعوة فقط مع تعطيل التحقق من البريد. EE يضبط دائمًا email_verified: false و/activate يحتاج صندوق بريد المدعو.

كيف وجدته

أغلق خطأ whoareme 02 (المُفصح عنه في 2026-05-22) تسجيل LiveView في وضع الدعوة فقط دون دعوة صالحة، إضافة إلى إسناد جماعي لـ site_id في Shield/Goal. جلست على master الحالي على أي حال. SECURITY.md يرقّع فقط أحدث MAJOR.MINOR ويخبر المشغّلين بتشغيل :latest. آخر وسم CE v3.2.1 متأخر خمسة أشهر عن HEAD.

قرأت كل موضع يغادر فيه invitation_id من نوع nanoid قاعدة البيانات. القبول والتسجيل يعاملانه كحامل صلاحية. إعدادات people تضعه في id= داخل HTML لزر الحذف. الحذف للمالك/المدير فقط. أما id= فليس كذلك. المحررون يحمّلون الصفحة.

run.sh يستنسخ التثبيت إذا كان plausible-lab:d44e104ae3943a مفقودًا، ويشغّل compose مع DISABLE_REGISTRATION=invite_only، ويزرع مالكًا / محررًا / عارضًا / نقلًا معلّقًا، ثم يقارن HTML صفحة people.

مسارات خاطئة مسجّلة مسبقًا: معاملة تسجيل الضيف كقبول تلقائي (يلزم POST /sites/invitations/:id/accept بعد تسجيل الدخول)؛ معاملة قبول المحرر للنقل المسرّب كسرقة (تطابق البريد، لا نقل)؛ تسجيل الدخول 429 من CE login_ip=5 في الدقيقة (أبقِ جلسة واحدة لكل مستخدم)؛ الادعاء بأن العارض يمكنه قراءة people (404). مسرح.

المختبر

python3 plausible-editor-invite-Abraxas-Labs.py

أو

cd lab
./run.sh
تنزيل الأداة