بسم الله والصلاة والسلام على رسول الله
اليوم ان شاء الله راح اشرح المحور الخامس عشر من سلسلة "مراحل اختبار الاختراق" وهو: -
⚠️ قد يبدوا الوضع متشابهاً بينه وبين اختراق خادم الويب ولاكن هنا سنشرح عن اختراق تطبيقات الويب - Hacking Web Application.
📕 إختراق تطبيقات الويب - Hacking Web Applications:
• توفر تطبيقات الويب واجهة بين المستخدمين وخوادم الويب من خلال مجموعة من صفحات الويب ليتم تنفيذه ديناميكيًا داخل متصفح الويب الخاص بالعميل. عادةً ما يتم ترميز تطبيقات الويب بلغة مدعومة من المتصفح مثل JavaScript و HTML و ASP وPHP حيث تعتمد هذه اللغات على المتصفح لجعل البرنامج قابلاً للتنفيذ. مثل Facebook و Twitter وYouTube.
🚩 Web 2.0 Applications:
• وهو الجيل الجديد من تطبيقات الويب التي توفر بنية أساسية اكثر ديناميكية والتفاعل الاجتماعي للمستخدم ويقدم العديد من المميزات مثل:
📍 التوافقية:
• ألعاب متقدمة
• المدونات
📍 تصميم محوره المستخدم:
• مواقع التواصل الاجتماعي
• بريد إلكتروني
• رسائل فورية
• أنظمة دفع إلكترونية
📍 التطبيقات التعاونية على الويب:
• سهولة إنشاء البيانات أو تعديلها أو حذفها من قبل المستخدمين الفرديين
• برامج المكتبة عبر الإنترنت (Google Docs و Microsoft Light)
• الموسوعات والقواميس التفاعلية
• مواقع الحوسبة السحابية مثل Amazon.com
📍 مشاركة البيانات التفاعلية:
• تطبيق الهاتف المحمول (iPhone)
• تقنيات جديدة مثل AJAX (Gmail و YouTube)
• المدونات (Wordpress)
📍 نقاط الضعف:
|
Services
|
Stacks
|
|
Custom Web
Applications: Business Logic Flaws Technical Vulnerabilities
|
Level 7
|
|
Third Party
Components: Open Source / Commercial
|
Level 6
|
|
Database:
Oracle / MySQL / MS SQL
|
Level 5
|
|
Web Server:
Apache / Microsoft IIS
|
Level 4
|
|
Operating System: Windows / Linux / OS X
|
Level 3
|
|
Network:
Router / Switch
|
Level 2
|
|
Security: IPS / IDS
|
Level 1
|
📍 تهديدات تطبيقات الويب:
• Injection Flaws: هي ثغرات في تطبيق الويب مثل SQL و Command Injection وLDAP injection.
• Broken Authentication: ضعف في وظائف إدارة الحسابات مثل تحديث الحساب واستعادة كلمة المرور أو فقدانها أو إعادة تعيينها اوتغييرها.
• Sensitive Data Exposure: اغلب التطبيق لا تقوم بحماية البيانات الشخصية مثل الامور المالية او الصحية او الشخصية او ارقام الحسابات البنكية بشكل سري مما يعرضها للسرقة والإفصاح بها إلى العالم او إستغلالها بشكل سيئ.
• XML External Entity (XXE): اخطاء في إعداد الـXML مما يمكن من المتصفح بعرض محتوايات الصفحة عبر الـURI handler او SMB file shares او RCE و DoS.
• Broken Access Control: هو طريقة يستخدمها المهاجمون حيث تم تحديد عيب معين يتعلق بالتحكم في الوصول ، حيث يتم تجاوز المصادقة ويخترق المهاجم الشبكة.
• Security Misconfiguration: أخطاء في إعدادات الامان في تطبيق الويب ممدى يجعل التطبيق عرضة للإختراق.
هجمات على تطبيقات الويب:
• SQLi: يتضمن إدخال استعلامات SQL الضارة في نماذج إدخال المستخدم.
• Command Injection: يتضمن إدخال تعليمات برمجية ضارة من خلال تطبيق ويب. مثل:
• Shell Injection: يحاول المخترق نشتى الطرق للحصول على shell إلى خادم ويب.
• HTML Embedding: يقوم المهاجم بتشويه مواقع الويب.
• File Injection: يقوم المخترق بحقن تعليمات برمجية ضارة في ملفات النظام.
• LDAP Injection: يتم تخزن خدمات "دليل المعلومات" وتنظمها بناءً على مسمياتها ويتم تنظيمها بشكل هرمي. تشبه هجمات حقن LDAP بهجمات SQL ولكنها تستغل معلمات المستخدمين لإنشاء استعلام LDAP.
• Invalidated Input: تشير عيوب "التحقق من صحة الإدخال" إلى ثغرة أمنية في تطبيق الويب حيث لا يتم التحقق من صحة إدخال البيانات من قبل العميل قبل معالجتها بواسطة تطبيقات الويب او خادم الويب مما ينتج عنه Buffer Overflow وInjection Attacks وXSS.
• Parameter Tampering: يتم العبث والتلاعب بالمعلومات المتبادلة ما بين العميل والخادم من أجل تعديل بيانات التطبيق مثل بيانات إسم المستخدم والصلاحيات والسعر المنتج وكمية الشراء والسعر النهائي.
• Directory Traversal: يمكن للمخترق معالجة المتغيرات التي تشير إلى الملفات ذات تسلسلات " dot-dot-slash (../) " ومتغيراتها.
• Security Misconfiguration: يحصل المخترق على وصول غير مصرح به إلى الحسابات الافتراضية، والتعلاب بمجيار وإعدادات تطبيقات الويب.
• Hidden Field Manipulation: يمكن للمخترق فحص كود HTML للصفحة وتغيير قيم الحقول المخفية لتغيير طلبات النشر إلى الخادم.
• Cross-Site Scripting (XSS): يتم إتستغلال الثغرات الأمنية في صفحات الويب مما يمكّن المهاجمين من إدخال نص برمجي من جانب العميل في صفحات الويب التي يشاهدها المستخدمون حيث يتم حقن JavaScript أو VBScript أو ActiveX أو HTML أو Flash مباوامر ضارة لتنفيذها على نظام الضحية عن طريق إخفائها ضمن الطلبات الحقيقة.
• Cross-Site Request Forgery (CSRF): هجوم يتم فيه خداع الضحية للقيام بأعمال خبيثة نيابة عن المهاجم مثل تحويل الاموال إلى حسابه او تغير عنوان البريد الغلكتروني وكلمة المرور.
• Known Vulnerabilities: إستخدام ادوات او تطبيقات لم يتم تحديثها من الثغرات الامنية.
• Insufficient Logging & Monitoring: الإهمال في متابعه وتحليل ملفات الـLog وكذالك قلة وقت الـMonitoring.
• Buffer Overflow: هي مناطق تخزين الذاكرة التي تحتفظ بالبيانات مؤقتًا أثناء نقلها من موقع إلى آخر. يحدث تجاوز سعة المخزن المؤقت عندما يتم إدخال بيانات بسعة تخزين اعلى عن ذاكرة التخزين المؤقت. نتيجة لذلك، يقوم البرنامج الذي يحاول كتابة البيانات بالكتابة فوق مواقع الذاكرة المجاورة.
• Invalidated Redirects and Forwards: تكون عمليات إعادة التوجيه وإعادة التوجيه غير المؤكدة ممكنة عندما يقبل تطبيق ويب إدخالاً غير موثوق به قد يتسبب في قيام تطبيق الويب بإعادة توجيه الطلب إلى عنوان URL غير موثوق به بالتالي قد ينجح المهاجم في إطلاق عملية phishing وسرقة بيانات المستخدم.
هناك العديد من الهجمات يمكن عملها على تطبيقات الويب.
هيكل خدمات الويب:
• SOAP (Simple Object Access Protocol): هو بروتوكول قائم على XML يسمح للتطبيقات التي تعمل على نظام أساسي مثل (Windows Server 2012) بالتواصل مع التطبيقات التي تعمل على نظام أساسي مختلف مثل (Ubuntu).
• Universal Description, Discovery, and Integration (UDDI): هي عملية العثور على خدمات الويب المناسبة لمهمة معينة.
• Web Services Description Language: هي لغة وصف للواجهة مبنية على XML تُستخدم لوصف الوظائف التي توفرها خدمة الويب.
• WS-Security: هو امتداد لـ SOAP ويهدف إلى الحفاظ على تكامل وسرية رسائل SOAP ومصادقة المستخدم.
📍 Web Services Attack:
|
Web Services Attack
|
Web Services Stack
|
|
Parameter tampering, WSDL probing, SQL/LDAP/XPATH/OS
command injection, malware injection, brute-force, data type mismatch,
content spoofing, session tampering, format string, information leakage
|
Presentation Layer (XML, AJAX,
Portal, Other), Security Layer (WS-Security)
|
|
Fault code leaks, permission and access
attacks, error leakage, authentication and certification attacks
|
Discovery Layer (UDDI, WSDL)
|
|
Buffer overflow, XML parsing, spoiling
schema, complex or recursive payload, DoS, large payload
|
Access Layer (SOAP, REST)
|
|
Sniffing, Snooping, WS-Routing, Replay
Attacks, Denial of Service
|
Transport Layer (HTTP, HTTPS, JMS,
Other)
|
📍 Foorprint Web Infrastructure: هذه الخطوة الأولى في اختراق تطبيقات الويب حيث إنها تساعد للمخترقين على تحديد ماهي نقاط الضعف المعرضة الإختراق.
• Server Discovery: يتم تحديد الجهاز الفعلي لتطبيق الويب بإستخدام برامج او ادوات مثل whois lookup، DNS Interrogation، Port Scanning وغيرها من البرامج.
• Service Discovery: يقوم المخترق باكتشف الخدمات التي تعمل على خوادم تطبيقات الويب لمعرفة ما هي المنافذ المتاحة، وما التي يمكن استغلالها لشن عملية الاختراق. ويتم ذلك بإستخدام Nmap، NetScan Tool، Sandcat Browers.
• Server Identification: يتم جمع المعلومات من خلال Banner-grabbing لمعرفة الصنع والإصدار لتطبيقات الويب. ويتم ذلك بإستخدام Telnet، Netcat، ID Server، Netcraft.
• Hidden Content Discovery: يقوم المخترق باستخراج محتوى ووظائف غير مرتبطة مباشرتاً أو التي لا يمكن الوصول إليها من المحتوى المرئي الرئيسي. ويتم ذلك بإستخدام Burp Suite، OWASP Zed Attack، SpiderFoot.
📍 إكتشاف WAF او Proxy Server:
• إكتشاف الـProxy Server: يتم وضع البروكسي امام خادم تطبيقات الويب وذلك لتعزيز الحماية وعدم القابلية للإكتشاف بالسهولة, وعليه يقوم المخترق بعملية جمع المعلومات من خلال الامر TRACERT ومعاينة الحزم المستلمه لمعرفة إذا كان يتم توجيه الطلب عبر بروكسي ام لا.
• إكتشاف WAF: وهو جهاز حماية يفصل ما بين العميل والخادم ويتم مراقبة جميع الحزم التى تطلب الوصول إلى الخادم. وعلى المخترق تحليل HTTP header ومعاينة الـHTTP request cookie. ويتم إكتشاف الـWAF بإستخدام تطبيق WAFW00F.
📍إختراق خادم الويب:
• بعد ان تمكن المخترق من تحديد بيئة عمل خادم تطبيقات الويب، يقوم بفحص الخادم بحثًا عن نقاط الضعف المعروفة باستخدام أدوات فحص وإطلاق الهجوم باستغلال تلك النقاط.
📍 مراحل الإختراق: بعد ان يتم تتحليل وظائف وتقنيات التطبيق يبداء المخترق بعملية الإختراق منها:-
• تحديد نقاط الدخول: مراجعة HTTP request الذي تم إنشاؤه لتحديد نقاط الدخول من خلال عملية إدخال المستخدم عبر فحص عنوان الـURL و HTTP header وبيانات الـPOST و الـCookies.
• تحديد وظائف الخادم: مراقبة التطبيقات التي تم الكشف عنها لتحديد بنية الخادم ووظائفه.
• التعرف على تقنيات الموجودة على الخادم: معرفة التقنية المستخدمة من ASP، JSP، PHP، ASP.NET، Java، IIS Server.
• تحديد نوع الهجوم: بقوم المخترق بتحديد انواع الهجوم المختلفة بناً على نقاط الضعف المكتشفة.
📍 خارطة الهجوم:
|
Information
|
Attack
|
Information
|
Attack
|
|
Client-Side Validation
|
Injection Attack, Authentication Attack
|
Injection Attack
|
Privilege Escalation, Access Controls
|
|
Database Interaction
|
SQL Injection, Data Leakage
|
Cleartext Communication
|
Data Theft, Session Hijacking
|
|
File Upload and Download
|
Directory Traversal
|
Error Message
|
Information Leakage
|
|
Display of User-Supplied Data
|
Cross-Site Scripting
|
Email Interaction
|
Email Injection
|
|
Dynamic Redirects
|
Redirection, Header Injection
|
Application Codes
|
Buffer Overflows
|
|
Login
|
Username Enumeration, Password
Brute-Force
|
Third-Party Application
|
Known Vulnerabilities Exploitation
|
|
Session State
|
Session Hijacking, Session Fixation
|
Web Server Software
|
Known Vulnerabilities Exploitation
|
📍 Attack Authentication Mechanism: يمكن للمخترق من استغلال عيوب التصميم او اخطاء في البرمجة في تنفيذ تطبيقات الويب، مثل الفشل في التحقق من قوة كلمة المرور أو النقل غير الآمن لبيانات الاعتماد، من اجل تجاوز آليات المصادقة. ويتم ذلك بـ:-
استغلال اسماء المستخدم:
• أسماء المستخدمين التي يمكن التنبؤ بها: إذا كانت رسالة "خطأ في تسجيل الدخول" تشير إلى أي اسم المستخدم او كلمة المرور غير صحيحه، فيمكن للمخترق من ان يخمن بإستخدم طريقة trial-and-error. وتقوم بعض التطبيقات بإنشاء أسماء مستخدمين للحسابات بناءً على تسلسل (مثل user101 و user102 وما إلى ذلك)، ويمكن للمهاجمين تحديد التسلسل وإكتشاف أسماء المستخدمين الفعلية.
هجمات كسر الرقم السري:
• Password functionality exploits: يتم ذلك من خلال إستغلال اوامر وآليه عمل كل من "تغير رقم السري" و "نسيت الرقم السري" و "تذكرني".
• Password guessing: يقوم المخترق بتخمين الرقم السري وإستخدام الاسماء والرموز و الارقام الاكثر شيوعياً.
• Brute-force attack: وهي هجمات المباشرة على الرقم السري.
استغلال الـCookie: يجمع المخترق بعض ملفات الـCokkie التي تم تعيينها بواسطة تطبيق الويب ويحللها لتحديد آلية إنشاء هذه الملفات ويقوم بالتلاعب بها لإعادة إستخدامها من جديد.
• Poisoning: يقوم المخترق بحجز الـCookie باستخدام أدوات مثل OWASP Zed Attack Proxy وBurp Suite وXSSer ما إلى ذلك والتلاعب بها وإعادة إستخدامها مرة آخرى للحوص على تسجيل دخول او الوصول إلى بيانات حساسة.
• Sniffing: يقوم المخترق بالتنصت على الحزم لكي يتعرف على ما هي المعلومات الحساسة التي تمر ما بين العميل والخادم.
إختطاف الجلسة: يقوم المخترق بكسر آلية إدارة الجلسات - session management mechanism- للتطبيق من اجل تجاوز عناصر التحكم في المصادقة وانتحال صفة مستخدمي التطبيق الفعلي.
• تخمين Session ID
• Session brute-forcing
• Session poisoning
التلاعب بـHTTP Request:
• Query String Tampering: إذا كانت هذه السلسلة مرئية في شريط العنوان الـURL، فيمكن للمهاجم بتغييرها ليتجاوز آليات التفويض.
• HTTP Headers Tampering: إذا كان التطبيق يستخدم الـReferer header لاتخاذ قرارات التحكم في الوصول، فيمكن للمخترق بتعديلها للوصول إلى وظائف التطبيقات المحمية.
📍 الهجوم على Web App Client:
• XSS: يقوم المخترق بحقن نصوص برمجية ضارة في صفحات الويب الخاصة بموقع الويب، حيث يمكن لهذه البرامج النصية الضارة إعادة كتابة محتوى الـHTML للموقع.
• Redirection Attacks: يقوم المخترق بإنشاء موقعًا حقيقياً ويقوم بإعادة توجيه المستخدم إلى ذلك الموقع الضار من اجل الحصول على بيانات اعتماد المستخدم وغيرها من المعلومات الحساسة.
• HTTP Header Injection: يمكن للمهاجمين تشويه مواقع الويب وإفساد ذاكرة التخزين المؤقت وتشغيل البرمجة النصية عبر المواقع.
• Frame Injection: عندما لا يتم التحقيق مدخلات النصية من قبل تطبيقات الويب، يقوم المخترق بإستغلال هذه الثغرة بحقن رموز خبيثة من خلال الإطارات -Frame وبالتالي ستتأثر جميع الصفحات والنصوص على الموقع.
• Request Forgery Attack: في هذا الهجوم، يستغل المخترق ثقة موقع ويب أو تطبيق ويب على متصفح المستخدم. حيث يرفق المخترق رابطاً خبيثاً فالموقع لكي يعيد توجة المستخدم إلى مواقع ضارة.
📍 ادوات الإختراق:
• WebInspect
• Metasploit
• Nikto
• Nessus
• Acunetix
• HexorBase
• WebScarab
• W3af
• WPScan
• CURL
📍 برامج إختبار الحماية - Testing Tools:
• N-Stalker Web Application Security Scanner
• OWASP Zap
• Vega
• Nessus
• Skipfish
• IronWASP
• Wapiti
• Netsparker
• Acunetix Web Vulnerability Scanner
•WebWatchBot
📍 Web Application Firewall
• dotDefender
• ServerDefender VP
• IBM Security AppScan
• Radware’s AppWall
• SteelApp WAF
هكذا ولله الحمد انهيت شرح مبسط عن آليه اختراق تطبيق الويب – Hacking Web Application والبرامج المستخدمة وكيفية والدفاع عن هذا الهجوم.
ملخص من مادة CEHv10
واسال الله لي ولكم التوفيق والنجاح
تحياتي لكم جميعاً 🌹 IronHulk
Comments
Post a Comment