
Cisco ASA XSS CVE-2020-3580
ثغرة XSS من النوع المنعكس (Reflected XSS) في Cisco ASA / FTD عبر نقطة نهاية WebVPN SAML SP ACS
(/+CSCOE+/saml/sp/acs). تم إصلاحها في
cisco-sa-asaftd-xss-multiple-FCB3vPZe.
يحتوي هذا المستودع على:
xss.html — إثبات مفهوم (PoC) قابل للتحقق البشري للأهداف المصرّح بها.src/ — خط أنابيب اكتشاف وتحقق يراعي نطاق الاستهداف.docs/ — المنهجية والأخلاقيات.┌──────────┐ ┌──────────────┐ ┌────────────────────┐ ┌────────────────┐ ┌──────────────┐
│ Shodan │ → │ scope match │ → │ manual approval │ → │ canary check │ → │ MD report │
│ (3 dorks)│ │ (H1, BC, +) │ │ deny-by-default │ │ no JS exec │ │ drafts │
└──────────┘ └──────────────┘ └────────────────────┘ └────────────────┘ └──────────────┘
كل مرحلة تكتب أثرًا JSON قابلاً للفحص وتعمل بشكل مستقل.
المحقق لا يشغّل alert(). بل يرسل عبر POST سلسلة canary فريدة
تحتوي على <>"' الخام ويقيّم نص الاستجابة. الإصابات المؤكدة تحصل على
مسودة Markdown مع xss.html الأصلي مُرفقًا ليقوم مراجع البرنامج
بالتحقق منها في متصفحه الخاص.
التحقق مقيد بالموافقة. تطابق النطاق هو مجرد نقطة بداية؛
موجز البرنامج الحالي هو العقد. قبل التحقق النشط، راجع سياسة البرنامج
وعيّن علامات الموافقة الخاصة بالهدف في
data/validation_approvals.json.
git clone https://github.com/cruxN3T/CVE-2020-3580
cd CVE-2020-3580
python3 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
cp creds.env.example creds.env
$EDITOR creds.env # add your Shodan key, optionally H1/BC tokens
creds.env مستبعد من Git. ملف .gitignore يمنع أي ملف يطابق *.env
(باستثناء *.env.example)، بالإضافة إلى data/ و reports/ لإبقاء قوائم
الأهداف ومقتطفات التحقق خارج المستودع العام.
الأمر الافتراضي للتشغيل الكامل يتوقف عمدًا قبل مرحلة التحقق:
python -m src.pipeline run
يُنشئ هذا الملف data/validation_approvals.json مع ضبط جميع علامات الموافقة على
false. راجع كل موجز برنامج حالي واضبط الحقول الثلاثة على true
فقط عندما يكون الهدف لا يزال ضمن النطاق وهذا النوع من التحقق مسموح به:
{
"manual_policy_reviewed": true,
"automated_testing_allowed": true,
"cve_testing_allowed": true
}
ثم تحقق وأنشئ مسودات التقرير:
python -m src.pipeline validate
python -m src.pipeline report
أو مرحلة بمرحلة:
python -m src.pipeline discover # Shodan → data/shodan_hits.json
python -m src.pipeline scope # match → data/in_scope.json
python -m src.pipeline approve-template # → data/validation_approvals.json
python -m src.pipeline validate # approved canary checks only
python -m src.pipeline report # → reports/<host>__CVE-2020-3580.md
لأهداف المختبرات الخاصة فقط، validate --allow-unapproved يتجاوز ملف
الموافقة. بالنسبة للأجهزة القديمة التي يتعذر فيها التحقق من الشهادة،
validate --allow-insecure-tls يعطّل التحقق من TLS لهذا التشغيل.
مرحلة scope تعمل بدون أي مفاتيح API — فهي تسحب من
arkadiyt/bounty-targets-data. إضافة H1_USERNAME + H1_API_TOKEN إلى
creds.env يمكن أن يوسع ذلك ببيانات حديثة من HackerOne Hacker API عند
ضبط H1_LIVE=true.
كل شيء موجود في creds.env. راجع creds.env.example للقائمة الكاملة.
المقابض الجديرة بالمعرفة:
SCOPE_PLATFORMS — مفصولة بفواصل. الافتراضي هو hackerone,bugcrowd. أضف
intigriti و yeswehack إذا أردت تغطية أوسع.TARGET_RPM — طلبات لكل مضيف في الدقيقة. الافتراضي 10. لا ترفع هذا
بدون سبب.TLS_VERIFY — الافتراضي هو true.REQUIRE_VALIDATION_APPROVAL — الافتراضي هو true.docs/ETHICS.md — ما الذي يصرّح به تطابق النطاق وما لا
يصرّح به، وما الذي يتعمّد المحقق عدم فعله.docs/METHODOLOGY.md — كيف يعمل تقييم الانعكاس
ولماذا توجد كل مرحلة.ليس أداة استغلال جماعي. ليس 0day. ليس بديلًا عن قراءة موجز البرنامج على المنصة قبل التقديم. مطابق النطاق هو نقطة بداية؛ نص السياسة هو العقد.
MIT. راجع LICENSE.