📕 المحور الخامس عشر: إختراق تطبيقات الويب - Hacking Web Server

 بسم الله والصلاة والسلام على رسول الله
اليوم ان شاء الله راح اشرح المحور الخامس عشر من سلسلة "مراحل اختبار الاختراق" وهو: -
⚠️ قد يبدوا الوضع متشابهاً بينه وبين اختراق خادم الويب ولاكن هنا سنشرح عن اختراق تطبيقات الويب - 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

Popular posts from this blog

📕 المحور الثاني عشر: اختطاف الجلسة - Session Hijacking

📕 المحور الاول: التحري والاستطلاع -‏ footprinting & reconnaissance

📕 المحور الثاني: الفحص - Network Scanning