
أداة إثبات مفهوم ترسل حمولة مصممة خصيصًا إلى هدف وتكتشف ثغرات إعادة التوجيه المفتوحة من خلال فحص استجابات 301/302 ورؤوس Location.
أداة إثبات مفهوم صغيرة — ترسل حمولة محددة إلى هدف وتتحقق من استجابات إعادة التوجيه 301/302، مع الإبلاغ عن ترويسة Location.
هذا المستودع مخصص لأغراض تعليمية/بحثية فقط. اتبع سياسات الإفصاح المسؤول. فيما يلي تعليمات الاستخدام والبناء.
ترسل هذه الأداة طلبًا إلى نطاق مع إلحاق الحمولة التالية، وإذا استجاب الخادم بـ 301 (منقول بشكل دائم) أو 302 (تم العثور)، فإنها تتحقق من ترويسة Location لاكتشاف ثغرة محتملة.
الحمولة: /public/..%2F%5cgoogle.com%2F%3f%2F..%2F..
يقوم البرنامج بتعطيل التتبع التلقائي لإعادة التوجيه في Go عبر دالة CheckRedirect، مما يسمح بفحص الاستجابة الأولية.
يمكنك بناء ملف تنفيذي (.exe لنظام Windows) باستخدام الأوامر التالية:
# Linux/macOS
go build -o cve-2025-4123 main.go
# Windows (PowerShell or CMD)
go build -o CVE-2025-4123.exe main.go
Usage: CVE-2025-4123.exe [https://example.com]
مثال:
./CVE-2025-4123.exe https://target.example.com
يقوم البرنامج بما يلي:
os.Args[1]) مع إلحاق الحمولة.Location: VULN FOUND: <location>CVE-2025-4123 Not Found.CheckRedirect: Redirected to <URL>.الكشف الناجح (مثال):
VULN FOUND: https://google.com/
تتبع إعادة التوجيه عبر استدعاء CheckRedirect قد ينتج:
Redirected to https://google.com/
http.Get تلقائيًا عمليات إعادة التوجيه 301/302. في هذا الإثبات، يتم استخدام CheckRedirect لتعطيل التتبع التلقائي، مما يسمح بالوصول المباشر إلى ترويسة Location.Location دائمًا عنوان URL مطلقًا؛ فقد تكون نسبية أو بتنسيق آخر. في مثل هذه الحالات، استخدم url.Parse و resp.Request.URL.ResolveReference لبناء عنوان URL الكامل.--timeout.-o/--output لحفظ النتائج بصيغة JSON أو CSV.Location الفارغة أو غير المتوقعة بتحليل/تطبيع قوي.إذا اكتشف هذا الإثبات ثغرة حقيقية، فتواصل مع فريق الأمان في المؤسسة المستهدفة وأبلغ عنها بمسؤولية. قم بالتنسيق مع المؤسسة قبل أي إفصاح عام.