Broken Authentication من خلال اسمها فقط، يمكننا أن نفترض بالفعل نوع الثغرة هذه وماذا تفعل.
وهذه هي واحدة من أكثر الهجمات والثغرات شيوعًا في السنوات السابقة والآن، Broken Authentication غالبًا ما تكون مرتبطة بالجلسات، ولكن دعونا نحدد session أولاً. إذا ما هي؟ ما يمكننا قوله هو أن الجلسات هي سلسلة من Network transactions أو Network requests المرتبطة بالمستخدم نفسه لفترة زمنية معينة. session هو ما يحدد الفرد على صفحة الويب. الآن، لا تختلط بين الجلسات و authentication، على الرغم من أنهما متشابهان إلى حد كبير. إلا أن الجلسات للتفاعل والتغيير استنادًا إلى ما إذا كان المستخدم مصادقًا أم لا، الجلسات هي تُقِيَّم حتى عندما لا يكون المستخدم مصادقًا. فقط أنها تتغير عندما يقوم المستخدم بauthentication على الموقع. حسنًا، ولكن فيما يتعلق broken authentication، ما هي الهجمات التي نملكها، ما يمكننا فعله لاختبار هذه الثغرة؟
حسنًا، هناك أنواعٌ مختلفة من الهجمات، ولكن يمكننا تقسيمها إلى مجموعتين مختلفتين :
الهجمات التي يكون المستخدم مسؤولًا عنها.
الهجمات التي يكون المطور مسؤولًا عنها.
حسنًا، يأخذ كلا الجانبين مكانًا في جعل هذه الهجمات تعمل، كيف بالضبط؟ حسنًا، يتحمل المستخدمون مسؤولية Credentials الخاصة بهم.
إنهم مسؤولون عن جعل كلمات مرورهم قوية قدر الإمكان عن طريق إضافة أرقام ورموز وحروف كبيرة وصغيرة.
ومع ذلك، غالبًا ما لا يكون هذا هو الحال ويختارون كلمة مرور سهلة لها معنى بالنسبة لهم. يمكننا استهداف هذا بوسائل مثل Brute Force لBroken Authentication. ويمكننا استخدامBrute Force لأسماء المستخدمين وكلمات المرور وأسئلة الأمان وأي شيء نحتاجه للوصول إلى حساب.
سنغطي هذه النوع من الهجمات في القسم التالي، ومع ذلك، في هذا القسم،
نحن أكثر هؤلاء مطورو الويب مسؤولون عن إدارة هذه الsession، كيف سيعالج الموقع الويب مختلف الجلسات وما هي parameter التي سيستخدمها؟
عادةً ما يتم تحديد هذه الجلسات بCookie Values أو معلمات نوع أخرى. تُعتبر الجلسات مهمة مثل Credentials للمستخدم. وتعتبر session الهجوم هوية مسروقة قوية كما هو الحال مع Credentials المسروقة.
وهذا هو الوسم الذي سنقوم بتنفيذه بشكل رئيسي، Session Hijacking أو اختراق الSession. هناك العديد من النهج حول كيفية القيام بذلك.
واحدة منها هي هجوم يسمىSession Fixation.
الفكرة الرئيسية وراء هجوم Session Fixation هذا هي أن الهاكر يحدد مُسبقًا ال session-ID الذي سيستخدمه الضحية , على سبيل المثال، يمكن للهاكر إرسال رابطًا للضحية يحتوي على session-ID مُحدَّد مُسبقًا، و قد يتطلب هذا الرابط من الضحية تسجيل الدخول بعد تسجيل الدخول.
يمكن للهاكر بعد ذلك استخدام تلك session-ID لتقمص الضحية بعد تسجيل الدخول. وهناك أيضًا احتمال وجود Weak Encryption أو قيم كوكي ضعيفة.
قد يكون الموقع ينقل كلمات المرور على سبيل المثال بنص نصي أو ب Weak Encryption يمكن بسهولة أن يتم فك تشفيره (يعكس) .هذا أيضًا نقطة هجوم للهاكرز.
يجب أن تكون Credentials مشفرة بأفضل تشفير ممكن لأنها تعتبر من الأمور الرئيسية التي تمنع شخصًا من الوصول غير المصرح به إلى حساب شخص آخر.
الأمر نفسه ينطبق على Cookie Values. و يجب أن تكون Random and Unpredictable.
الآن، سنرى أمثلة مختلفة على نصوص الهجمات Broken Authentication في هذا القسم بينما سنقوم بهجمات Brute Force وما شابه ذلك بشكل أكثر في القسم التالي , لذا استعد ولنبدأ مباشرة في أمثلة عملية.
حسنًا، دعونا نعطي أول مثال أساسي broken authentication، ولهذا، سنبدأ مع منصة TryHackMe.
تأكد من أن كل شيء قد بدأ. لديك Burp Suite، و OPEN-VPN الخاص بك يعمل، وتأكد أيضًا من الحصول على عنوان IP لـ OPEN-VPN. بمجرد أن تفعل كل ذلك، انتقل إلى منصة TryHackMe وانتقل كالمعتاد إلى أساسيات اختراق الويب لدينا , ثم انتقل إلى قائمة owasptop10
ونحن نعلم بالفعل هنا لدينا الكثير من المهام المختلفة، ولكن لهذا المحاضرة، نريد أن ننتقل إلى المهمة السادسة والمهمة السابعة.
الآن، إذا كنت ترغب في القراءة حول Broken Authentication قليلاً، يمكنك قراءة المهمة السادسة ثم الأنتقال إلى الجزء العملي، وهو المهمة السابعة. وهذه المهمة سهلة إلى حد ما , لنلقي نظرة ولنقرأ ما يُطلب منا , ولكن قبل أن نقرأ هذه المهمة، دعونا نبدأ جهازنا
لأننا نعلم بالفعل أنه يأخذ حوالي دقيقة أو أثنتين للبدء بشكل صحيح. أثناء تشغيله، دعونا نقرأ هذه المهمة.
لهذا المثال، سننظر في Logic Flaw داخل Authentication Mechanism.
غالبًا ما يحدث أن المطورين ينسون Sanitize Input الذي يتم تقديمه من قبل المستخدم في كود تطبيقهم، مما يمكن أن يجعلهم عرضة للهجمات مثل SQL Injection. حسنًا، علمنا بالفعل ذلك , لننتقل إلى الأسفل.
لنفهم هذا النوع بمساعدة مثال. لنقول إن هناك مستخدمًا قائمًا بالفعل باسم admin، حسنًا؟
والآن نحن نريد الوصول إلى حساباتهم , لذا ما يمكننا القيام به هو محاولة إعادة التسجيل بهذا الاسم المستخدم، ولكن بتعديل طفيف، سنضيف فراغ ثم نضيف."admin" لاحظ الفراغ في البداية.
حسنًا، الآن، عند إدخال ذلك في حقل اسم المستخدم وإدخال معلومات البريد الإلكتروني الأخرى المطلوبة مثل الهوية أو كلمة المرور وتقديم البيانات، سيتم تسجيل مستخدم جديد فعليًا. ولكن هذا المستخدم سيكون لديه نفس الحقوق كما لو كان المسؤول العادي. يبدو أن هناك مشكلة كبيرة. سيكون بإمكان هذا المستخدم الجديد أيضًا رؤية جميع المحتوى المقدم تحت المستخدم المسؤول , لرؤية ذلك على العمل، انتقل إلى هذا الرابط
لذا دعونا نزوره مباشرة ولنتابع القراءة فقط إلى النهاية وحاول تسجيل مستخدم باسم Daryn، سترى أن المستخدم موجود بالفعل.ثم حاول تسجيل مستخدم بفراغ، Daryn، وسترى أنك الآن قد قمت بتسجيل الدخول وستكون قادرًا على رؤية المحتوى الموجود فقط في حسابهم، والذي في حالتنا هو العلم الذي تحتاج إلى استرجاعه.
والسؤال الأول : ما هو flag الذي وجدته في حسابهم؟ لنذهب ونلقي نظرة , إذا حاولنا تسجيل الدخول كـ Daryn ومن خلال كتابة Daryn ولنقل test 1234والنقر على تسجيل الدخول.
نحصل على خطأ اسم مستخدم أو كلمة مرور غير صالحة، لذلك دعونا نحاول فعل ما قاله لنا TryHackMe أن نفعله، وهو تسجيل مستخدم بتعديل طفيف.
لذلك دعونا نكتب مسافة ومن ثم نتأكد من وجود مكان لها هنا. وإلا لن يعمل.
وتحت البريد الإلكتروني، يمكننا كتابة أي بريد إلكتروني نريده. كتبت [email protected] ،وهو عنوان بريد إلكتروني غير موجود على الأرجح ونوع كلمة المرور test1234 , وسوف نقوم بتسجيل هذا المستخدم. حسنًا، لقد سجلنا المستخدم بنجاح.
الآن لنجرب تسجيل الدخول كهذا المستخدم ونرى ما إذا كنا سنتمكن من العثور على flag الذي يجب أن يكون متاحًا فقط من حساب الحقيقي لـ Darin.
لننتقل إلى هنا , اكتب مسافة وبعد ذلك darren. وكلمة السر test1234 ,لنقوم بالنقر على تسجيل الدخول.
وهنا هو العلم
لذلك قمنا بأداء هجوم Broken Authentication بنجاح حيث قمنا بتسجيل المستخدم الجديد بتعديلات طفيفة، مثل إضافة فراغ في بداية الاسم.
وسمح لنا برؤية العلم الذي يجب أن يكون متاحًا فقط من حساب darren الحقيقي. وسنقوم بتقديم هذا العلم هنا تحت هذا السؤال.
كود:
fe86079416a21a3c999fea8874b667
حسنًا، والسؤال الآخر هو محاولة فعل نفس الخدعة ورؤية ما إذا كنت ستتمكن من تسجيل الدخول ك arthur , أعتقد أن حساب الكاتب موجود بالفعل، لذلك يمكننا ببساطة فعل نفس الشيء , ويمكننا التسجيل بإضافة فراغ ثم بعد وبالنسبة للبريد الإلكتروني، يمكننا كتابة أي شيء آخر نريده.
كتبت [email protected] وكلمة المرور ستكون مرور. test12345
فقط لجعلها مختلفة عن الحساب الآخر.
الآن لنذهب ونقفل كـ arthur وtest12345.
انقر على تسجيل الدخول وهنا نحصل على Flag arthurأيضًا. لقد قمنا بشكل كبير بأداء نفس الشيء لحسابين مختلفين لحساب darren's ولحساب arthur.
كود:
d9ac0f7db4fda460ac3edeb75d75e16e
وإذا كان هذا النوع من الضعف موجودًا في صفحة حقيقية، فإننا سنكون قادرين بشكل كبير على الوصول إلى أي حساب على تلك الصفحة فقط من خلال معرفة اسم المستخدم الخاص به.ثم نقوم بتحديث طفيف وتسجيل مستخدم جديد وسنكون قادرين على رؤية جميع الأشياء التي يمكن رؤيتها من قبل المستخدم الأصلي.
حسنًا، لكن هذا كان مثالًا بسيطًا جدًا للمصادقة المكسورة، في الجزء القادم، سنعود إلى OWASP BROKEN WEB لدينا ونحاول إلقاء نظرة على هجوم Broken authentication آخر.
لنرى مثالًا مختلفًا على هجوم Broken Authentication، ولتقديم ذلك، سنقوم باستخدام،OWASP BROKEN WEB الخاصة بك ، وانتقل إلى بيانات owasp mutillidae II
وفيما يلي، نريد الانتقال إلى عام 2013 والتنقل إلى Broken Authentication and Session Management هنا. ونريد الأنتقال إلى تجاوز الهوية الخاصة بك ولنذهب إلى تجاوز عبر ملفات تعريف الارتباط وانقر فوق ذلك.
وهذه هي الصفحة التي نريدها، دعونا نقول هاك. ولكن دعونا نقرأ من خلال هذا أولاً.
ملفات تعريف الارتباط
تحفظ بعض المواقع بAuthentication Tokens أو Authorization Tokens في User Agent(أي المتصفح, الهاتف , الجهاز اللوحي) وهذا يمنح المستخدم (وXSS) هذا يمنح المستخدم قدرة كبيرة من التحكم في هذه Tokens.
حسنًا، لكن هل نحتاج حقًا إلى قراءة كل هذا؟ إنها تخبرنا أن بعض التكتيكات المختلفة ممكنة، مثل حقن SQL و Brute Force و Admin Pages.
ولكن دعونا نقرأ اسم مهمتنا مرة أخرى، لذلك هو الهوية المكسورة (Broken authentication)،
نريد تجاوز Authentication ونريد القيام بذلك عبر ملفات تعريف الارتباط . حسنًا، لكي نكون قادرين على القيام بذلك، نحتاج إلى حساب على هذه الصفحة، لذا دعونا نقوم بإنشاء حساب بسيط بالإنتقال إلى تسجيل الدخول والتسجيل.
وليس لدينا حساب، لذلك دعونا نسجل هنا.
سنكتب اسم المستخدم، دعونا نكتب اسم المستخدم test1 وكلمة المرور، دعونا نقول test1234.
سنؤكد كلمة المرور وليس هناك حاجة للتوقيع.
لذلك دعونا نقوم فقط بإنشاء حساب.ستظهر لك قم بالانتقال login
وقم بالانتقال الى هنا
وسجل الدخول
حسنًا، رائع، دعونا نغلق هذه النافذة وفي الزاوية اليمنى، يجب أن نرى تم تسجيل الدخول كمستخدم test1
الآن لنعود إلى صفحتنا ونحاول تجاوز وتغيير الحساب عن طريق تغيير القيمة في حقل ملفات تعريف الإرتباط.
لذلك دعونا نتنقل أو ربما نقوم بتشغيل intercept is on ولنحاول تحديث هذه الصفحة.
لنلقي نظرة على الطلب الذي نحاول إرساله.وإذا ذهبنا للأسفل، إليك قيمة ملف تعريف الإرتباط الخاص بنا.
الآن، يمكننا أن نرى هناك حقولًا متعددة لهذه القيمة، ولكن هناك حقلين بشكل خاص
يجب أن يكونان مثيرين للإهتمام بالنسبة لنا. لدينا اسم المستخدم يساوي test 1.
لدينا User ID، لدينا معرف الجلسة. لكن هذان الأثنان هنا يبدوان مثيرين للإهتمام لنا الأكثر.
لنحاول تغيير اسم المستخدم من test 1 إلى، دعونا نقول، admin، لأن هناك حساب admin بالفعل على الصفحة.
وإذا قمنا بإرسال هذا الطلب. ممم، لا يحدث شيء حقًا، نحن لا زلنا مسجلين كمستخدم test 1، لذلك ربما لا يمكننا القيام بذلك بهذه الطريقة.
لنجرب مع حقل User ID أولاً. لنقوم بإيقاف الاعتراض، ونشغله مرة أخرى ولنحدث الصفحة.
الآن نحصل على نفس الطلب، لدينا اسم المستخدم test 1، الذي هو نحن، ولدينا User ID على ما يبدو الخمسة وعشرون هو User ID لحسابنا test 1. لنجرب تغيير ذلك إلى واحد. على سبيل المثال، لنرسل هذا لنعود إلى الصفحة.
وها هو، نجحنا في تغيير الحساب عن طريق تغيير القيم داخل Cookie Header. الآن يقول تم تسجيل الدخول كمسؤول.
ها هو حسابنا. ويمكننا القيام بذلك لأي حساب نريد، إذا قمت بتحديث الصفحة وتغيير User ID من خمسة وعشرين إلى إلى إلى forward
الآن، يجب أن نحصل على حساب مختلف مسجل الدخول كأدريان. مدى روعة ذلك؟
وهذه هي ثغرة في Session Management. تتيح لنا تبديل الحسابات عن طريق تغيير User ID في حقل ملف تعريف الارتباط. لذا كان هذا أيضًا مثالًا بسيطًا. وفي الجزء القادمة، سنلقي نظرة أيضًا على أساليب مختلفة لتكنولوجيا كسر Broken Authentication.
لنغطي هجومًا آخر على Broken Authentication، وهذا سيستهدف Authorization ضمن الصفحة داخل الصفحة.
للتوضيح، ننتقل إلى صفحة تسمى OWASP WebGoat إنها هنا.
لننقر عليها، تأكد من أن الاعتراض متوقف وسيتم فتح نافذة مثل هذه التي تتطلب منا تسجيل الدخول وتذكر هذه النافذة لأنها ستكون مهمة بالنسبة لنا هنا.
لذا حصلنا على هذه النافذة المنبثقة ولتسجيل الدخول، يمكننا كتابة "guest" ومن ثم كلمة المرور "guest" أيضًا.
إذاً اسم المستخدم وكلمة المرور هما "guest". انقر على موافق. لنحفظ كلمة المرور وسيتم فتح صفحة مثل هذه من هنا، نريد أن نبدأ ويبنا , جيد.
واسمحوا لي أن أفترض هذا قليلاً، وهنا سنجد هجماتٍ مختلفة يمكننا تنفيذها. Broken Authentication بالطبع، ليست جميع هذه الهجمات لها علاقة . في الواقع، معظمها في الواقع ثغرات مختلفة , ولكن الهجوم الذي نهتم به في الوقت الحالي هو Authentication flaws لذلك انقر على ذلك.
ومن هنا، نريد أن نذهب إلى basic Authentication
حسنًا، سيتم فتح مهمة مثل هذه، لذا يقول
حسنًا، سيتم فتح مهمة مثل هذه، لذا يقول أساسًا أن Authentication تُستخدم لحماية موارد الخادم الجانبية.سيقوم خادم الويب بإرسال طلب للمصادقة مع الاستجابة للمورد المطلوب.سيطلب متصفح الجانب العميل بعد ذلك من المستخدم إدخال اسم مستخدم وكلمة مرور باستخدام صندوق حوار يوفره المتصفح. وهذا هو صندوق الحوار الذي رأيناه عندما قمنا بتسجيل الدخول إلى Web Goat.
سيقوم المتصفح بترميز اسم المستخدم وكلمة المرور باستخدام Base64 وإرسال تلك Credentials إلى الخادم الويب. ثم سيقوم خادم الويب بالتحقق من Credentials وإرجاع المورد المطلوب , إذا كانت Credentials صحيحة، ستكون هذه Credentials حاضرة تلقائيًا لكل صفحة تم حمايتها بهذا الآلية دون الحاجة إلى إدخال Credentials المستخدم مرة أخرى.
إذاً، بشكل أساسي، يقول هذا أن Credentials التي أدخلناها عند تسجيل الدخول إلى Web Goat ستتم معالجتها لكل صفحة طلبتها بدون الحاجة لتسجيل الدخول في كل مرة نتنقل فيها إلى صفحة جديدة.
لكن المشكلة هنا هي أنها مُشفرة بواسطة Base64. لذا هنا سنكون عرضة لضعف التشفير وضعف الترميز. Base64 هو شيء يمكننا فك تشفيره بسهولة. لذا هنا سنكون عرضة لضعف التشفير وضعف الترميز. لهذا دعونا نجرب ذلك لهذا الدرس. هدفك هو فهم التعليمة الأساسية والإجابة على الأسئلة أدناه.
السؤال الأول: ما هو اسم Authorization Header وما هو Decoded Value for Authorization Header؟
حسنًا، لنذهب إلى هنا. قم بتشغيل اعتراض البيانات وهذا أيضًا مثال بسيط.إذا ذهبنا إلى resqust الخاص بنا، نحصل على هذا الحقل المسمى "authorization" ويقول basic وبعد ذلك بعض الحروف العشوائية.
الآن، حصلنا على إجابة لسؤالنا الأول , Authorization هو الإجابة على ما هو اسم Authorization Header لذا يمكننا كتابته في authorization.
حتى لو لا يهم لأننا في منتصف تحديث الصفحة. ولكن على أي حال، دعونا نلقي نظرة على هذا الجزء الأكثر إثارة الذي يقول basic وبعد ذلك بعض الحروف العشوائية.
الآن، نحن نعلم بالفعل أن هذا هو Base64 ويمكنك عادةً التعرف على Base64 من خلال هذا العلامة يساوي في النهاية
يقول أيضًا أنها basic Authentication
إذا كنا، على سبيل المثال، قمنا بالاعتراض على هذا الطلب باستخدام شيء مثل هجوم "Man-in-the-Middle " على شبكة لاسلكية، وحصلنا على هذا الطلب من مستخدم آخر يحاول زيارة صفحة داخل Web code. سنكون قادرين على فك تشفير اسم المستخدم وكلمة المرور الخاصة بهم ثم تسجيل الدخول إلى صفحتهم. اسمحوا لي أن أريكم كيف يمكننا فعل ذلك. لقد نسخنا القيمة المُشفرة هنا.ومن ثم ننتقل إلى شيء يُدعى "Decoder" هنا، يمكنك إيقاف الاعتراض والتنقل إلى Decoder.الآن، الكود هو شيء لم نغطيه في الأساسيات، ولكنه سهل الاستخدام تمامًا. كل ما عليك فعله هو لصق ما قمنا به إلى الكود هنا ودعني أرى ما إذا قمت بنسخه حتى. حسنًا، قد نسخته بنجاح وهنا على الجهة اليمنى. نريد أن ننقر على "code as" ونريد أن نقوم بفك تشفيره كـ Base64. دعونا ننقر على ذلك. حسنًا، إليك اسم المستخدم وكلمة المرور لدينا بوضوح، وهذا كل ما استغرقه الأمر بالنسبة لنا للحصول على اسم المستخدم وكلمة المرور لمستخدم معين.
الآن، بالطبع، بالنسبة لنا أن نتمكن من الحصول على هذا طلب HTTP الذي اعترضناه، كما ذكرت،
سيكون علينا القيام بشيء مثل هجوم "Man-in-the-Middle ". لكن ذلك سهل حقًا للقيام به. المشكلة هنا هي أن الصفحة تحتوي على Weak Encryption ويمكننا بسهولة عكس تشفير اسم المستخدم وكلمة المرور المشفرة مرة أخرى إلى Plaintext.
والآن يمكننا نسخ هذا لأن هذه هي Decoded Value، حيث هو الجواب على سؤالنا الثاني على الصفحة.
لننسخ هذا لأن هذه هي Decoded Value، حيث أنها الجواب على سؤالنا الثاني على الصفحة.
ولنواجهها هنا ونقدمها، وسيقول لنا تهانينا، يمكنك أن تفهم آلية Authentication الأساسية.
الآن عليك أن تحاول جعل Web code يعتمد عليك كاسم مستخدم أساسي وكلمة مرور أساسية. استخدم قائمة Authentication الأساسية، ابدأ من صفحة تسجيل الدخول.كل ما علينا فعله هنا هو ببساطة إغلاق Web code ومن ثم سنعيد المصادقة مع اسم المستخدم وكلمة المرور الأساسية والأساسية. إذاً هذا شيء سهل حقًا للقيام به. لن نتناول ذلك.
فقط في المرة القادمة عند شاشة تسجيل الدخول، يمكنك استخدام اسم المستخدم وكلمة المرور هذه للدخول إلى حساب مختلف.
ويمكنك أيضًا محاولة اعتراض طلب على صفحة معينة ومحاولة تغيير القيمة المشفرة بالأساسي , والأساسي في Authorization Header لتبديل الحساب الذي قد يعمل لك أبدًا تعرف أبدًا. حسنًا، رائع. كانت هذه مثالًا آخر بسيطًا.
وفي الجزء القادم، سنلقي نظرة على مثال على Broken Authentication عندما ينسى المستخدم كلمة المرور.
حسنًا، دعونا نلقي نظرة على مثال آخر على Broken Authenticationو مع نسيان كلمة المرور. الآن، مثالًا على ذلك، سنلقي نظرة على موقع الويب الخاص بنا، سنعرّف أنفسنا على webGoat في الجزء السابق، والآن سنقوم بتحدي آخر باستخدام هذا التطبيق لذا دعونا ننقر فوق OWASP WebGoat جيد.
نعلم أن هناك حسابًا في الخارج ونعلم أيضًا أن هناك حسابًا أساسيًا.
لنقوم بتسجيل الدخول بواسطة "guest" و"guest" يمكننا تسجيل الدخول بهذا.
نعلم أن هناك حسابًا في الخارج ونعلم أيضًا أن هناك حسابًا أساسيًا. ولكن لا يهم لهذه المهمة.
كل ما علينا القيام به هو بدء webroot لدينا هنا والتنقل إلى Authentication flawsثم forgot password
الآن، دعونا نقرأ التحدي عبر الويب. تقدم التطبيقات الويب لمستخدميها غالبًا القدرة على استرجاع
لسوء الحظ، تفشل العديد من تطبيقات الويب في تنفيذ الآلية بشكل صحيح غالبًا ما يكون المعلومات المطلوبة للتحقق من هوية المستخدم بسيطة للغاية لذلك، دعونا نلقي نظرة على الأهداف العامة . يمكن للمستخدمين استرداد كلمة المرور الخاصة بهم إذا أجابوا على السؤال السري بشكل صحيح لا يوجد آلية إغلاق على صفحة نسيان كلمة المرور هذه. حسنًا، وهذا هو الثغرة الأولى في كل مرة يجب أن تقوم الصفحة بحظر حساب أو حظر عنوان IP.
بمجرد أن يكتبوا السؤال الثاني بشكل غير صحيح لثلاث أو خمس مرات. وأيضًا بمجرد كتابتهم لكلمة المرور بشكل غير صحيح لعدة مرات، يجب على الصفحة أن تقوم بحظرك أو تعطيلك لفترة زمنية معينة. وهذا هو ممارسة جيدة ضد هجمات Brute Force التي سنلقي نظرة عليها في القسم التالي.
ولكن الآن، دعونا نحل هذا التحدي. حسنًا، webGoat جيدا استعادة كلمة المرور.
الرجاء إدخال اسم المستخدم OWASP admin إذا لم يكن لديك حساب حقول مطلوبة اسم المستخدم. الآن، نحن نعلم بالفعل بعض أسماء المستخدمين، ولكن لهذا الجزء سنحاول Brute Forcing UserName
سنستخدم قائمة من أكثر أسماء المستخدمين شيوعًا لرؤية ما إذا كان هناك اسم مستخدم كهذا في هذا التطبيق. إذا كيف سنفعل ذلك؟ حسنًا، الأمر بسيط نوعًا ما ولنكتب أي شيء هنا ، على سبيل المثال، دعونا نكتب "test" وسنقوم بIntercept Request لنقدم هذا الطلب HTTP، وهذا هو الذي نريد استخدامه.
كما نرى، لدينا حقل يسمى اسم المستخدم وهذا الحقل نريد أن نرسله إلى Intruder.
لنقوم بإيقاف التقاط الطلب، وبالطبع، سنحصل على اسم مستخدم غير صالح لأن حساب الاختبار لا يوجد على هذه الصفحة.
لكن داخل Intruder، يمكننا ضبط Payload وفقًا لمحاولة الحصول على اسم مستخدم. حسنًا، دعونا نقوم بمسح جميع الحقول ويمكن اعتبار هذا هجومًا بريئًا نوعًا ما لأننا سنحاول Brute Forcing اسم المستخدم بالإضافة إلى السؤال السري.
حسنًا، أولاً نريد تحديد حقل اسم المستخدم تم اختياره بالنقر على "ADD". والآن نريد الانتقال إلى "Payload" هنا.
نريد تحميل قائمة من أكثر أسماء المستخدمين شيوعًا. ولحسن الحظ، عندنا فعلاً بعض wordlists التي يمكن أن تساعدنا في القيام بذلك. كل ما علينا القيام به هو النقر على "load".
وتنقل إلى Directory wordlists، فتأكد من الذهاب أولاً إلى هذا large directory، ثم إلى usr
ثم دعونا ننتقل إلى "share"، ثم دعونا نحاول العثور على Directory of wordlists، الذي هو هنا في قسم
wordlist، سأنتقل إلى "metasploit" ومن هنا يمكنني اختيار أفضل قائمة تتناسب مع هذا التحدي. ومن أجل هذا، سأختار "HTTP default users".
نقوم بالنقر المزدوج على ذلك وسيتم تحميل هذه أسماء المستخدمين هنا كقائمة Payload
رائع كل ما علينا فعله الآن هو بدء الهجوم. كيف سنعرف أي اسم مستخدم صحيح وأيها غير صحيح ؟ حسنًا، عادةً ما يكون الأمر بسيطًا وسأريك في لحظة كيف يمكننا التعرف عليه، OK؟ انتهت Brute Forcing UserName لدينا. وهذه هي جميع النتائج.
كما ترون، لكل هذه أسماء المستخدمين حصلنا على حالة، 200 Status code. وليس هناك حقًا أي شيء يظهر هنا يشير إلى أي اسم صحيح. وإذا حتى وجدنا اسم مستخدم صحيح واحد من بين هؤلاء.ولكن إذا نظرنا بعناية إلى lengthردنا، وهو هنا، هذا الرقم هو 31967 lengthردنا. ستلاحظ أن جميع أسماء المستخدمين لديها نفس length باستثناء هذا الاسم، باستثناء admin.
عادةً ما يكون هذا إشارة إلى أن هناك شيئًا مختلفًا في هذا النوع من أسماء المستخدمين لأنه أعطى استجابة مختلفة عن بقية هؤلاء.
لذلك الخطوة التالية التي يمكننا اتخاذها، نجد اسم المستخدم بطول مختلف. نقوم بالنقر بزر الماوس الأيمن عليه ومن ثم نطلب أو نعرض الرد في المتصفح، ثم ننسخ الرابط.(show response in browser)
وننتقل إلى هذا الرابط داخل متصفحنا.
وهنا هو السؤال السري منذ أن حصلنا على السؤال السري وهذا يعني أننا وجدنا اسم المستخدم الحالي والسؤال السري هو "ما هو لونك المفضل؟". كما ترون، هذا سؤال سيء حقًا للأمان لأن هناك مثل 10 ألوان في الوجود ويمكننا بسهولة توجيه Brute Forcing بهذه الطريقة التي قمنا بها في Brute Forcing UserName. لنفعل ذلك هنا. مشاهدة المرفق 1706656767001.png
سنقوم بالتوجه إلى burpsuite لننتقل إلى بروكسينا ونقوم بعملintercept is on. الآن، سنقوم بكتابة "test" مرة أخرى لأننا لا نهتم حقًا بما نكتب هنا.
كل ما نريده هو إرسال هذا الطلب إلى Intruder، ثم إيقاف اعتراض الحركة ودعونا ننتقل إلى موقعنا.
الآن نذهب إلى Payloads وهنا يمكننا كتابة الألوان يدويًا على سبيل المثال، لنذهب إلى اللون الأخضر، الأزرق، الأصفر، ولنكتب كل لون يخطر في بالنا لنذهب.
إنه أخضر لننتقل إلى اللون الأسود، الأبيض ودعني أرى البني، ربما وربما نسيت شيئًا، ولكن دعونا نجرب مع هذه الألوان أولاً لذا قمنا بتحميل تسع حمولات أو تسعة ألوان وإذا بدأنا الهجوم. مشاهدة المرفق 7706
نحن نبحث تمامًا عن نفس الشيء ، نحن نبحث عن لون بطول مختلف لكن هنا حصلنا فعلاً على أكثر من طولين، حصلنا على ألوان بهذا length.
حصلنا على ألوان بهذا length هنا، وحصلنا على لون واحد بهذا length ، الذي هو 32019. وعادةً ما يكون هذا هو الذي تريد التحقق منه أولاً لأن لديه طول فريد، الذي يعني عادةً أنه الصحيح.
لذلك دعونا نقوم بالنقر بزر الماوس الأيمن على اللون الأخضر ولنعرض الرد في المتصفح وننتقل إلى فايرفوكس ونلصق الرابط.
وها هو، نجحنا في تخمين اسم المستخدم وكذلك Secret Question لهذا الحساب. وهنا، لدينا اسم مستخدم المشرف، واللون الأخضر.
إذًا، ما هي الثغرة هنا بالضبط؟ حسنًا، هناك شيئان خاطئان في ذلك.
الشيء الأول هو أنه لا يمنعنا بعد عدد معين من الطلبات الغير صحيحة , والشيء الثاني هو أن السؤال الثاني سهل نوعًا ما وتخميناه في ثواني.
الآن، يمكننا أن ننهي هذا التحدي ولدينا اسم المستخدم المشرف واللون الأخضر.وهنا هو كلمة المرور لحساب المشرف حسنًا، رائع.
لدينا تحدي أو مثال آخر للقيام به من تطبيقنا على الويب. وبعد ذلك، سننتقل إلى Brute Forcing Section في الجزء التالي.
حسنًا، المهمة الأخيرة لنا في هذا القسم هي شيء يسمى "Session Fixation"، ولدينا مثال جيد جدًا على ذلك داخل تطبيقنا على الويب. للانتقال إليه، تأكد من الانتقال إلى "Session Management" ثم انقر على "Session Fixation".وها هو تحدينا.
المرحلة الأولى، أنت هاكر، joe، وتريد سرقة الجلسة من الضحيه . قم بإرسال بريد إلكتروني محضر إلى الضحية، الذي يبدو وكأنه بريد رسمي من البنك.
وإليك قالب الرسالة لنرى ما الذي حصلنا عليه. المرحلة الأولى بسيطة كتحديد معرف جلسة مسبق لشخص ما ثم يمكن لهذا الشخص توسيع رابطنا بمعرف جلسة محدد.سنرسل هذا البريد الإلكتروني المعد إلى الضحية ونضيف Session ID إلى الرابط قم بإرفاق نموذج الرسالة أدناه ستحتاج إلى إضافة Session ID أو اختصار المدينة في الرابط داخل الرابط المعدل ليشمل Session ID. وقد تم تحضير رسالة نموذجية أدناه حسنًا، وقد تحدثنا بالفعل بشكل موجز عن Session Fixation. إنها بسيطة كتحديد معرف جلسة لشخص ما، ثم يمكن لهذا الشخص توسيع رابطنا بمعرف جلسة محدد . لنرى ما الذي نحتاج إلى فعله
إنها عبارة عن بريد إلكتروني، وفي هذا البريد الإلكتروني لدينا هذه الجملة "الرجاء استخدام الرابط التالي للتحقق من بيانات حسابك".
وها هو الرابط الذي يحتوي على بعض Parameter لنرى ما يجب علينا فعله. لدينا هنا بريدًا إلكتروني وفي هذا البريد الإلكتروني لدينا هذه الجملة "الرجاء استخدام الرابط التالي للتحقق من بيانات حسابك". وها هو الرابط، الذي يكتب فيه "المرور = webisodes/attack" وهنا بعض Parameter.
والآن، أول شيء لاحظته هو أن رمز الويب مكتوب بشكل غير صحيح، يجب علينا كتابته بأحرف كبيرة "W" و" G" كما هو هنا.
والشيء الثاني الأهم هو أننا نضيف Session ID لدينا بالفعل بعض معلمات الرابط وهي مفصولة بهذا الحرف هنا كل ما علينا فعله هو نسخ نفس هذا الحرف وإضافة معلمة أخرى في النهاية. لذا كل ما علينا فعله هو نسخ نفس هذا الحرف وإضافة Session ID الخاص بنا عند النهاية.
Session ID ببساطة هو معرف في الرابط.
لدينا بالفعل بعض معلمات الرابط وهي مفصولة بهذا الحرف هنا.
لذا كل ما علينا فعله هو نسخ نفس هذا الحرف وإضافة معلمة أخرى في النهاية لنقوم بالتحكم.علينا إضافة هذا الحرف ومن ثم إضافة معلمتنا بكتابة "SID= "، وهنا يمكننا كتابة أي معرف جلسة نريده. على سبيل المثال، دعونا نذهب مع "555". هذا هو Session ID الذي اخترته.لذا الآن يظهر رابطنا المعدل بشكل ما هكذا.
لذلك الآن يظهر رابطنا المعدل بشكل ما هكذا لدينا redcoat/attack ثم هذه الـ٣ معلمات، وآخرها سيكون Session ID.
لدينا WebGoat/attack ثم هذه الـ٣ معلمات، وآخرها سيكون Session ID. الآن نحن كهاكر نرسل هذا البريد الإلكتروني إلى الضحية. لنرسل البريد الإلكتروني.
مهم هنا ان عملت "555" اي انها string فان كتبتها مقدما number ولم تعمل يمكنك الانتباه من هذا الان
وقد اكتملت المرحلة الأولى الآن
المرحلة الثانية
الآن أنت الضحية جين، الذي تلقى البريد الإلكتروني أدناه حسنًا، الآن نحن نتصرف كجين. إذا قمت بوضع المؤشر فوق الرابط بالفم، سترى أن هناك معرفًا مدرجًا. انقر عليه لترى ماذا يحدث.
حسنًا، لنفترض أن هذا هو البريد الإلكتروني الذي حصلنا عليه وها هو الرابط الذي قمنا بتعديله، لنقول إن الضحية تنقر على هذا الرابط وتتجه إلى صفحة حيث يمكنها تسجيل الدخول الآن هنا.
لنفترض أن الضحية تنقر على هذا الرابط وتتجه إلى صفحة حيث يمكنها تسجيل الدخول الآن هنا.
لحسن الحظ، حصلنا على اسم المستخدم وكلمة المرور الصحيحين للضحية، والتي هي اسم المستخدم وكلمة المرور هما.
لنقوم بكتابتهما هنا هذه هي Credentials الصحيحة التي بالطبع لن يعرفها الهاكر، ولكننا نتصرف كهاكر والضحية في هذا التحدي.
لكننا نتصرف كهاكر والضحية في هذا التحدي ولنقم بتسجيل الدخول.
وقد اكتملت المرحلة الثالثة.
حان الوقت لسرقة الجلسة. استخدم الرابط التالي للوصول إلى "Goatherds Financial" حسنًا، في هذا التحدي، نحن هاكرز.
إذا ذهبنا إلى الرابط الآن، نحتاج إلى تسجيل الدخول إلى الجلسة.
لكننا كهاكر لا نعرف حقًا Credentials الصحيحة. لذا يمكننا كتابة أي شيء هنا ونرى أي نوع من الرابط الذي نحصل عليه فقط بالنظر إلى هذا الرابط هنا.
لقد رأينا بالفعل أن هناك معرف جلسة ضمن الرابط يقول "معرف جلسة غير صالح".
لنجرب , سأقوم بتشغيل intercept الآن وسأكتب "test" كاسم مستخدم و"test" ككلمة مرور، وهي بالطبع غير صحيحة.
لكن كل ما نريد القيام به هو Intercept Request هذا. نريد تغيير Session ID إلى الرقم الذي أرسلناه إلى الضحية، والذي في حالتي "555"
لا نحتاج إلى تعديل أي شيء آخر يمكننا ترك التفاصيل الغير صحيحة وإذا قمنا بإعادة هذا الطلب، لنرى.
لقد قمنا بتسجيل الدخول بنجاح كـ "Jane plane" عند تغيير Session ID الذي أرسلناه إلى الضحية عبر البريد الإلكتروني.
وهذا هو نهاية التحدي كما يقول تهانينا، لقد أكملت هذا الدرس حسناً رائع.
لقد تناولنا بعض الهجمات الأساسية على التحقق من الهوية المكسورة وفي القسم القادم، سنستمر مع أنواع مختلفة من الهجمات
كانت هذه نظرة عامة على كيفية استخدام تقنية "Session Fixation" في الهجوم الإلكتروني في القسم القادم، سنستكشف أنواعًا مختلفة من الهجمات.
تذكر أن تطبق هذه المهارات بشكل أخلاقي وفقًا للقوانين والأنظمة المعمول بها.
هذه ترجمات مبسطة قدر الإمكان، ومن المهم أن يتم اختيار الترجمة بناءً على السياق الدقيق للشرح لاستخدام المصطلح في مجال الأمان السيبراني والهاكينج.
المصطلحات الإنجليزية مع ترجمتها إلى العربية وشرح لكل مصطلح :
عبارة عن ثغرات تسمح للهاكر بكسر آليات المصادقة أو تجاوزها، مما يتيح له الوصول غير المشروع إلى حسابات المستخدمين.
Brute Force
القوة الغاشمة
نوع من أنواع هجمات التجربة والخطأ حيث يتم استخدام تجربة متعددة لتخمين كلمات المرور أو المعلومات السرية.
Session Hijacking
سرقة الجلسة
هجوم يستهدف اختراق أو سرقة معرفات الجلسة للتنكر بها والوصول غير المصرح به.
Session Fixation
تثبيت الجلسة
يشير Session Fixation إلى هجوم يقوم فيه المهاجم بتعيين معرف الجلسة (Session ID) للمستخدم بقيمة معروفة، مما يتيح له اختراق جلسة المستخدم. المهاجم قد يرسل رابطًا معرفًا بالفعل (Session ID) إلى الضحية، وعندما يقوم المستخدم بتسجيل الدخول، يمكن للمهاجم الاستيلاء على جلسة المستخدم.
Weak Encryption
تشفير ضعيف
يشير إلى استخدام أساليب تشفير ضعيفة أو مكسورة، مما يزيد من فرص اختراق البيانات
Cookie Values
قيم الكوكي
تشير إلى المعلومات المخزنة في ملفات الكوكيز التي يتم استخدامها لتتبع جلسات المستخدم
Random and Unpredictable
عشوائية وغير قابلة للتنبؤ
يشير إلى أن القيم أو العمليات يجب أن تكون عشوائية ولا يمكن تنبؤها بسهولة
Credentials
بيانات الاعتماد
يرتبط مصطلح "Credentials" بالمعلومات التي يستخدمها المستخدم للتحقق من هويته عند الوصول إلى نظام أو خدمة ما. تشمل بيانات الاعتماد عادة اسم المستخدم وكلمة المرور، وقد تتضمن أيضًا عناصر أخرى مثل شهادات الأمان أو رموز المصادقة.
TryHackMe
تجربة الاختراق
منصة عبر الإنترنت تقدم تحديات ومهام لاختبار وتحسين مهارات الاختراق والأمان السيبراني.
Burp Suite
برب سويت
أداة اختبار أمان تستخدم لاكتشاف واستغلال ثغرات الأمان في تطبيقات الويب.
VPN (Virtual Private Network)
شبكة افتراضية خاصة
تقنية توفير اتصال آمن وخاص عبر شبكة عامة، مما يسمح للمستخدمين بتصفح الإنترنت بشكل آمن وتأمين اتصالاتهم.
SQL Injection
حقن SQL
تقنية هجومية تهدف إلى استغلال ثغرات في مدخلات قواعد البيانات لتنفيذ أوامر SQL غير مصرح بها.
Logic Flaw
عيب منطقي
خطأ في تصميم البرنامج يؤدي إلى سلوك غير متوقع أو ثغرات أمان ناتجة عن سوء التفاهم في البرمجة.
Flag
علم
رمز أو سلسلة من الأحرف تستخدم كدليل على حل أو إكمال تحدي أو مهمة في مجال الاختراق أو التحقق.
Authentication Mechanism
آلية المصادقة
النظام الذي يحدد كيفية التحقق من هوية المستخدم، مثل كلمات المرور أو الرموز المميزة.
Sanitize Input
تنقية الإدخال
عملية تصفية وتنقية البيانات المدخلة لضمان خلوها من أي بيانات ضارة أو خبيثة.
Real User
مستخدم حقيقي
المستخدم الحقيقي الذي يستخدم التطبيق أو المنصة بطريقة عادية.
Task
مهمة
نشاط أو وظيفة محددة يتعين على المستخدم إكمالها، كما هو الحال في تحديات TryHackMe.
Session
الجلسة.
تتكون الجلسة من سلسلة من المعاملات الشبكية أو طلبات الشبكة المتعلقة بنفس المستخدم لفترة زمنية محددة على موقع ويب.
Cookie Header
رأس ملف تعريف الارتباط
هو جزء من الطلب يحمل معلومات ملف تعريف الارتباط الذي يُستخدم للتحقق والتفاعل بين المتصفح والخادم
Session Management
إدارة الجلسة
يتعلق بكيفية تتبع وإدارة الخادم لجلسات المستخدمين بما في ذلك عمليات تسجيل الدخول والخروج
User ID
معرف المستخدم
رقم فريد يُخصص لكل مستخدم يستخدم لتعريفه بشكل فريد في النظام.
Vulnerability
ثغرة
نقطة ضعف أو نقص في الأمان يمكن أن يستغلها المهاجمون لتنفيذ هجمات.
Intercept
التقاط
القدرة على اعتراض وفحص البيانات أثناء تنقلها بين المتصفح والخادم.
Forward
إعادة توجيه
إرسال البيانات من مصدر إلى وجهة.
Approaches
أساليب
الطرق أو السبل التي يمكن بها تنفيذ أو فهم شيء ما.
Tech (Technology)
تقنية
الأدوات والتقنيات المستخدمة لتحقيق هدف معين.
User Agent
وكيل المستخدم
يحتوي على معلومات حول المتصفح الذي يُرسل الطلب إلى الخادم.
Authentication
المصادقة
عملية التحقق من هوية المستخدم للسماح بالوصول
Authorization
التفويض
عملية تحديد الصلاحيات والإذن للمستخدم.
Tokens
الرموز
توكنات تُستخدم لتحقق هوية المستخدم وتفويض الوصول.
Header
رأس
جزء من الطلب يحتوي على معلومات مثل رموز المصادقة والتفويض.
Storage
تخزين
عملية حفظ المعلومات للاستفادة منها لاحقًا.
Authentication Bypass
تجاوز المصادقة
هو نوع من الهجمات يستهدف تفادي أو تجاوز عمليات المصادقة للوصول إلى نظام أو حساب بدون الصلاحيات المطلوبة.
Login Circumvention
التفاف على عملية تسجيل الدخول
استخدام أساليب لتجاوز عمليات تسجيل الدخول والوصول إلى الموارد بشكل غير مصرح به.
Access Control Evasion
تجنب التحكم في الوصول
محاولة تجاوز أو تفادي أنظمة التحكم في الوصول للدخول إلى موارد غير مصرح بها.
Authentication Exploitation
استغلال عملية المصادقة
استخدام ثغرات أمان في عمليات المصادقة للحصول على وصول غير مصرح به.
Credential Manipulation
تلاعب بالاعتمادات
تعديل المعلومات المستخدمة لتسجيل الدخول (اسم المستخدم وكلمة المرور) للوصول غير المصرح به.
Session Hijacking
اختطاف الجلسة
الاستيلاء على جلسة فعالة للمستخدم للتحكم فيها أو الوصول إليها دون إذن.
Token Forgery
تزوير الرمز
إنشاء أو تعديل رموز المصادقة للوصول غير المصرح به.
Biometric Spoofing
التلاعب بالبيانات الحيوية
استخدام بيانات حيوية مزيفة أو مضللة لتجاوز أنظمة المصادقة البيومترية.
Session Replay
إعادة تشغيل الجلسة
تسجيل وإعادة تشغيل جلسة مصادقة سابقة للوصول غير المصرح به.
Multi-factor Authentication Bypass
تجاوز المصادقة متعددة العوامل
استخدام تقنيات لتفادي عمليات المصادقة التي تعتمد على عوامل متعددة.
Authentication Tokens
رموز المصادقة
معلومات تُستخدم لتحقق هوية المستخدم والوصول بشكل آمن.
Authorization Tokens
رموز التفويض
معلومات تُستخدم لتحديد صلاحيات المستخدم والإذن للوصول إلى موارد محددة.
Field
حقل
جزء من الطلب يحمل معلومات مثل رموز المصادقة والتفويض.
Security Mechanism
آلية الأمان
الأساليب والتقنيات المستخدمة لتأمين النظام.
Information Storage
تخزين المعلومات
العملية التي تتيح حفظ واسترجاع المعلومات.
User Agent Field
حقل وكيل المستخدم
جزء محدد في الطلب يتعامل مع معلومات وكيل المستخدم، ويمكن استخدامه لتخزين رموز المصادقة والتفويض.
Admin Pages
صفحات الإدارة
صفحات مخصصة لإدارة وتحكم في إعدادات ووظائف الموقع أو التطبيق.
Dashboard
لوحة التحكم
واجهة رسومية توفر نظرة عامة على أداء الموقع أو التطبيق، وتسمح بإدارة الأنشطة والإعدادات.
Security Settings
إعدادات الأمان
تكوين الإعدادات التي تتعلق بالأمان وحماية النظام أو التطبيق.
User Management
إدارة المستخدمين
إدارة حسابات المستخدمين بما في ذلك الإنشاء والتعديل والحذف.
Settings
إعدادات
تخصيص إعدادات الموقع أو التطبيق وفقًا لاحتياجات محددة.
System Logs
سجلات النظام
تسجيلات تحتفظ بسجلات الأحداث والأنشطة التي تحدث في النظام.
Audit Trail
مسار المراجعة
تسجيل متكامل للتغييرات والأنشطة التي تتم في النظام، مما يسهل تتبعها وفهمها.
Backup and Recovery
النسخ الاحتياطي واستعادة البيانات
إجراءات لحفظ نسخ احتياطية من البيانات واستعادتها في حالة حدوث خلل.
System Configuration
تكوين النظام
تحديد إعدادات وتكوينات النظام لتلبية متطلبات محددة.
Basic Authorization in HTTP Request:
التصريح الأساسي في طلب HTTP
يتحدث المصطلح عن الطريقة التي يتم بها إرسال وتحقق من التصاريح الأساسية في طلب HTTP.
Man-in-the-Middle Attack
هجوم الرجل في المنتصف
هجوم يتمثل في وجود مهاجم يقوم بالاعتراض على التواصل بين طرفين، دون علمهما، ويمكنه التلاعب بالبيانات.
Base64
قاعدة 64
نظام ترميز يستخدم لتحويل البيانات إلى سلسلة نصية مكونة من مجموعة محددة من الرموز.
Decoder
فك التشفير
أداة أو عملية تستخدم لتحويل البيانات المشفرة إلى شكل قابل للقراءة.
Authorization Header
رأس المصادقة.
جزء من طلب HTTP يحتوي على معلومات المصادقة، مثل اسم المستخدم وكلمة المرور.
Plaintext
النص العادي
البيانات أو النصوص غير المشفرة والتي يمكن قراءتها بوضوح.
Username
اسم المستخدم.
الاسم الذي يستخدمه المستخدم لتسجيل الدخول إلى حسابه.
Password
كلمة المرور.
السر الذي يستخدمه المستخدم لتأكيد هويته والوصول إلى حسابه.
Decoded Value for Authorization Header
القيمة المفككة لرأس المصادقة
القيمة المفككة لرأس المصادقة، حيث يتم فك تشفير القيمة المشفرة في رأس المصادقة باستخدام تشفير Base64.
Intruder
المتسلل
جزء من أداة Burp Suite يُستخدم لتنفيذ هجمات تكرارية أو اختراق.
Payloads
الحمولات
البيانات التي يتم إدخالها أو إرسالها كجزء من هجوم.
Secret Question
السؤال السري
يُستخدم للتحقق من هوية المستخدم أو استرجاع معلومات محسنة.
Proxy
البروكسي
جهاز يعمل كوسيط بين الطلبات والاستجابات بين العميل والخادم.
Response Length
طول الاستجابة
عدد البايتات أو الحروف في الاستجابة التي يتم استلامها من الخادم.
Brute Forcing Section
قسم الهجوم بالتكرار
الجزء الذي يركز على تقنيات الهجوم بالتكرار واختبار كلمات المرور والبيانات.
Intercept Request
اعتراض الطلب:
التقاط طلب قبل إرساله إلى الخادم.
Brute Force Username
هجوم التخمين على اسم المستخدم
هجوم يقوم بتجربة مختلف التكاملات لاسم المستخدم للعثور على الوصول غير المشروع.
Brute Force Colors
تكرار اختبار الألوان
تقنية تجريبية لاختبار مجموعة من الألوان لاكتشاف اللون الصحيح.
Length of Response
طول الاستجابة
عدد البايتات أو الحروف في الاستجابة التي يتم استلامها من الخادم.
Section C
القسم C:
القسم المخصص للهجمات التكرارية واختبار الثغرات.
Session ID
معرف الجلسة
هو رقم فريد يتم توليده عند بدء جلسة المستخدم في تطبيق ويب، يستخدم لتمييز جلسة المستخدم الحالية.
Email Spoofing
تزييف البريد الإلكتروني
هو نوع من هجمات البريد الإلكتروني يقوم فيه الهاكر بتزييف معلومات المرسل ليبدو كمرسل شرعي، بهدف خداع المستلم.
Wordlist
دليل الكلمات
قائمة تحتوي على مجموعة من الكلمات المحتمل استخدامها في هجمات التخمين على كلمات المرور
Intercept Response
اعتراض الاستجابة
يعني توقيف أو تسجيل الاستجابة التي يتلقاها المتصفح من الخادم لتعديلها أو تحليلها.
Directory Traversal
اختراق الدليل
هجوم يستهدف استغلال ثغرات في تصميم البرمجيات للوصول إلى ملفات أو دلائل غير مصرح بها
Show Response in Browser
عرض الاستجابة في المتصفح
فتح الاستجابة الملتقطة في المتصفح لتحليلها أو التفاعل معها
Sessional ID Length
طول معرف الجلسة
يشير إلى عدد الأحرف أو البايتات في معرف الجلسة
Sessional ID Parameter
معرف الجلسة كمعامل
يشير إلى معرف الجلسة كجزء من عنوان الرابط
Altered Link
الرابط المعدل
الرابط الذي تم تعديله أو تغييره من قبل الهاكر لتحقيق أهدافه.
Email Template
نموذج البريد الإلكتروني
هو قالب جاهز للبريد الإلكتروني يستخدم كأساس لإنشاء رسائل بريد إلكتروني بتنسيق محدد.
Payload Length
طول الحمولة
عدد البايتات أو الأحرف في الحمولة أو البيانات المرسلة.
Security Question Bypass
تجاوز السؤال الأمني
التغلب على سؤال الأمان للوصول إلى حساب بدون معرفة الإجابة الصحيحة
Intruder Payloads
حمولات المتسلل
القيم أو البيانات المستخدمة في هجمات التكرار أو التجربة على الأمان
Intercept Off
إيقاف اعتراض
إيقاف وضع الاعتراض للسماح بمرور حركة المرور بشكل طبيعي
Intruder Positions
مواقع المتسلل
المواقع في الطلب التي تُستبدل بقيم متغيرة أثناء هجوم التكرار.
Intruder Clear Fields
تنظيف حقول المتسلل
- الشرح: حذف القيم أو المعلومات المستخدمة في هجوم التكرار
Session ID Bypass
تجاوز معرف الجلسة
تخطي حماية معرف الجلسة للوصول غير المشروع إلى حساب المستخدم.
Victim
الضحية
الشخص أو الجهاز الذي يتعرض للهجوم أو التلاعب.
Hacker
القرصان او المهاجم
شخص يقوم بالتسلل أو الهجوم على أنظمة الحاسوب أو التطبيقات بغرض الوصول غير المشروع
لا أقول النهايه بل أقول البدايه بسم الله توكلت على الله
ما قلته لك في شرحك السابق أقوله لك الان، مستقبلك باهر إذا استمريت بنفس هذه الطريقة وراح تطلع حاجات رهيبة متميزة جدا عن أي شرح في المنتدى.
ما زلنا ننتظر منك الكثير والكثير من الإبداع، وما نراه الآن بوادر جدا محفزة
تم التقييم
Broken Authentication من خلال اسمها فقط، يمكننا أن نفترض بالفعل نوع الثغرة هذه وماذا تفعل.
وهذه هي واحدة من أكثر الهجمات والثغرات شيوعًا في السنوات السابقة الآن، Broken Authentication
غالبًا ما تكون مرتبطة بالجلسات، ولكن دعونا نحدد session أولاً. إذا ما هي؟ ما يمكننا قوله هو أن الجلسات هي سلسلة من Network transactions أو Network requests المرتبطة بال
مستخدم نفسه لفترة زمنية معينة. هذا هو ما يحدد الفرد على صفحة الويب، الsession. الآن، لا تختلط بين الجلسات وauthentication، على الرغم من أنهما متشابهان إلى حد كبير.
والجلسات للتفاعل والتغيير استنادًا إلى ما إذا كان المستخدم مصادقًا أم لا، الجلسات هي تُقِيَّم حتى عندما لا يكون المستخدم مصادقًا. فقط أنها تتغير عندما يقوم المستخدم بauthentication على الموقع.
حسنًا، ولكن فيما يتعلق broken authentication، ما هي الهجمات التي نملكها، ما يمكننا فعله لاختبار هذه الثغرة؟
مشاهدة المرفق 7515
حسنًا، هناك أنواعٌ مختلفة من الهجمات، ولكن يمكننا تقسيمها إلى مجموعتين مختلفتين،
المجموعة رقم واحد، وهي الهجمات التي يكون المستخدم مسؤولًا عنها، والمجموعة رقم اثنين الهجمات
التي يكون المطور مسؤولًا عنها. مشاهدة المرفق 7516
حسنًا، يأخذ كلا الجانبين مكانًا في جعل هذه الهجمات تعمل، كيف بالضبط؟ حسنًا، يتحمل المستخدمون مسؤولية Credentials الخاصة بهم. مشاهدة المرفق 7529
إنهم مسؤولون عن جعل كلمات مرورهم قوية قدر الإمكان عن طريق إضافة أرقام ورموز وحروف كبيرة وصغيرة.
ومع ذلك، غالبًا ما لا يكون هذا هو الحال ويختارون كلمة مرور سهلة لها معنى بالنسبة لهم.
يمكننا استهداف هذا بوسائل مثل Brute Force لBroken Authentication.
يمكننا استخدامBrute Force لأسماء المستخدمين وكلمات المرور وأسئلة الأمان وأي شيء نحتاجه للوصول إلى حساب.
سنغطي هذه النوع من الهجمات في القسم التالي، ومع ذلك، في هذا القسم، مشاهدة المرفق 7530
نحن أكثر هؤلاء مطورو الويب مسؤولون عن إدارة هذه الsession، كيف سيعالج الموقع الويب مختلف الجلسات وما هي parameter التي سيستخدمها؟
عادةً ما يتم تحديد هذه الجلسات بCookie Values أو معلمات نوع أخرى. تُعتبر الجلسات مهمة مثل Credentials للمستخدم.
تعتبر session الهجوم هوية مسروقة قوية كما هو الحال مع Credentials المسروقة. مشاهدة المرفق 7532
وهذا هو الوسم الذي سنقوم بتنفيذه بشكل رئيسي، Session Hijacking أو اختراق الsession. هناك العديد من النهج حول كيفية القيام بذلك.
واحدة منها هي هجوم يسمىSession Fixation. مشاهدة المرفق 7533
الفكرة الرئيسية وراء هجومSession Fixation هذا هي أن الهاكر يحدد مُسبقًا ال session-ID الذي سيستخدمه الضحية
على سبيل المثال، يمكن للهاكر إرسال الضحية رابطًا يحتوي على session-ID مُحدَّد مُسبقًا، و قد يتطلب هذا الرابط من الضحية تسجيل الدخول بعد تسجيل الدخول.
يمكن للهاكر بعد ذلك استخدام تلك session-ID لتقمص الضحية بعد تسجيل الدخول. هناك أيضًا احتمال وجود Weak Encryption أو قيم كوكي ضعيفة. مشاهدة المرفق 7534
قد يكون الموقع ينقل كلمات المرور على سبيل المثال بنص نصي أو بWeak Encryption يمكن بسهولة أن يتم فك تشفيره (يعكس) .
هذا أيضًا نقطة هجوم للهاكرز.
يجب أن تكون Credentials مشفرة بأفضل تشفير ممكن لأنها تعتبر الأمور الرئيسية التي تمنع شخصًا من الوصول غير المصرح به إلى حساب شخص آخر.
الأمر نفسه ينطبق على Cookie Values. و يجب أن تكون Random and Unpredictable.
الآن، سنرى أمثلة مختلفة على نصوص الهجمات Broken Authentication في هذا القسم بينما ستقوم هجماتBrute Force وما شابه ذلك بفعل أكثر في القسم التالي.
لذا استعد ولنبدأ مباشرة في أمثلة عملية.
حسنًا، دعونا نعطي أول مثال أساسي broken authentication، ولهذا، سنبدأ مع منصة TryHackMe.
تأكد من أن كل شيء قد بدأ. لديك Burp Suite، و OPEN-VPN الخاص بك يعمل، وتأكد أيضًا من الحصول على عنوان IP لـ OPEN-VPN.
بمجرد أن تفعل كل ذلك، انتقل إلى منصة TryHackMe وانتقل كالمعتاد إلى أساسيات اختراق الويب لدينا.
ثم انتقل إلى قائمة owasptop10
ونحن نعلم بالفعل هنا لدينا الكثير من المهام المختلفة، ولكن لهذا المحاضرة، نريد أن ننتقل إلى المهمة رقم ستة والمهمة رقم سبع.
الآن، إذا كنت ترغب في قراءة حول Broken Authentication قليلاً، يمكنك قراءة المهمة رقم
ستة ثم الانتقال إلى الجزء العملي، وهو المهمة رقم سبع. وهذه المهمة سهلة إلى حد ما.
لنلقي نظرة ولنقرأ ما يُطلب منا. ولكن قبل أن نقرأ هذه المهمة، دعونا نبدأ جهازنا
مشاهدة المرفق 7535
لأننا نعلم بالفعل أنه يأخذ حوالي دقيقة أو اثنتين للبدء بشكل صحيح. أثناء تشغيله، دعونا نقرأ هذه المهمة.
لهذا المثال، سننظر في Logic Flaw داخل Authentication Mechanism.
غالبًا ما يحدث أن المطورين ينسون Sanitize Input الذي يتم تقديمه من قبل المستخدم في
كود تطبيقهم، مما يمكن أن يجعلهم عرضة للهجمات مثل SQL Injection. حسنًا، علمنا بالفعل ذلك.
لننتقل إلى الأسفل.
لنفهم هذا النوع بمساعدة مثال. لنقول إن هناك مستخدمًا قائمًا بالفعل باسم admin، حسنًا؟
والآن نحن نريد الوصول إلى حساباتهم. لذا ما يمكننا القيام به هو محاولة إعادة التسجيل بهذا الاسم المستخدم، ولكن بتعديل طفيف، سنضيف فراغ ثم نضيف."admin" لاحظ الفراغ في البداية.
حسنًا، الآن، عند إدخال ذلك في حقل اسم المستخدم وإدخال معلومات البريد الإلكتروني الأخرى المطلوبة مثل الهوية أو كلمة المرور وتقديم البيانات، سيتم تسجيل مستخدم جديد فعليًا.
ولكن هذا المستخدم سيكون لديه نفس الحقوق كما لو كان المسؤول العادي. يبدو أن هناك مشكلة كبيرة. سيكون بإمكان هذا المستخدم الجديد أيضًا رؤية جميع المحتوى المقدم تحت المستخدم المسؤول.
لرؤية ذلك على العمل، انتقل إلى هذا الرابط، مشاهدة المرفق 7536
لذا دعونا نزوره مباشرة ولنتابع القراءة فقط إلى النهاية وحاول تسجيل مستخدم باسم Daryn، سترى أن المستخدم موجود بالفعل.
ثم حاول تسجيل مستخدم بفراغ، Daryn، وسترى أنك الآن قد قمت بتسجيل الدخول وستكون قادرًا على رؤية المحتوى الموجود فقط في حسابهم، والذي في حالتنا هو العلم الذي تحتاج إلى استرجاعه. مشاهدة المرفق 7537
والسؤال الأول هو، ما هو flag الذي وجدته في حسابهم؟
لنذهب ونلقي نظرة. إذا حاولنا تسجيل الدخول كـ Daryn ومن خلال كتابة Daryn ولنقل test 1234والنقر على تسجيل الدخول. مشاهدة المرفق 7538
نحصل على خطأ اسم مستخدم أو كلمة مرور غير صالحة، لذلك دعونا نحاول فعل ما قالت لنا TryHackMe أن نفعله، وهو تسجيل مستخدم بتعديل طفيف.
مشاهدة المرفق 7540
لذلك دعونا نكتب مسافة ومن ثم هنا اتأكد من وجود مكان لها هنا. وإلا لن يعمل.
وتحت البريد الإلكتروني، يمكننا كتابة أي بريد إلكتروني نريده. كتبت [email protected] ،وهو عنوان بريد إلكتروني غير موجود على الأرجح ونوع كلمة المرور test1234.
وسوف نقوم بتسجيل هذا المستخدم. حسنًا، لقد سجلنا المستخدم بنجاح.
الآن لنجرب تسجيل الدخول كهذا المستخدم ونرى ما إذا كنا سنتمكن من العثور على flag الذي يجب أن يكون متاحًا فقط من حساب الحقيقي لـ Darin. مشاهدة المرفق 7541
لننتقل إلى هنا.
اكتب مسافة وبعد ذلك darren. وكلمة السر test1234 ,لنقوم بالنقر على تسجيل الدخول. مشاهدة المرفق 7542
وهنا هو العلم، مشاهدة المرفق 7543
لذلك قمنا بأداء هجوم Broken Authentication بنجاح حيث قمنا بتسجيل المستخدم الجديد بتعديلات طفيفة، مثل إضافة فراغ في بداية الاسم.
وسمح لنا برؤية العلم الذي يجب أن يكون متاحًا فقط من حساب darren الحقيقي.
وسنقوم بتقديم هذا العلم هنا تحت هذا السؤال. مشاهدة المرفق 7544
كود:
fe86079416a21a3c999fea8874b667
حسنًا، والسؤال الآخر هو محاولة فعل نفس الخدعة ورؤية ما إذا كنت ستتمكن من تسجيل الدخول ك arthur
أعتقد أن حساب الكاتب موجود بالفعل، لذلك يمكننا ببساطة فعل نفس الشيء.
يمكننا التسجيل بإضافة فراغ ثم بعد وبالنسبة للبريد الإلكتروني، يمكننا كتابة أي شيء آخر نريده.
كتبت [email protected] وكلمة المرور ستكون مرور. test12345
الآن لنذهب ونقفل.
كـ arthur وtest12345. مشاهدة المرفق 7545
انقر على تسجيل الدخول وهنا نحصل على Flag arthurأيضًا.
لقد قمنا بشكل كبير بأداء نفس الشيء لحسابين مختلفين لحساب darren's ولحساب arthur. مشاهدة المرفق 7547 مشاهدة المرفق 7548
كود:
d9ac0f7db4fda460ac3edeb75d75e16e
وإذا كان هذا النوع من الضعف موجودًا في صفحة حقيقية، فإننا سنكون قادرين بشكل كبير
على الوصول إلى أي حساب على تلك الصفحة فقط من خلال معرفة اسم المستخدم الخاص به.
ثم نقوم بتحديث طفيف وتسجيل مستخدم جديد وسنكون قادرين على رؤية
جميع الأشياء التي يمكن رؤيتها من قبل المستخدم الأصلي.
حسنًا، لكن هذا كان مثالًا بسيطًا جدًا للمصادقة المكسورة، في الجزء القادم، سنعود إلى OWASP BROKEN WEB لدينا ونحاول إلقاء نظرة على هجوم Broken authentication آخر.
لنرى مثالًا مختلفًا على هجوم Broken Authentication، ولتقديم ذلك، سنقوم باستخدام،OWASP BROKEN WEB الخاصة بك ، وانتقل إلى بيانات owasp mutillidae II مشاهدة المرفق 7550
وفيما يلي، نريد الانتقال إلى عام 2013 والتنقل إلى Broken Authentication and Session Management هنا.
نريد الانتقال إلى تجاوز الهوية الخاصة بك ولنذهب إلى تجاوز عبر ملفات تعريف الارتباط.
انقر فوق ذلك. مشاهدة المرفق 7551
وهذه هي الصفحة التي نريد، دعونا نقول هاك. ولكن دعونا نقرأ من خلال هذا أولاً.
تحفظ بعض المواقع بAuthentication Tokens او Authorization Tokens في User Agent(اي المتصفح, الهاتف , الجهاز اللوحي) وهذا يمنح المستخدم (وXSS) هذا يمنح المستخدم قدرا كبيرة من التحكم في هذه Tokens.
حسنًا، لكن هل نحتاج حقًا إلى قراءة كل هذا؟ إنها مجرد تخبرنا أن بعض التكتيكات المختلفة ممكنة، مثل حقن SQLو Brute Force وAdmin Pages.
ولكن دعونا نقرأ اسم مهمتنا مرة أخرى، لذلك هو الهوية المكسورة(Broken authentication)، مشاهدة المرفق 7553
نريد تجاوز Authentication ونريد القيام بذلك عبر ملفات تعريف الارتباط.
حسنًا، لكي نكون قادرين على القيام بذلك، نحتاج إلى حساب على هذه الصفحة، لذا دعونا نقوم بإنشاء حساب بسيط بالانتقال إلى تسجيل الدخول والتسجيل. مشاهدة المرفق 7554
وليس لدينا حساب، لذلك دعونا نسجل هنا. مشاهدة المرفق 7556
سنكتب اسم المستخدم، دعونا نكتب اسم المستخدم test1 وكلمة المرور، دعونا نقول test1234. مشاهدة المرفق 7555
سنؤكد كلمة المرور وليس هناك حاجة للتوقيع.
لذلك دعونا نقوم فقط بإنشاء حساب.
ستظهر لك قم بالانتقال login مشاهدة المرفق 7559
وقم بالانتقال الى هنا مشاهدة المرفق 7632
وسجل الدخول مشاهدة المرفق 7634
حسنًا، رائع، دعونا نغلق هذه النافذة وفي الزاوية اليمنى، يجب أن نرى تم تسجيل الدخول كمستخدم test1
مشاهدة المرفق 7635
الآن لنعود إلى صفحتنا ونحاول تجاوز وتغيير الحساب عن طريق تغيير القيمة في حقل ملفات تعريف الارتباط. مشاهدة المرفق 7636
لذلك دعونا نتنقل أو ربما نقوم بتشغيل intercept is on ولنحاول تحديث هذه الصفحة.
لنلقي نظرة على الطلب الذي نحاول إرساله.
وإذا ذهبنا للأسفل، إليك قيمة ملف تعريف الارتباط الخاص بنا.
الآن، يمكننا أن نرى هناك حقولًا متعددة لهذه القيمة، ولكن هناك حقلين بشكل خاص مشاهدة المرفق 7646
يجب أن يكونان مثيرين للاهتمام بالنسبة لنا. لدينا اسم المستخدم يساوي test 1.
لدينا User ID، لدينا معرف الجلسة. لكن هذان الاثنان هنا يبدوان مثيرين للاهتمام لنا الأكثر. مشاهدة المرفق 7647
لنحاول تغيير اسم المستخدم من test 1 إلى، دعونا نقول، admin، لأن هناك حساب admin بالفعل على الصفحة. مشاهدة المرفق 7648
وإذا قمنا بإرسال هذا الطلب. همم، لا يحدث شيء حقًا، نحن لا زلنا مسجلين كمستخدم test 1، لذلك ربما لا يمكننا القيام بذلك بهذه الطريقة.
الآن نحصل على نفس الطلب، لدينا اسم المستخدم test 1، الذي هو نحن، ولدينا User ID على ما يبدو
الخمسة وعشرون هو User ID لحسابنا test 1. لنجرب تغيير ذلك إلى واحد. على سبيل المثال، لنرسل هذا لنعود إلى الصفحة.
مشاهدة المرفق 7653
وها هو، نجحنا في تغيير الحساب عن طريق تغيير القيم داخل Cookie Header. الآن يقول تم تسجيل الدخول كمسؤول. مشاهدة المرفق 7655
ها هو حسابنا. ويمكننا القيام بذلك لأي حساب نريد، إذا قمت بتحديث الصفحة وتغيير User ID من خمسة وعشرين إلى إلى إلى forward مشاهدة المرفق 7657
الآن، يجب أن نحصل على حساب مختلف مسجل الدخول كأدريان. مدى روعة ذلك؟ مشاهدة المرفق 7658
وهذه هي ثغرة في Session Management. تتيح لنا تبديل الحسابات عن طريق تغيير User ID في حقل ملف تعريف الارتباط. لذا كان هذا أيضًا مثالًا بسيطًا. وفي الجزء القادمة، سنلقي نظرة أيضًا على أساليب مختلفة لتكنولوجيا كسر Broken Authentication.
لنغطي هجومًا آخر على Broken Authentication، وهذا سيستهدف Authorization ضمن الصفحة داخل الصفحة.
للتوضيح، ننتقل إلى صفحة تسمى OWASP WebGoat إنها هنا.
مشاهدة المرفق 7659
لننقر عليها، تأكد من أن الاعتراض متوقف وسيتم فتح نافذة مثل هذه التي تتطلب منا تسجيل الدخول وتذكر هذه النافذة لأنها ستكون مهمة بالنسبة لنا في هذا الجزء.مشاهدة المرفق 7660
لذا حصلنا على هذه النافذة المنبثقة ولتسجيل الدخول، يمكننا كتابة "guest" ومن ثم كلمة المرور "guest" أيضًا.
إذاً اسم المستخدم وكلمة المرور هما "guest". انقر على موافق. لنحفظ كلمة المرور وسيتم فتح صفحة مثل هذه من هنا، نريد أن نبدأ ويبنا.جيد. مشاهدة المرفق 7661 مشاهدة المرفق 7662
واسمحوا لي أن أفترض هذا قليلاً، وهنا سنجد هجماتٍ مختلفة يمكننا تنفيذها. Broken Authentication بالطبع، ليست جميع هذه الهجمات لها علاقة . في الواقع، معظمها في الواقع ثغرات مختلفة.
ولكن الهجوم الذي نهتم به في الوقت الحالي هو Authentication flaws لذلك انقر على ذلك. مشاهدة المرفق 7663
ومن هنا، نريد أن نذهب إلى basic Authentication مشاهدة المرفق 7664
حسنًا، سيتم فتح مهمة مثل هذه، لذا يقول
مشاهدة المرفق 7665
حسنًا، سيتم فتح مهمة مثل هذه، لذا يقول أساسًا أن Authentication تُستخدم لحماية موارد الخادم الجانبية.سيقوم خادم الويب بإرسال طلب للمصادقة مع الاستجابة للمورد المطلوب.
سيطلب متصفح الجانب العميل بعد ذلك من المستخدم إدخال اسم مستخدم وكلمة مرور باستخدام صندوق حوار يوفره المتصفح. وهذا هو صندوق الحوار الذي رأيناه عندما قمنا بتسجيل الدخول إلى Web Goat.
سيقوم المتصفح بترميز اسم المستخدم وكلمة المرور باستخدام Base64 وإرسال تلك Credentials إلى الخادم الويب. ثم سيقوم خادم الويب بالتحقق من Credentials وإرجاع المورد المطلوب.
إذا كانت Credentials صحيحة، ستكون هذه Credentials حاضرة تلقائيًا لكل صفحة تم حمايتها بهذا الآلية دون الحاجة إلى إدخال Credentials المستخدم مرة أخرى.
إذاً، بشكل أساسي، يقول هذا أن Credentials التي أدخلناها عند تسجيل الدخول إلى Web Goat ستتم معالجتها لكل صفحة طلبتها بدون الحاجة لتسجيل الدخول في كل مرة نتنقل فيها إلى صفحة جديدة.
لكن المشكلة هنا هي أنها مُشفرة بواسطة Base64. لذا هنا سنكون عرضة لضعف التشفير وضعف الترميز. Base64 هو شيء يمكننا فك تشفيره بسهولة. لذا هنا سنكون عرضة لضعف التشفير وضعف الترميز.
لذا دعونا نجرب ذلك لهذا الدرس. هدفك هو فهم التعليمة الأساسية والإجابة على الأسئلة أدناه.
السؤال الاول
ما هو اسم Authorization Header وما هو Decoded Value for Authorization Header؟ مشاهدة المرفق 7666
حسنًا، لنذهب إلى هنا. قم بتشغيل اعتراض البيانات وهذا أيضًا مثال بسيط.
إذا ذهبنا إلى resqust الخاص بنا، نحصل على هذا الحقل المسمى "authorization" ويقول basic وبعد ذلك بعض الحروف العشوائية. مشاهدة المرفق 7667
الآن، حصلنا على إجابة لسؤالنا الأول.
Authorization هو الإجابة على ما هو اسم Authorization Header لذا يمكننا كتابته في authorization.
مشاهدة المرفق 7668 مشاهدة المرفق 7669
حتى لو لا يهم لأننا في منتصف تحديث الصفحة.
ولكن على أي حال، دعونا نلقي نظرة على هذا الجزء الأكثر إثارة الذي يقول basic وبعد ذلك بعض الحروف العشوائية. مشاهدة المرفق 7670
الآن، نحن نعلم بالفعل أن هذا هو Base64 ويمكنك عادةً التعرف على Base64 من خلال هذا العلامة يساوي في النهاية
يقول أيضًا أنها basic Authentication
إذا كنا، على سبيل المثال، قمنا بالاعتراض على هذا الطلب باستخدام شيء مثل هجوم "Man-in-the-Middle " على شبكة لاسلكية، وحصلنا على هذا الطلب من مستخدم آخر يحاول زيارة صفحة داخل Web code.
سنكون قادرين على فك تشفير اسم المستخدم وكلمة المرور الخاصة بهم ثم تسجيل الدخول إلى صفحتهم.
اسمحوا لي أن أريكم كيف يمكننا فعل ذلك. لقد نسخنا القيمة المُشفرة هنا.
ومن ثم ننتقل إلى شيء يُدعى "Decoder" هنا، يمكنك إيقاف الاعتراض والتنقل إلى Decoder.
الآن، الكود هو شيء لم نغطيه في الأساسيات، ولكنه سهل الاستخدام تمامًا.
كل ما عليك فعله هو لصق ما قمنا به إلى الكود هنا ودعني أرى ما إذا قمت بنسخه حتى. حسنًا، قد نسخته بنجاح وهنا على الجهة اليمنى.
نريد أن ننقر على "code as" ونريد أن نقوم بفك تشفيره كـ Base64. دعونا ننقر على ذلك.
حسنًا، إليك هو، إليك اسم المستخدم وكلمة المرور لدينا بوضوح، وهذا كل ما استغرقه الأمر بالنسبة لنا للحصول على اسم المستخدم وكلمة المرور لمستخدم معين. مشاهدة المرفق 7672
الآن، بالطبع، بالنسبة لنا أن نتمكن من الحصول على هذا طلب HTTP الذي اعترضناه، كما ذكرت،
مشاهدة المرفق 7671
سيكون علينا القيام بشيء مثل هجوم "Man-in-the-Middle ". لكن ذلك سهل حقًا للقيام به. المشكلة هنا هي أن الصفحة تحتوي على Weak Encryption ويمكننا بسهولة عكس تشفير
اسم المستخدم وكلمة المرور المشفرة مرة أخرى إلى Plaintext.
والآن يمكننا نسخ هذا لأن هذه هي Decoded Value، حيث هو الجواب على سؤالنا الثاني على الصفحة. مشاهدة المرفق 7673
لننسخ هذا لأن هذه هي Decoded Value، حيث أنها الجواب على سؤالنا الثاني على الصفحة. مشاهدة المرفق 7675
مشاهدة المرفق 7674
ولنواجهها هنا ونقدمها، وسيقول لنا تهانينا، يمكنك أن تفهم آلية Authentication الأساسية.
الآن عليك أن تحاول جعل Web code يعتمد عليك كاسم مستخدم أساسي وكلمة مرور أساسية. استخدم قائمة Authentication الأساسية، ابدأ من صفحة تسجيل الدخول.
الآن كل ما علينا فعله هنا هو ببساطة إغلاق Web code ومن ثم سنعيد المصادقة مع اسم المستخدم وكلمة المرور الأساسية والأساسية. إذاً هذا شيء سهل حقًا للقيام به. لن نتناول ذلك. مشاهدة المرفق 7676
فقط في المرة القادمة عند شاشة تسجيل الدخول، يمكنك استخدام اسم المستخدم وكلمة المرور هذه للدخول إلى حساب مختلف.
ويمكنك أيضًا محاولة اعتراض طلب على صفحة معينة ومحاولة تغيير القيمة المشفرة بالأساسي والأساسي في Authorization Header لتبديل الحساب الذي قد يعمل لك أبدًا تعرف أبدًا.
حسنًا، رائع. كانت هذه مثالًا آخر بسيطًا.
وفي الجزء القادم، سنلقي نظرة على مثال على Broken Authentication عندما ينسى المستخدم كلمة المرور.
حسنًا، دعونا نلقي نظرة على مثال آخر على Broken Authenticationو مع نسيان كلمة المرور. الآن، مثالًا على ذلك، سنلقي نظرة على موقع الويب الخاص بنا، سنعرّف أنفسنا على
webGoat في الجزء السابق، والآن سنقوم بتحدي آخر باستخدام هذا التطبيق لذا دعونا ننقر فوق OWASP WebGoat جيد. مشاهدة المرفق 7659
نعلم أن هناك حسابًا في الخارج ونعلم أيضًا أن هناك حسابًا أساسيًا. مشاهدة المرفق 7661
لنقوم بتسجيل الدخول بواسطة "guest" و"guest" يمكننا تسجيل الدخول بهذا.
مشاهدة المرفق 7660
نعلم أن هناك حسابًا في الخارج ونعلم أيضًا أن هناك حسابًا أساسيًا. ولكن لا يهم لهذه المهمة.
كل ما علينا القيام به هو بدء webroot لدينا هنا والتنقل إلى Authentication flawsثم forgot password مشاهدة المرفق 7677
الآن، دعونا نقرأ التحدي عبر الويب. تقدم التطبيقات الويب لمستخدميها غالبًا القدرة على استرجاع مشاهدة المرفق 7678
لسوء الحظ، تفشل العديد من تطبيقات الويب في تنفيذ الآلية بشكل صحيح غالبًا ما يكون المعلومات المطلوبة للتحقق من هوية المستخدم بسيطة للغاية حسنًا، دعونا نلقي نظرة على الأهداف العامة.
يمكن للمستخدمين استرداد كلمة المرور الخاصة بهم إذا أجابوا على السؤال السري بشكل صحيح لا يوجد آلية إغلاق على صفحة نسيان كلمة المرور هذه.
حسنًا، وهذا هو الثغرة الأولى في كل مرة يجب أن تقوم الصفحة بحظر حساب أو حظر عنوان IP.
بمجرد أن يكتبوا السؤال الثاني بشكل غير صحيح لثلاث أو خمس مرات. وأيضًا بمجرد كتابتهم لكلمة المرور بشكل غير صحيح لعدة مرات، يجب على الصفحة أن تقوم بحظرك
أو تعطيلك لفترة زمنية معينة. وهذا هو ممارسة جيدة ضد هجمات Brute Force التي سنلقي نظرة عليها في القسم التالي.
ولكن الآن، دعونا نحل هذا التحدي.
حسنًا، webGoat جيدا استعادة كلمة المرور.
الرجاء إدخال اسم المستخدم OWASP admin إذا لم يكن لديك حساب حقول مطلوبة اسم المستخدم. الآن، نحن نعلم بالفعل بعض أسماء المستخدمين، ولكن لهذا الفيديو سنحاول Brute Forcing UserName
سنستخدم قائمة من أكثر أسماء المستخدمين شيوعًا لرؤية ما إذا كان هناك اسم مستخدم كهذا في هذا التطبيق. إذا كيف سنفعل ذلك؟ حسنًا، الأمر بسيط نوعًا ما.
لنكتب أي شيء هنا.
لذا، على سبيل المثال، دعونا نكتب "test" وسنقوم بIntercept Request لنقدم هذا الطلب HTTP، وهذا هو الذي نريد استخدامه. مشاهدة المرفق 7679
كما نرى، لدينا حقل يسمى اسم المستخدم وهذا الحقل نريد أن نرسله إلى Intruder. مشاهدة المرفق 7680
لنقوم بإيقاف التقاط الطلب، وبالطبع، سنحصل على اسم مستخدم غير صالح لأن حساب الاختبار لا يوجد على هذه الصفحة. مشاهدة المرفق 7681
لكن داخل Intruder، يمكننا ضبط Payload وفقًا لمحاولة الحصول على اسم مستخدم. حسنًا، دعونا نقوم بمسح جميع الحقول ويمكن اعتبار هذا هجومًا بريئًا نوعًا ما لأننا سنحاول
Brute Forcing اسم المستخدم بالإضافة إلى السؤال السري.
حسنًا، أولاً نريد تحديد حقل اسم المستخدم تم اختياره بالنقر على "ADD". والآن نريد الانتقال إلى "Payload" هنا. مشاهدة المرفق 7682
نريد تحميل قائمة من أكثر أسماء المستخدمين شيوعًا. ولحسن الحظ، عندنا فعلاً بعض wordlists التي يمكن أن تساعدنا في القيام بذلك. كل ما علينا القيام به هو النقر على "load". مشاهدة المرفق 7684
وتنقل إلى Directory wordlists، فتأكد من الذهاب أولاً إلى هذا large directory، ثم إلى usr
مشاهدة المرفق 7693
OK، رائع كل ما علينا فعله الآن هو بدء الهجوم. كيف سنعرف أي اسم مستخدم صحيح وأيها لا؟ حسنًا، عادةً ما يكون الأمر بسيطًا وسأريك في لحظة كيف يمكننا التعرف عليه، OK؟
انتهت Brute Forcing UserName لدينا. وهذه هي جميع النتائج. مشاهدة المرفق 7696
كما ترون، لكل هذه أسماء المستخدمين حصلنا على حالة، 200 Status code. وليس هناك حقًا أي شيء يظهر هنا يشير إلى أي اسم صحيح. وإذا حتى وجدنا اسم مستخدم صحيح واحد من بين هؤلاء.
ولكن إذا نظرنا بعناية إلى lengthردنا، وهو هنا، هذا الرقم هو 31967 lengthردنا. ستلاحظ أن جميع أسماء المستخدمين لديها نفس length باستثناء هذا الاسم، باستثناء admin. مشاهدة المرفق 7697
عادةً ما يكون هذا إشارة إلى أن هناك شيئًا مختلفًا في هذا النوع من أسماء المستخدمين لأنه أعطى استجابة مختلفة عن بقية هؤلاء.
لذلك الخطوة التالية التي يمكننا اتخاذها، نجد اسم المستخدم بطول مختلف. نقوم بالنقر بزر الماوس الأيمن عليه.
ومن ثم نطلب أو نعرض الرد في المتصفح، ثم ننسخ الرابط.(show response in browser) مشاهدة المرفق 7698
وننتقل إلى هذا الرابط داخل متصفحنا. مشاهدة المرفق 7699
وهنا هو السؤال السري منذ أن حصلنا على السؤال السري.
وهذا يعني أننا وجدنا اسم المستخدم الحالي والسؤال السري هو "ما هو لونك المفضل؟". كما ترون، هذا سؤال سيء حقًا للأمان لأن هناك مثل 10 ألوان
في الوجود ويمكننا بسهولة توجيه Brute Forcing بهذه الطريقة التي قمنا بها في Brute Forcing UserName. لنفعل ذلك هنا. مشاهدة المرفق 7700
سنقوم بالتوجه إلى burpsuite لننتقل إلى بروكسينا ونقوم بعملintercept is on. الآن، سنقوم بكتابة "test" مرة أخرى لأننا لا نهتم حقًا بما نكتب هنا.
كل ما نريده هو إرسال هذا الطلب إلى Intruder، ثم إيقاف اعتراض الحركة ودعونا ننتقل إلى موقعنا.
كل ما نريده هو إرسال هذا الطلب إلى Intruder، إيقاف اعتراض الحركة، ولنتنقل إلىpositions. مشاهدة المرفق 7704مشاهدة المرفق 7705
الآن نذهب إلى Payloads وهنا يمكننا كتابة الألوان يدويًا
على سبيل المثال، لنذهب إلى اللون الأخضر، الأزرق، الأصفر، ولنكتب كل لون يخطر في بالنا لنذهب.
إنه أخضر لننتقل إلى اللون الأسود، الأبيض ودعني أرى البني، ربما وربما نسيت شيئًا، ولكن دعونا نجرب مع هذه الألوان أولاً لذا قمنا بتحميل تسع حمولات أو تسعة ألوان وإذا بدأنا الهجوم. مشاهدة المرفق 7706 مشاهدة المرفق 7710مشاهدة المرفق 7708
نحن نبحث تمامًا عن نفس الشيء ، نحن نبحث عن لون بطول مختلف لكن هنا حصلنا فعلاً على أكثر من طولين، حصلنا على ألوان بهذا length.
حصلنا على ألوان بهذا length هنا، وحصلنا على لون واحد بهذا length ، الذي هو 32019.
وعادةً ما يكون هذا هو الذي تريد التحقق منه أولاً لأن لديه طول فريد، الذي يعني عادةً أنه الصحيح. مشاهدة المرفق 7711
لذلك دعونا نقوم بالنقر بزر الماوس الأيمن على اللون الأخضر ولنعرض الرد في المتصفح وننتقل إلى فايرفوكس ونلصق الرابط. مشاهدة المرفق 7712
وها هو، نجحنا في تخمين اسم المستخدم وكذلك Secret Question لهذا الحساب. وهنا، لدينا اسم مستخدم المشرف، واللون الأخضر.
إذًا، ما هي الثغرة هنا بالضبط؟ حسنًا، هناك شيئان خاطئان في ذلك.
الشيء الأول هو أنه لا يمنعنا بعد عدد معين من الطلبات الغير صحيحة. والشيء الثاني هو أن السؤال الثاني سهل نوعًا ما وتخميناه في ثواني.
الآن، يمكننا أن ننهي هذا التحدي ولدينا اسم المستخدم المشرف واللون الأخضر.وهنا هو كلمة المرور لحساب المشرف حسنًا، رائع. مشاهدة المرفق 7713
لدينا تحدي أو مثال آخر للقيام به من تطبيقنا على الويب. وبعد ذلك، سننتقل إلى Brute Forcing Section في الجزء التالي.
حسنًا، المهمة الأخيرة لنا في هذا القسم هي شيء يسمى "Session Fixation"، ولدينا مثال جيد جدًا على ذلك داخل تطبيقنا على الويب. للانتقال إليه، تأكد من الانتقال إلى "Session Management" ثم انقر على "Session Fixation". مشاهدة المرفق 7722وها هو تحدينا.
المرحلة الأولى، أنت هاكر، joe، وتريد سرقة الجلسة من الضحيه . قم بإرسال بريد إلكتروني محضر إلى الضحية، الذي يبدو وكأنه بريد رسمي من البنك. مشاهدة المرفق 7723
وإليك قالب الرسالة لنرى ما الذي حصلنا عليه. المرحلة الأولى بسيطة كتحديد معرف جلسة مسبق لشخص ما ثم يمكن لهذا الشخص توسيع رابطنا بمعرف جلسة محدد.
سنرسل هذا البريد الإلكتروني المعد إلى الضحية ونضيف Session ID إلى الرابط قم بإرفاق نموذج الرسالة أدناه ستحتاج إلى إضافة Session ID أو اختصار المدينة في الرابط داخل الرابط المعدل ليشمل Session ID.
وقد تم تحضير رسالة نموذجية أدناه حسنًا، وقد تحدثنا بالفعل بشكل موجز عن Session Fixation. إنها بسيطة كتحديد معرف جلسة لشخص ما، ثم يمكن لهذا الشخص توسيع رابطنا بمعرف جلسة محدد.
لنرى ما الذي نحتاج إلى فعله
إنها عبارة عن بريد إلكتروني، وفي هذا البريد الإلكتروني لدينا هذه الجملة "الرجاء استخدام الرابط التالي للتحقق من بيانات حسابك".
وها هو الرابط الذي يحتوي على بعض Parameter لنرى ما يجب علينا فعله.
لدينا هنا بريدًا إلكتروني وفي هذا البريد الإلكتروني لدينا هذه الجملة "الرجاء استخدام الرابط التالي للتحقق من بيانات حسابك".
وها هو الرابط، الذي يكتب فيه "المرور = webisodes/attack" وهنا بعض Parameter.
مشاهدة المرفق 7754
والآن، أول شيء لاحظته هو أن رمز الويب مكتوب بشكل غير صحيح، يجب علينا كتابته بأحرف كبيرة "W" و" G" كما هو هنا. مشاهدة المرفق 7755
والشيء الثاني الأهم هو أننا نضيف Session ID لدينا بالفعل بعض معلمات الرابط وهي مفصولة بهذا الحرف هنا كل ما علينا فعله هو نسخ نفس هذا الحرف وإضافة معلمة أخرى في النهاية.
لذا كل ما علينا فعله هو نسخ نفس هذا الحرف وإضافة Session ID الخاص بنا عند النهاية.
Session ID ببساطة هو معرف في الرابط. مشاهدة المرفق 7756
لدينا بالفعل بعض معلمات الرابط وهي مفصولة بهذا الحرف هنا. مشاهدة المرفق 7758
لذا كل ما علينا فعله هو نسخ نفس هذا الحرف وإضافة معلمة أخرى في النهاية لنقوم بالتحكم.
علينا إضافة هذا الحرف ومن ثم إضافة معلمتنا بكتابة "SID= "، وهنا يمكننا كتابة أي معرف جلسة نريده.
على سبيل المثال، دعونا نذهب مع "555". هذا هو Session ID الذي اخترته.لذا الآن يظهر رابطنا المعدل بشكل ما هكذا.
مشاهدة المرفق 7759
لذلك الآن يظهر رابطنا المعدل بشكل ما هكذا لدينا redcoat/attack ثم هذه الـ٣ معلمات، وآخرها سيكون Session ID.
لدينا WebGoat/attack ثم هذه الـ٣ معلمات، وآخرها سيكون Session ID.
الآن نحن كهاكر نرسل هذا البريد الإلكتروني إلى الضحية. لنرسل البريد الإلكتروني.
مهم هنا ان عملت "555" اي انها string فان كتبتها مقدما number ولم تعمل يمكنك الانتباه من هذا الان مشاهدة المرفق 7760
وقد اكتملت المرحلة الأولى الآن
المرحلة الثانية مشاهدة المرفق 7761
الآن أنت الضحية جين، الذي تلقى البريد الإلكتروني أدناه حسنًا، الآن نحن نتصرف كجين.
إذا قمت بوضع المؤشر فوق الرابط بالفم، سترى أن هناك معرفًا مدرجًا. انقر عليه لترى ماذا يحدث.
حسنًا، لنفترض أن هذا هو البريد الإلكتروني الذي حصلنا عليه وها هو الرابط الذي قمنا بتعديله، لنقول إن الضحية تنقر على هذا الرابط وتتجه إلى صفحة حيث يمكنها تسجيل الدخول الآن هنا. مشاهدة المرفق 7762
لنفترض أن الضحية تنقر على هذا الرابط وتتجه إلى صفحة حيث يمكنها تسجيل الدخول الآن هنا.
لحسن الحظ، حصلنا على اسم المستخدم وكلمة المرور الصحيحين للضحية، والتي هي اسم المستخدم وكلمة المرور هما. مشاهدة المرفق 7763
لنقوم بكتابتهما هنا هذه هي Credentials الصحيحة التي بالطبع لن يعرفها الهاكر، ولكننا نتصرف كهاكر والضحية في هذا التحدي. مشاهدة المرفق 7764
لكننا نتصرف كهاكر والضحية في هذا التحدي ولنقم بتسجيل الدخول.
وقد اكتملت المرحلة الثالثة.
حان الوقت لسرقة الجلسة. استخدم الرابط التالي للوصول إلى "Goatherds Financial" حسنًا، في هذا التحدي، نحن هاكرز.
مشاهدة المرفق 7766
إذا ذهبنا إلى الرابط الآن، نحتاج إلى تسجيل الدخول إلى الجلسة. مشاهدة المرفق 7765
لكننا كهاكر لا نعرف حقًا Credentials الصحيحة. لذا يمكننا كتابة أي شيء هنا ونرى أي نوع من الرابط الذي نحصل عليه فقط بالنظر إلى هذا الرابط هنا.
لقد رأينا بالفعل أن هناك معرف جلسة ضمن الرابط يقول "معرف جلسة غير صالح". مشاهدة المرفق 7767
لنجرب.
سأقوم بتشغيل intercept الآن وسأكتب "test" كاسم مستخدم و"test" ككلمة مرور، وهي بالطبع غير صحيحة. مشاهدة المرفق 7768
لكن كل ما نريد القيام به هو Intercept Request هذا.
نريد تغيير Session ID إلى الرقم الذي أرسلناه إلى الضحية، والذي في حالتي "555" مشاهدة المرفق 7773
لا نحتاج إلى تعديل أي شيء آخر يمكننا ترك التفاصيل الغير صحيحة وإذا قمنا بإعادة هذا الطلب، لنرى. مشاهدة المرفق 7774
لقد قمنا بتسجيل الدخول بنجاح كـ "Jane plane" عند تغيير Session ID الذي أرسلناه إلى الضحية عبر البريد الإلكتروني.
وهذا هو نهاية التحدي كما يقول تهانينا، لقد أكملت هذا الدرس حسناً رائع. مشاهدة المرفق 7775
لقد تناولنا بعض الهجمات الأساسية على التحقق من الهوية المكسورة وفي القسم القادم، سنستمر مع أنواع مختلفة من الهجمات
كانت هذه نظرة عامة على كيفية استخدام تقنية "Session Fixation" في الهجوم الإلكتروني في القسم القادم، سنستكشف أنواعًا مختلفة من الهجمات.
تذكر أن تطبق هذه المهارات بشكل أخلاقي وفقًا للقوانين والأنظمة المعمول بها.
هذه ترجمات مبسطة قدر الإمكان، ومن المهم أن يتم اختيار الترجمة بناءً على السياق الدقيق للشرح لاستخدام المصطلح في مجال الأمان السيبراني والهاكينج.
Broken Authentication
المصادقة المكسورة
عبارة عن ثغرات تسمح للهاكر بكسر آليات المصادقة أو تجاوزها، مما يتيح له الوصول غير المشروع إلى حسابات المستخدمين.
Brute Force
القوة الغاشمة
نوع من أنواع هجمات التجربة والخطأ حيث يتم استخدام تجربة متعددة لتخمين كلمات المرور أو المعلومات السرية.
Session Hijacking
سرقة الجلسة
هجوم يستهدف اختراق أو سرقة معرفات الجلسة للتنكر بها والوصول غير المصرح به.
Session Fixation
تثبيت الجلسة
يشير Session Fixation إلى هجوم يقوم فيه المهاجم بتعيين معرف الجلسة (Session ID) للمستخدم بقيمة معروفة، مما يتيح له اختراق جلسة المستخدم. المهاجم قد يرسل رابطًا معرفًا بالفعل (Session ID) إلى الضحية، وعندما يقوم المستخدم بتسجيل الدخول، يمكن للمهاجم الاستيلاء على جلسة المستخدم.
Weak Encryption
تشفير ضعيف
يشير إلى استخدام أساليب تشفير ضعيفة أو مكسورة، مما يزيد من فرص اختراق البيانات
Cookie Values
قيم الكوكي
تشير إلى المعلومات المخزنة في ملفات الكوكيز التي يتم استخدامها لتتبع جلسات المستخدم
Random and Unpredictable
عشوائية وغير قابلة للتنبؤ
يشير إلى أن القيم أو العمليات يجب أن تكون عشوائية ولا يمكن تنبؤها بسهولة
Credentials
بيانات الاعتماد
يرتبط مصطلح "Credentials" بالمعلومات التي يستخدمها المستخدم للتحقق من هويته عند الوصول إلى نظام أو خدمة ما. تشمل بيانات الاعتماد عادة اسم المستخدم وكلمة المرور، وقد تتضمن أيضًا عناصر أخرى مثل شهادات الأمان أو رموز المصادقة.
TryHackMe
تجربة الاختراق
منصة عبر الإنترنت تقدم تحديات ومهام لاختبار وتحسين مهارات الاختراق والأمان السيبراني.
Burp Suite
برب سويت
أداة اختبار أمان تستخدم لاكتشاف واستغلال ثغرات الأمان في تطبيقات الويب.
VPN (Virtual Private Network)
شبكة افتراضية خاصة
تقنية توفير اتصال آمن وخاص عبر شبكة عامة، مما يسمح للمستخدمين بتصفح الإنترنت بشكل آمن وتأمين اتصالاتهم.
SQL Injection
حقن SQL
تقنية هجومية تهدف إلى استغلال ثغرات في مدخلات قواعد البيانات لتنفيذ أوامر SQL غير مصرح بها.
Logic Flaw
عيب منطقي
خطأ في تصميم البرنامج يؤدي إلى سلوك غير متوقع أو ثغرات أمان ناتجة عن سوء التفاهم في البرمجة.
Flag
علم
رمز أو سلسلة من الأحرف تستخدم كدليل على حل أو إكمال تحدي أو مهمة في مجال الاختراق أو التحقق.
Authentication Mechanism
آلية المصادقة
النظام الذي يحدد كيفية التحقق من هوية المستخدم، مثل كلمات المرور أو الرموز المميزة.
Sanitize Input
تنقية الإدخال
عملية تصفية وتنقية البيانات المدخلة لضمان خلوها من أي بيانات ضارة أو خبيثة.
Real User
مستخدم حقيقي
المستخدم الحقيقي الذي يستخدم التطبيق أو المنصة بطريقة عادية.
Task
مهمة
نشاط أو وظيفة محددة يتعين على المستخدم إكمالها، كما هو الحال في تحديات TryHackMe.
Session
الجلسة.
تتكون الجلسة من سلسلة من المعاملات الشبكية أو طلبات الشبكة المتعلقة بنفس المستخدم لفترة زمنية محددة على موقع ويب.
Cookie Header
رأس ملف تعريف الارتباط
هو جزء من الطلب يحمل معلومات ملف تعريف الارتباط الذي يُستخدم للتحقق والتفاعل بين المتصفح والخادم
Session Management
إدارة الجلسة
يتعلق بكيفية تتبع وإدارة الخادم لجلسات المستخدمين بما في ذلك عمليات تسجيل الدخول والخروج
User ID
معرف المستخدم
رقم فريد يُخصص لكل مستخدم يستخدم لتعريفه بشكل فريد في النظام.
Vulnerability
ثغرة
نقطة ضعف أو نقص في الأمان يمكن أن يستغلها المهاجمون لتنفيذ هجمات.
Intercept
التقاط
القدرة على اعتراض وفحص البيانات أثناء تنقلها بين المتصفح والخادم.
Forward
إعادة توجيه
إرسال البيانات من مصدر إلى وجهة.
Approaches
أساليب
الطرق أو السبل التي يمكن بها تنفيذ أو فهم شيء ما.
Tech (Technology)
تقنية
الأدوات والتقنيات المستخدمة لتحقيق هدف معين.
User Agent
وكيل المستخدم
يحتوي على معلومات حول المتصفح الذي يُرسل الطلب إلى الخادم.
Authentication
المصادقة
عملية التحقق من هوية المستخدم للسماح بالوصول
Authorization
التفويض
عملية تحديد الصلاحيات والإذن للمستخدم.
Tokens
الرموز
توكنات تُستخدم لتحقق هوية المستخدم وتفويض الوصول.
Header
رأس
جزء من الطلب يحتوي على معلومات مثل رموز المصادقة والتفويض.
Storage
تخزين
عملية حفظ المعلومات للاستفادة منها لاحقًا.
Authentication Bypass
تجاوز المصادقة
هو نوع من الهجمات يستهدف تفادي أو تجاوز عمليات المصادقة للوصول إلى نظام أو حساب بدون الصلاحيات المطلوبة.
Login Circumvention
التفاف على عملية تسجيل الدخول
استخدام أساليب لتجاوز عمليات تسجيل الدخول والوصول إلى الموارد بشكل غير مصرح به.
Access Control Evasion
تجنب التحكم في الوصول
محاولة تجاوز أو تفادي أنظمة التحكم في الوصول للدخول إلى موارد غير مصرح بها.
Authentication Exploitation
استغلال عملية المصادقة
استخدام ثغرات أمان في عمليات المصادقة للحصول على وصول غير مصرح به.
Credential Manipulation
تلاعب بالاعتمادات
تعديل المعلومات المستخدمة لتسجيل الدخول (اسم المستخدم وكلمة المرور) للوصول غير المصرح به.
Session Hijacking
اختطاف الجلسة
الاستيلاء على جلسة فعالة للمستخدم للتحكم فيها أو الوصول إليها دون إذن.
Token Forgery
تزوير الرمز
إنشاء أو تعديل رموز المصادقة للوصول غير المصرح به.
Biometric Spoofing
التلاعب بالبيانات الحيوية
استخدام بيانات حيوية مزيفة أو مضللة لتجاوز أنظمة المصادقة البيومترية.
Session Replay
إعادة تشغيل الجلسة
تسجيل وإعادة تشغيل جلسة مصادقة سابقة للوصول غير المصرح به.
Multi-factor Authentication Bypass
تجاوز المصادقة متعددة العوامل
استخدام تقنيات لتفادي عمليات المصادقة التي تعتمد على عوامل متعددة.
Authentication Tokens
رموز المصادقة
معلومات تُستخدم لتحقق هوية المستخدم والوصول بشكل آمن.
Authorization Tokens
رموز التفويض
معلومات تُستخدم لتحديد صلاحيات المستخدم والإذن للوصول إلى موارد محددة.
Field
حقل
جزء من الطلب يحمل معلومات مثل رموز المصادقة والتفويض.
Security Mechanism
آلية الأمان
الأساليب والتقنيات المستخدمة لتأمين النظام.
Information Storage
تخزين المعلومات
العملية التي تتيح حفظ واسترجاع المعلومات.
User Agent Field
حقل وكيل المستخدم
جزء محدد في الطلب يتعامل مع معلومات وكيل المستخدم، ويمكن استخدامه لتخزين رموز المصادقة والتفويض.
Admin Pages
صفحات الإدارة
صفحات مخصصة لإدارة وتحكم في إعدادات ووظائف الموقع أو التطبيق.
Dashboard
لوحة التحكم
واجهة رسومية توفر نظرة عامة على أداء الموقع أو التطبيق، وتسمح بإدارة الأنشطة والإعدادات.
Security Settings
إعدادات الأمان
تكوين الإعدادات التي تتعلق بالأمان وحماية النظام أو التطبيق.
User Management
إدارة المستخدمين
إدارة حسابات المستخدمين بما في ذلك الإنشاء والتعديل والحذف.
Settings
إعدادات
تخصيص إعدادات الموقع أو التطبيق وفقًا لاحتياجات محددة.
System Logs
سجلات النظام
تسجيلات تحتفظ بسجلات الأحداث والأنشطة التي تحدث في النظام.
Audit Trail
مسار المراجعة
تسجيل متكامل للتغييرات والأنشطة التي تتم في النظام، مما يسهل تتبعها وفهمها.
Backup and Recovery
النسخ الاحتياطي واستعادة البيانات
إجراءات لحفظ نسخ احتياطية من البيانات واستعادتها في حالة حدوث خلل.
System Configuration
تكوين النظام
تحديد إعدادات وتكوينات النظام لتلبية متطلبات محددة.
Basic Authorization in HTTP Request:
التصريح الأساسي في طلب HTTP
يتحدث المصطلح عن الطريقة التي يتم بها إرسال وتحقق من التصاريح الأساسية في طلب HTTP.
Man-in-the-Middle Attack
هجوم الرجل في المنتصف
هجوم يتمثل في وجود مهاجم يقوم بالاعتراض على التواصل بين طرفين، دون علمهما، ويمكنه التلاعب بالبيانات.
Base64
قاعدة 64
نظام ترميز يستخدم لتحويل البيانات إلى سلسلة نصية مكونة من مجموعة محددة من الرموز.
Decoder
فك التشفير
أداة أو عملية تستخدم لتحويل البيانات المشفرة إلى شكل قابل للقراءة.
Authorization Header
رأس المصادقة.
جزء من طلب HTTP يحتوي على معلومات المصادقة، مثل اسم المستخدم وكلمة المرور.
Plaintext
النص العادي
البيانات أو النصوص غير المشفرة والتي يمكن قراءتها بوضوح.
Username
اسم المستخدم.
الاسم الذي يستخدمه المستخدم لتسجيل الدخول إلى حسابه.
Password
كلمة المرور.
السر الذي يستخدمه المستخدم لتأكيد هويته والوصول إلى حسابه.
Decoded Value for Authorization Header
القيمة المفككة لرأس المصادقة
القيمة المفككة لرأس المصادقة، حيث يتم فك تشفير القيمة المشفرة في رأس المصادقة باستخدام تشفير Base64.
Intruder
المتسلل
جزء من أداة Burp Suite يُستخدم لتنفيذ هجمات تكرارية أو اختراق.
Payloads
الحمولات
البيانات التي يتم إدخالها أو إرسالها كجزء من هجوم.
Secret Question
السؤال السري
يُستخدم للتحقق من هوية المستخدم أو استرجاع معلومات محسنة.
Proxy
البروكسي
جهاز يعمل كوسيط بين الطلبات والاستجابات بين العميل والخادم.
Response Length
طول الاستجابة
عدد البايتات أو الحروف في الاستجابة التي يتم استلامها من الخادم.
Brute Forcing Section
قسم الهجوم بالتكرار
الجزء الذي يركز على تقنيات الهجوم بالتكرار واختبار كلمات المرور والبيانات.
Intercept Request
اعتراض الطلب:
التقاط طلب قبل إرساله إلى الخادم.
Brute Force Username
هجوم التخمين على اسم المستخدم
هجوم يقوم بتجربة مختلف التكاملات لاسم المستخدم للعثور على الوصول غير المشروع.
Brute Force Colors
تكرار اختبار الألوان
تقنية تجريبية لاختبار مجموعة من الألوان لاكتشاف اللون الصحيح.
Length of Response
طول الاستجابة
عدد البايتات أو الحروف في الاستجابة التي يتم استلامها من الخادم.
Section C
القسم C:
القسم المخصص للهجمات التكرارية واختبار الثغرات.
Session ID
معرف الجلسة
هو رقم فريد يتم توليده عند بدء جلسة المستخدم في تطبيق ويب، يستخدم لتمييز جلسة المستخدم الحالية.
Email Spoofing
تزييف البريد الإلكتروني
هو نوع من هجمات البريد الإلكتروني يقوم فيه الهاكر بتزييف معلومات المرسل ليبدو كمرسل شرعي، بهدف خداع المستلم.
Wordlist
دليل الكلمات
قائمة تحتوي على مجموعة من الكلمات المحتمل استخدامها في هجمات التخمين على كلمات المرور
Intercept Response
اعتراض الاستجابة
يعني توقيف أو تسجيل الاستجابة التي يتلقاها المتصفح من الخادم لتعديلها أو تحليلها.
Directory Traversal
اختراق الدليل
هجوم يستهدف استغلال ثغرات في تصميم البرمجيات للوصول إلى ملفات أو دلائل غير مصرح بها
Show Response in Browser
عرض الاستجابة في المتصفح
فتح الاستجابة الملتقطة في المتصفح لتحليلها أو التفاعل معها
Sessional ID Length
طول معرف الجلسة
يشير إلى عدد الأحرف أو البايتات في معرف الجلسة
Sessional ID Parameter
معرف الجلسة كمعامل
يشير إلى معرف الجلسة كجزء من عنوان الرابط
Altered Link
الرابط المعدل
الرابط الذي تم تعديله أو تغييره من قبل الهاكر لتحقيق أهدافه.
Email Template
نموذج البريد الإلكتروني
هو قالب جاهز للبريد الإلكتروني يستخدم كأساس لإنشاء رسائل بريد إلكتروني بتنسيق محدد.
Payload Length
طول الحمولة
عدد البايتات أو الأحرف في الحمولة أو البيانات المرسلة.
Security Question Bypass
تجاوز السؤال الأمني
التغلب على سؤال الأمان للوصول إلى حساب بدون معرفة الإجابة الصحيحة
Intruder Payloads
حمولات المتسلل
القيم أو البيانات المستخدمة في هجمات التكرار أو التجربة على الأمان
Intercept Off
إيقاف اعتراض
إيقاف وضع الاعتراض للسماح بمرور حركة المرور بشكل طبيعي
Intruder Positions
مواقع المتسلل
المواقع في الطلب التي تُستبدل بقيم متغيرة أثناء هجوم التكرار.
Intruder Clear Fields
تنظيف حقول المتسلل
- الشرح: حذف القيم أو المعلومات المستخدمة في هجوم التكرار
Session ID Bypass
تجاوز معرف الجلسة
تخطي حماية معرف الجلسة للوصول غير المشروع إلى حساب المستخدم.
Victim
الضحية
الشخص أو الجهاز الذي يتعرض للهجوم أو التلاعب.
Hacker
القرصان او المهاجم
شخص يقوم بالتسلل أو الهجوم على أنظمة الحاسوب أو التطبيقات بغرض الوصول غير المشروع
Broken Authentication من خلال اسمها فقط، يمكننا أن نفترض بالفعل نوع الثغرة هذه وماذا تفعل.
وهذه هي واحدة من أكثر الهجمات والثغرات شيوعًا في السنوات السابقة والآن، Broken Authentication غالبًا ما تكون مرتبطة بالجلسات، ولكن دعونا نحدد session أولاً. إذا ما هي؟ ما يمكننا قوله هو أن الجلسات هي سلسلة من Network transactions أو Network requests المرتبطة بالمستخدم نفسه لفترة زمنية معينة. session هو ما يحدد الفرد على صفحة الويب. الآن، لا تختلط بين الجلسات و authentication، على الرغم من أنهما متشابهان إلى حد كبير. إلا أن الجلسات للتفاعل والتغيير استنادًا إلى ما إذا كان المستخدم مصادقًا أم لا، الجلسات هي تُقِيَّم حتى عندما لا يكون المستخدم مصادقًا. فقط أنها تتغير عندما يقوم المستخدم بauthentication على الموقع. حسنًا، ولكن فيما يتعلق broken authentication، ما هي الهجمات التي نملكها، ما يمكننا فعله لاختبار هذه الثغرة؟
إنهم مسؤولون عن جعل كلمات مرورهم قوية قدر الإمكان عن طريق إضافة أرقام ورموز وحروف كبيرة وصغيرة.
ومع ذلك، غالبًا ما لا يكون هذا هو الحال ويختارون كلمة مرور سهلة لها معنى بالنسبة لهم. يمكننا استهداف هذا بوسائل مثل Brute Force لBroken Authentication. ويمكننا استخدامBrute Force لأسماء المستخدمين وكلمات المرور وأسئلة الأمان وأي شيء نحتاجه للوصول إلى حساب.
سنغطي هذه النوع من الهجمات في القسم التالي، ومع ذلك، في هذا القسم،
نحن أكثر هؤلاء مطورو الويب مسؤولون عن إدارة هذه الsession، كيف سيعالج الموقع الويب مختلف الجلسات وما هي parameter التي سيستخدمها؟
عادةً ما يتم تحديد هذه الجلسات بCookie Values أو معلمات نوع أخرى. تُعتبر الجلسات مهمة مثل Credentials للمستخدم. وتعتبر session الهجوم هوية مسروقة قوية كما هو الحال مع Credentials المسروقة.
وهذا هو الوسم الذي سنقوم بتنفيذه بشكل رئيسي، Session Hijacking أو اختراق الSession. هناك العديد من النهج حول كيفية القيام بذلك.
واحدة منها هي هجوم يسمىSession Fixation.
الفكرة الرئيسية وراء هجوم Session Fixation هذا هي أن الهاكر يحدد مُسبقًا ال session-ID الذي سيستخدمه الضحية , على سبيل المثال، يمكن للهاكر إرسال رابطًا للضحية يحتوي على session-ID مُحدَّد مُسبقًا، و قد يتطلب هذا الرابط من الضحية تسجيل الدخول بعد تسجيل الدخول.
يمكن للهاكر بعد ذلك استخدام تلك session-ID لتقمص الضحية بعد تسجيل الدخول. وهناك أيضًا احتمال وجود Weak Encryption أو قيم كوكي ضعيفة.
قد يكون الموقع ينقل كلمات المرور على سبيل المثال بنص نصي أو ب Weak Encryption يمكن بسهولة أن يتم فك تشفيره (يعكس) .هذا أيضًا نقطة هجوم للهاكرز.
يجب أن تكون Credentials مشفرة بأفضل تشفير ممكن لأنها تعتبر من الأمور الرئيسية التي تمنع شخصًا من الوصول غير المصرح به إلى حساب شخص آخر.
الأمر نفسه ينطبق على Cookie Values. و يجب أن تكون Random and Unpredictable.
الآن، سنرى أمثلة مختلفة على نصوص الهجمات Broken Authentication في هذا القسم بينما سنقوم بهجمات Brute Force وما شابه ذلك بشكل أكثر في القسم التالي , لذا استعد ولنبدأ مباشرة في أمثلة عملية.
حسنًا، دعونا نعطي أول مثال أساسي broken authentication، ولهذا، سنبدأ مع منصة TryHackMe.
تأكد من أن كل شيء قد بدأ. لديك Burp Suite، و OPEN-VPN الخاص بك يعمل، وتأكد أيضًا من الحصول على عنوان IP لـ OPEN-VPN. بمجرد أن تفعل كل ذلك، انتقل إلى منصة TryHackMe وانتقل كالمعتاد إلى أساسيات اختراق الويب لدينا , ثم انتقل إلى قائمة owasptop10
ونحن نعلم بالفعل هنا لدينا الكثير من المهام المختلفة، ولكن لهذا المحاضرة، نريد أن ننتقل إلى المهمة السادسة والمهمة السابعة.
الآن، إذا كنت ترغب في القراءة حول Broken Authentication قليلاً، يمكنك قراءة المهمة السادسة ثم الأنتقال إلى الجزء العملي، وهو المهمة السابعة. وهذه المهمة سهلة إلى حد ما , لنلقي نظرة ولنقرأ ما يُطلب منا , ولكن قبل أن نقرأ هذه المهمة، دعونا نبدأ جهازنا
لأننا نعلم بالفعل أنه يأخذ حوالي دقيقة أو أثنتين للبدء بشكل صحيح. أثناء تشغيله، دعونا نقرأ هذه المهمة.
لهذا المثال، سننظر في Logic Flaw داخل Authentication Mechanism.
غالبًا ما يحدث أن المطورين ينسون Sanitize Input الذي يتم تقديمه من قبل المستخدم في كود تطبيقهم، مما يمكن أن يجعلهم عرضة للهجمات مثل SQL Injection. حسنًا، علمنا بالفعل ذلك , لننتقل إلى الأسفل.
لنفهم هذا النوع بمساعدة مثال. لنقول إن هناك مستخدمًا قائمًا بالفعل باسم admin، حسنًا؟
والآن نحن نريد الوصول إلى حساباتهم , لذا ما يمكننا القيام به هو محاولة إعادة التسجيل بهذا الاسم المستخدم، ولكن بتعديل طفيف، سنضيف فراغ ثم نضيف."admin" لاحظ الفراغ في البداية.
حسنًا، الآن، عند إدخال ذلك في حقل اسم المستخدم وإدخال معلومات البريد الإلكتروني الأخرى المطلوبة مثل الهوية أو كلمة المرور وتقديم البيانات، سيتم تسجيل مستخدم جديد فعليًا. ولكن هذا المستخدم سيكون لديه نفس الحقوق كما لو كان المسؤول العادي. يبدو أن هناك مشكلة كبيرة. سيكون بإمكان هذا المستخدم الجديد أيضًا رؤية جميع المحتوى المقدم تحت المستخدم المسؤول , لرؤية ذلك على العمل، انتقل إلى هذا الرابط
لذا دعونا نزوره مباشرة ولنتابع القراءة فقط إلى النهاية وحاول تسجيل مستخدم باسم Daryn، سترى أن المستخدم موجود بالفعل.ثم حاول تسجيل مستخدم بفراغ، Daryn، وسترى أنك الآن قد قمت بتسجيل الدخول وستكون قادرًا على رؤية المحتوى الموجود فقط في حسابهم، والذي في حالتنا هو العلم الذي تحتاج إلى استرجاعه. مشاهدة المرفق 7537 والسؤال الأول : ما هو flag الذي وجدته في حسابهم؟ لنذهب ونلقي نظرة , إذا حاولنا تسجيل الدخول كـ Daryn ومن خلال كتابة Daryn ولنقل test 1234والنقر على تسجيل الدخول.
لذلك دعونا نكتب مسافة ومن ثم نتأكد من وجود مكان لها هنا. وإلا لن يعمل.
وتحت البريد الإلكتروني، يمكننا كتابة أي بريد إلكتروني نريده. كتبت [email protected] ،وهو عنوان بريد إلكتروني غير موجود على الأرجح ونوع كلمة المرور test1234 , وسوف نقوم بتسجيل هذا المستخدم. حسنًا، لقد سجلنا المستخدم بنجاح.
الآن لنجرب تسجيل الدخول كهذا المستخدم ونرى ما إذا كنا سنتمكن من العثور على flag الذي يجب أن يكون متاحًا فقط من حساب الحقيقي لـ Darin.
لذلك قمنا بأداء هجوم Broken Authentication بنجاح حيث قمنا بتسجيل المستخدم الجديد بتعديلات طفيفة، مثل إضافة فراغ في بداية الاسم.
وسمح لنا برؤية العلم الذي يجب أن يكون متاحًا فقط من حساب darren الحقيقي. وسنقوم بتقديم هذا العلم هنا تحت هذا السؤال.
حسنًا، والسؤال الآخر هو محاولة فعل نفس الخدعة ورؤية ما إذا كنت ستتمكن من تسجيل الدخول ك arthur , أعتقد أن حساب الكاتب موجود بالفعل، لذلك يمكننا ببساطة فعل نفس الشيء , ويمكننا التسجيل بإضافة فراغ ثم بعد وبالنسبة للبريد الإلكتروني، يمكننا كتابة أي شيء آخر نريده.
كتبت [email protected] وكلمة المرور ستكون مرور. test12345
وإذا كان هذا النوع من الضعف موجودًا في صفحة حقيقية، فإننا سنكون قادرين بشكل كبير على الوصول إلى أي حساب على تلك الصفحة فقط من خلال معرفة اسم المستخدم الخاص به.ثم نقوم بتحديث طفيف وتسجيل مستخدم جديد وسنكون قادرين على رؤية جميع الأشياء التي يمكن رؤيتها من قبل المستخدم الأصلي.
حسنًا، لكن هذا كان مثالًا بسيطًا جدًا للمصادقة المكسورة، في الجزء القادم، سنعود إلى OWASP BROKEN WEB لدينا ونحاول إلقاء نظرة على هجوم Broken authentication آخر.
لنرى مثالًا مختلفًا على هجوم Broken Authentication، ولتقديم ذلك، سنقوم باستخدام،OWASP BROKEN WEB الخاصة بك ، وانتقل إلى بيانات owasp mutillidae II
وفيما يلي، نريد الانتقال إلى عام 2013 والتنقل إلى Broken Authentication and Session Management هنا. ونريد الأنتقال إلى تجاوز الهوية الخاصة بك ولنذهب إلى تجاوز عبر ملفات تعريف الارتباط وانقر فوق ذلك. مشاهدة المرفق 7551 وهذه هي الصفحة التي نريدها، دعونا نقول هاك. ولكن دعونا نقرأ من خلال هذا أولاً.
تحفظ بعض المواقع بAuthentication Tokens أو Authorization Tokens في User Agent(أي المتصفح, الهاتف , الجهاز اللوحي) وهذا يمنح المستخدم (وXSS) هذا يمنح المستخدم قدرة كبيرة من التحكم في هذه Tokens.
حسنًا، لكن هل نحتاج حقًا إلى قراءة كل هذا؟ إنها تخبرنا أن بعض التكتيكات المختلفة ممكنة، مثل حقن SQL و Brute Force و Admin Pages.
ولكن دعونا نقرأ اسم مهمتنا مرة أخرى، لذلك هو الهوية المكسورة (Broken authentication)،
نريد تجاوز Authentication ونريد القيام بذلك عبر ملفات تعريف الارتباط . حسنًا، لكي نكون قادرين على القيام بذلك، نحتاج إلى حساب على هذه الصفحة، لذا دعونا نقوم بإنشاء حساب بسيط بالإنتقال إلى تسجيل الدخول والتسجيل.
لذلك دعونا نتنقل أو ربما نقوم بتشغيل intercept is on ولنحاول تحديث هذه الصفحة.
لنلقي نظرة على الطلب الذي نحاول إرساله.وإذا ذهبنا للأسفل، إليك قيمة ملف تعريف الإرتباط الخاص بنا.
الآن، يمكننا أن نرى هناك حقولًا متعددة لهذه القيمة، ولكن هناك حقلين بشكل خاص
يجب أن يكونان مثيرين للإهتمام بالنسبة لنا. لدينا اسم المستخدم يساوي test 1.
لدينا User ID، لدينا معرف الجلسة. لكن هذان الأثنان هنا يبدوان مثيرين للإهتمام لنا الأكثر.
الآن نحصل على نفس الطلب، لدينا اسم المستخدم test 1، الذي هو نحن، ولدينا User ID على ما يبدو الخمسة وعشرون هو User ID لحسابنا test 1. لنجرب تغيير ذلك إلى واحد. على سبيل المثال، لنرسل هذا لنعود إلى الصفحة.
وهذه هي ثغرة في Session Management. تتيح لنا تبديل الحسابات عن طريق تغيير User ID في حقل ملف تعريف الارتباط. لذا كان هذا أيضًا مثالًا بسيطًا. وفي الجزء القادمة، سنلقي نظرة أيضًا على أساليب مختلفة لتكنولوجيا كسر Broken Authentication.
لنغطي هجومًا آخر على Broken Authentication، وهذا سيستهدف Authorization ضمن الصفحة داخل الصفحة.
للتوضيح، ننتقل إلى صفحة تسمى OWASP WebGoat إنها هنا.
مشاهدة المرفق 7659 لننقر عليها، تأكد من أن الاعتراض متوقف وسيتم فتح نافذة مثل هذه التي تتطلب منا تسجيل الدخول وتذكر هذه النافذة لأنها ستكون مهمة بالنسبة لنا هنا.مشاهدة المرفق 7660
لذا حصلنا على هذه النافذة المنبثقة ولتسجيل الدخول، يمكننا كتابة "guest" ومن ثم كلمة المرور "guest" أيضًا.
إذاً اسم المستخدم وكلمة المرور هما "guest". انقر على موافق. لنحفظ كلمة المرور وسيتم فتح صفحة مثل هذه من هنا، نريد أن نبدأ ويبنا , جيد.
واسمحوا لي أن أفترض هذا قليلاً، وهنا سنجد هجماتٍ مختلفة يمكننا تنفيذها. Broken Authentication بالطبع، ليست جميع هذه الهجمات لها علاقة . في الواقع، معظمها في الواقع ثغرات مختلفة , ولكن الهجوم الذي نهتم به في الوقت الحالي هو Authentication flaws لذلك انقر على ذلك.
حسنًا، سيتم فتح مهمة مثل هذه، لذا يقول أساسًا أن Authentication تُستخدم لحماية موارد الخادم الجانبية.سيقوم خادم الويب بإرسال طلب للمصادقة مع الاستجابة للمورد المطلوب.سيطلب متصفح الجانب العميل بعد ذلك من المستخدم إدخال اسم مستخدم وكلمة مرور باستخدام صندوق حوار يوفره المتصفح. وهذا هو صندوق الحوار الذي رأيناه عندما قمنا بتسجيل الدخول إلى Web Goat.
سيقوم المتصفح بترميز اسم المستخدم وكلمة المرور باستخدام Base64 وإرسال تلك Credentials إلى الخادم الويب. ثم سيقوم خادم الويب بالتحقق من Credentials وإرجاع المورد المطلوب , إذا كانت Credentials صحيحة، ستكون هذه Credentials حاضرة تلقائيًا لكل صفحة تم حمايتها بهذا الآلية دون الحاجة إلى إدخال Credentials المستخدم مرة أخرى.
إذاً، بشكل أساسي، يقول هذا أن Credentials التي أدخلناها عند تسجيل الدخول إلى Web Goat ستتم معالجتها لكل صفحة طلبتها بدون الحاجة لتسجيل الدخول في كل مرة نتنقل فيها إلى صفحة جديدة.
لكن المشكلة هنا هي أنها مُشفرة بواسطة Base64. لذا هنا سنكون عرضة لضعف التشفير وضعف الترميز. Base64 هو شيء يمكننا فك تشفيره بسهولة. لذا هنا سنكون عرضة لضعف التشفير وضعف الترميز. لهذا دعونا نجرب ذلك لهذا الدرس. هدفك هو فهم التعليمة الأساسية والإجابة على الأسئلة أدناه.
السؤال الاول: ما هو اسم Authorization Header وما هو Decoded Value for Authorization Header؟
حسنًا، لنذهب إلى هنا. قم بتشغيل اعتراض البيانات وهذا أيضًا مثال بسيط.إذا ذهبنا إلى resqust الخاص بنا، نحصل على هذا الحقل المسمى "authorization" ويقول basic وبعد ذلك بعض الحروف العشوائية.
حتى لو لا يهم لأننا في منتصف تحديث الصفحة. ولكن على أي حال، دعونا نلقي نظرة على هذا الجزء الأكثر إثارة الذي يقول basic وبعد ذلك بعض الحروف العشوائية. مشاهدة المرفق 7670 الآن، نحن نعلم بالفعل أن هذا هو Base64 ويمكنك عادةً التعرف على Base64 من خلال هذا العلامة يساوي في النهاية
يقول أيضًا أنها basic Authentication
إذا كنا، على سبيل المثال، قمنا بالاعتراض على هذا الطلب باستخدام شيء مثل هجوم "Man-in-the-Middle " على شبكة لاسلكية، وحصلنا على هذا الطلب من مستخدم آخر يحاول زيارة صفحة داخل Web code. سنكون قادرين على فك تشفير اسم المستخدم وكلمة المرور الخاصة بهم ثم تسجيل الدخول إلى صفحتهم. اسمحوا لي أن أريكم كيف يمكننا فعل ذلك. لقد نسخنا القيمة المُشفرة هنا.ومن ثم ننتقل إلى شيء يُدعى "Decoder" هنا، يمكنك إيقاف الاعتراض والتنقل إلى Decoder.الآن، الكود هو شيء لم نغطيه في الأساسيات، ولكنه سهل الاستخدام تمامًا. كل ما عليك فعله هو لصق ما قمنا به إلى الكود هنا ودعني أرى ما إذا قمت بنسخه حتى. حسنًا، قد نسخته بنجاح وهنا على الجهة اليمنى. نريد أن ننقر على "code as" ونريد أن نقوم بفك تشفيره كـ Base64. دعونا ننقر على ذلك. حسنًا، إليك اسم المستخدم وكلمة المرور لدينا بوضوح، وهذا كل ما استغرقه الأمر بالنسبة لنا للحصول على اسم المستخدم وكلمة المرور لمستخدم معين.
الآن، بالطبع، بالنسبة لنا أن نتمكن من الحصول على هذا طلب HTTP الذي اعترضناه، كما ذكرت،
مشاهدة المرفق 7671 سيكون علينا القيام بشيء مثل هجوم "Man-in-the-Middle ". لكن ذلك سهل حقًا للقيام به. المشكلة هنا هي أن الصفحة تحتوي على Weak Encryption ويمكننا بسهولة عكس تشفير اسم المستخدم وكلمة المرور المشفرة مرة أخرى إلى Plaintext.
والآن يمكننا نسخ هذا لأن هذه هي Decoded Value، حيث هو الجواب على سؤالنا الثاني على الصفحة.
ولنواجهها هنا ونقدمها، وسيقول لنا تهانينا، يمكنك أن تفهم آلية Authentication الأساسية.
الآن عليك أن تحاول جعل Web code يعتمد عليك كاسم مستخدم أساسي وكلمة مرور أساسية. استخدم قائمة Authentication الأساسية، ابدأ من صفحة تسجيل الدخول.كل ما علينا فعله هنا هو ببساطة إغلاق Web code ومن ثم سنعيد المصادقة مع اسم المستخدم وكلمة المرور الأساسية والأساسية. إذاً هذا شيء سهل حقًا للقيام به. لن نتناول ذلك.
فقط في المرة القادمة عند شاشة تسجيل الدخول، يمكنك استخدام اسم المستخدم وكلمة المرور هذه للدخول إلى حساب مختلف.
ويمكنك أيضًا محاولة اعتراض طلب على صفحة معينة ومحاولة تغيير القيمة المشفرة بالأساسي , والأساسي في Authorization Header لتبديل الحساب الذي قد يعمل لك أبدًا تعرف أبدًا. حسنًا، رائع. كانت هذه مثالًا آخر بسيطًا.
وفي الجزء القادم، سنلقي نظرة على مثال على Broken Authentication عندما ينسى المستخدم كلمة المرور.
حسنًا، دعونا نلقي نظرة على مثال آخر على Broken Authenticationو مع نسيان كلمة المرور. الآن، مثالًا على ذلك، سنلقي نظرة على موقع الويب الخاص بنا، سنعرّف أنفسنا على webGoat في الجزء السابق، والآن سنقوم بتحدي آخر باستخدام هذا التطبيق لذا دعونا ننقر فوق OWASP WebGoat جيد.
نعلم أن هناك حسابًا في الخارج ونعلم أيضًا أن هناك حسابًا أساسيًا. ولكن لا يهم لهذه المهمة.
كل ما علينا القيام به هو بدء webroot لدينا هنا والتنقل إلى Authentication flawsثم forgot password
لسوء الحظ، تفشل العديد من تطبيقات الويب في تنفيذ الآلية بشكل صحيح غالبًا ما يكون المعلومات المطلوبة للتحقق من هوية المستخدم بسيطة للغاية لذلك، دعونا نلقي نظرة على الأهداف العامة . يمكن للمستخدمين استرداد كلمة المرور الخاصة بهم إذا أجابوا على السؤال السري بشكل صحيح لا يوجد آلية إغلاق على صفحة نسيان كلمة المرور هذه. حسنًا، وهذا هو الثغرة الأولى في كل مرة يجب أن تقوم الصفحة بحظر حساب أو حظر عنوان IP.
بمجرد أن يكتبوا السؤال الثاني بشكل غير صحيح لثلاث أو خمس مرات. وأيضًا بمجرد كتابتهم لكلمة المرور بشكل غير صحيح لعدة مرات، يجب على الصفحة أن تقوم بحظرك أو تعطيلك لفترة زمنية معينة. وهذا هو ممارسة جيدة ضد هجمات Brute Force التي سنلقي نظرة عليها في القسم التالي.
ولكن الآن، دعونا نحل هذا التحدي. حسنًا، webGoat جيدا استعادة كلمة المرور.
الرجاء إدخال اسم المستخدم OWASP admin إذا لم يكن لديك حساب حقول مطلوبة اسم المستخدم. الآن، نحن نعلم بالفعل بعض أسماء المستخدمين، ولكن لهذا الفيديو سنحاول Brute Forcing UserName
سنستخدم قائمة من أكثر أسماء المستخدمين شيوعًا لرؤية ما إذا كان هناك اسم مستخدم كهذا في هذا التطبيق. إذا كيف سنفعل ذلك؟ حسنًا، الأمر بسيط نوعًا ما ولنكتب أي شيء هنا ، على سبيل المثال، دعونا نكتب "test" وسنقوم بIntercept Request لنقدم هذا الطلب HTTP، وهذا هو الذي نريد استخدامه.
لكن داخل Intruder، يمكننا ضبط Payload وفقًا لمحاولة الحصول على اسم مستخدم. حسنًا، دعونا نقوم بمسح جميع الحقول ويمكن اعتبار هذا هجومًا بريئًا نوعًا ما لأننا سنحاول Brute Forcing اسم المستخدم بالإضافة إلى السؤال السري.
حسنًا، أولاً نريد تحديد حقل اسم المستخدم تم اختياره بالنقر على "ADD". والآن نريد الانتقال إلى "Payload" هنا. مشاهدة المرفق 7682
نريد تحميل قائمة من أكثر أسماء المستخدمين شيوعًا. ولحسن الحظ، عندنا فعلاً بعض wordlists التي يمكن أن تساعدنا في القيام بذلك. كل ما علينا القيام به هو النقر على "load".
wordlist، سأنتقل إلى "metasploit" ومن هنا يمكنني اختيار أفضل قائمة تتناسب مع هذا التحدي. ومن أجل هذا، سأختار "HTTP default users".
نقوم بالنقر المزدوج على ذلك وسيتم تحميل هذه أسماء المستخدمين هنا كقائمة Payload
رائع كل ما علينا فعله الآن هو بدء الهجوم. كيف سنعرف أي اسم مستخدم صحيح وأيها غير صحيح ؟ حسنًا، عادةً ما يكون الأمر بسيطًا وسأريك في لحظة كيف يمكننا التعرف عليه، OK؟ انتهت Brute Forcing UserName لدينا. وهذه هي جميع النتائج.
كما ترون، لكل هذه أسماء المستخدمين حصلنا على حالة، 200 Status code. وليس هناك حقًا أي شيء يظهر هنا يشير إلى أي اسم صحيح. وإذا حتى وجدنا اسم مستخدم صحيح واحد من بين هؤلاء.ولكن إذا نظرنا بعناية إلى lengthردنا، وهو هنا، هذا الرقم هو 31967 lengthردنا. ستلاحظ أن جميع أسماء المستخدمين لديها نفس length باستثناء هذا الاسم، باستثناء admin.
عادةً ما يكون هذا إشارة إلى أن هناك شيئًا مختلفًا في هذا النوع من أسماء المستخدمين لأنه أعطى استجابة مختلفة عن بقية هؤلاء.
لذلك الخطوة التالية التي يمكننا اتخاذها، نجد اسم المستخدم بطول مختلف. نقوم بالنقر بزر الماوس الأيمن عليه ومن ثم نطلب أو نعرض الرد في المتصفح، ثم ننسخ الرابط.(show response in browser)
وهنا هو السؤال السري منذ أن حصلنا على السؤال السري وهذا يعني أننا وجدنا اسم المستخدم الحالي والسؤال السري هو "ما هو لونك المفضل؟". كما ترون، هذا سؤال سيء حقًا للأمان لأن هناك مثل 10 ألوان في الوجود ويمكننا بسهولة توجيه Brute Forcing بهذه الطريقة التي قمنا بها في Brute Forcing UserName. لنفعل ذلك هنا. مشاهدة المرفق 7700
سنقوم بالتوجه إلى burpsuite لننتقل إلى بروكسينا ونقوم بعملintercept is on. الآن، سنقوم بكتابة "test" مرة أخرى لأننا لا نهتم حقًا بما نكتب هنا.
كل ما نريده هو إرسال هذا الطلب إلى Intruder، ثم إيقاف اعتراض الحركة ودعونا ننتقل إلى موقعنا.
الآن نذهب إلى Payloads وهنا يمكننا كتابة الألوان يدويًا على سبيل المثال، لنذهب إلى اللون الأخضر، الأزرق، الأصفر، ولنكتب كل لون يخطر في بالنا لنذهب.
إنه أخضر لننتقل إلى اللون الأسود، الأبيض ودعني أرى البني، ربما وربما نسيت شيئًا، ولكن دعونا نجرب مع هذه الألوان أولاً لذا قمنا بتحميل تسع حمولات أو تسعة ألوان وإذا بدأنا الهجوم. مشاهدة المرفق 7706
نحن نبحث تمامًا عن نفس الشيء ، نحن نبحث عن لون بطول مختلف لكن هنا حصلنا فعلاً على أكثر من طولين، حصلنا على ألوان بهذا length.
حصلنا على ألوان بهذا length هنا، وحصلنا على لون واحد بهذا length ، الذي هو 32019. وعادةً ما يكون هذا هو الذي تريد التحقق منه أولاً لأن لديه طول فريد، الذي يعني عادةً أنه الصحيح.
وها هو، نجحنا في تخمين اسم المستخدم وكذلك Secret Question لهذا الحساب. وهنا، لدينا اسم مستخدم المشرف، واللون الأخضر.
إذًا، ما هي الثغرة هنا بالضبط؟ حسنًا، هناك شيئان خاطئان في ذلك.
الشيء الأول هو أنه لا يمنعنا بعد عدد معين من الطلبات الغير صحيحة , والشيء الثاني هو أن السؤال الثاني سهل نوعًا ما وتخميناه في ثواني.
الآن، يمكننا أن ننهي هذا التحدي ولدينا اسم المستخدم المشرف واللون الأخضر.وهنا هو كلمة المرور لحساب المشرف حسنًا، رائع.
لدينا تحدي أو مثال آخر للقيام به من تطبيقنا على الويب. وبعد ذلك، سننتقل إلى Brute Forcing Section في الجزء التالي.
حسنًا، المهمة الأخيرة لنا في هذا القسم هي شيء يسمى "Session Fixation"، ولدينا مثال جيد جدًا على ذلك داخل تطبيقنا على الويب. للانتقال إليه، تأكد من الانتقال إلى "Session Management" ثم انقر على "Session Fixation".وها هو تحدينا.
وإليك قالب الرسالة لنرى ما الذي حصلنا عليه. المرحلة الأولى بسيطة كتحديد معرف جلسة مسبق لشخص ما ثم يمكن لهذا الشخص توسيع رابطنا بمعرف جلسة محدد.سنرسل هذا البريد الإلكتروني المعد إلى الضحية ونضيف Session ID إلى الرابط قم بإرفاق نموذج الرسالة أدناه ستحتاج إلى إضافة Session ID أو اختصار المدينة في الرابط داخل الرابط المعدل ليشمل Session ID. وقد تم تحضير رسالة نموذجية أدناه حسنًا، وقد تحدثنا بالفعل بشكل موجز عن Session Fixation. إنها بسيطة كتحديد معرف جلسة لشخص ما، ثم يمكن لهذا الشخص توسيع رابطنا بمعرف جلسة محدد . لنرى ما الذي نحتاج إلى فعله
إنها عبارة عن بريد إلكتروني، وفي هذا البريد الإلكتروني لدينا هذه الجملة "الرجاء استخدام الرابط التالي للتحقق من بيانات حسابك".
وها هو الرابط الذي يحتوي على بعض Parameter لنرى ما يجب علينا فعله. لدينا هنا بريدًا إلكتروني وفي هذا البريد الإلكتروني لدينا هذه الجملة "الرجاء استخدام الرابط التالي للتحقق من بيانات حسابك". وها هو الرابط، الذي يكتب فيه "المرور = webisodes/attack" وهنا بعض Parameter.
والشيء الثاني الأهم هو أننا نضيف Session ID لدينا بالفعل بعض معلمات الرابط وهي مفصولة بهذا الحرف هنا كل ما علينا فعله هو نسخ نفس هذا الحرف وإضافة معلمة أخرى في النهاية. لذا كل ما علينا فعله هو نسخ نفس هذا الحرف وإضافة Session ID الخاص بنا عند النهاية.
Session ID ببساطة هو معرف في الرابط.
لذا كل ما علينا فعله هو نسخ نفس هذا الحرف وإضافة معلمة أخرى في النهاية لنقوم بالتحكم.علينا إضافة هذا الحرف ومن ثم إضافة معلمتنا بكتابة "SID= "، وهنا يمكننا كتابة أي معرف جلسة نريده. على سبيل المثال، دعونا نذهب مع "555". هذا هو Session ID الذي اخترته.لذا الآن يظهر رابطنا المعدل بشكل ما هكذا.
لذلك الآن يظهر رابطنا المعدل بشكل ما هكذا لدينا redcoat/attack ثم هذه الـ٣ معلمات، وآخرها سيكون Session ID.
لدينا WebGoat/attack ثم هذه الـ٣ معلمات، وآخرها سيكون Session ID. الآن نحن كهاكر نرسل هذا البريد الإلكتروني إلى الضحية. لنرسل البريد الإلكتروني.
مهم هنا ان عملت "555" اي انها string فان كتبتها مقدما number ولم تعمل يمكنك الانتباه من هذا الان
الآن أنت الضحية جين، الذي تلقى البريد الإلكتروني أدناه حسنًا، الآن نحن نتصرف كجين. إذا قمت بوضع المؤشر فوق الرابط بالفم، سترى أن هناك معرفًا مدرجًا. انقر عليه لترى ماذا يحدث.
حسنًا، لنفترض أن هذا هو البريد الإلكتروني الذي حصلنا عليه وها هو الرابط الذي قمنا بتعديله، لنقول إن الضحية تنقر على هذا الرابط وتتجه إلى صفحة حيث يمكنها تسجيل الدخول الآن هنا.
لنفترض أن الضحية تنقر على هذا الرابط وتتجه إلى صفحة حيث يمكنها تسجيل الدخول الآن هنا.
لحسن الحظ، حصلنا على اسم المستخدم وكلمة المرور الصحيحين للضحية، والتي هي اسم المستخدم وكلمة المرور هما.
لكننا نتصرف كهاكر والضحية في هذا التحدي ولنقم بتسجيل الدخول.
وقد اكتملت المرحلة الثالثة.
حان الوقت لسرقة الجلسة. استخدم الرابط التالي للوصول إلى "Goatherds Financial" حسنًا، في هذا التحدي، نحن هاكرز.
لكننا كهاكر لا نعرف حقًا Credentials الصحيحة. لذا يمكننا كتابة أي شيء هنا ونرى أي نوع من الرابط الذي نحصل عليه فقط بالنظر إلى هذا الرابط هنا.
لقد رأينا بالفعل أن هناك معرف جلسة ضمن الرابط يقول "معرف جلسة غير صالح".
لقد قمنا بتسجيل الدخول بنجاح كـ "Jane plane" عند تغيير Session ID الذي أرسلناه إلى الضحية عبر البريد الإلكتروني.
وهذا هو نهاية التحدي كما يقول تهانينا، لقد أكملت هذا الدرس حسناً رائع.
لقد تناولنا بعض الهجمات الأساسية على التحقق من الهوية المكسورة وفي القسم القادم، سنستمر مع أنواع مختلفة من الهجمات
كانت هذه نظرة عامة على كيفية استخدام تقنية "Session Fixation" في الهجوم الإلكتروني في القسم القادم، سنستكشف أنواعًا مختلفة من الهجمات.
تذكر أن تطبق هذه المهارات بشكل أخلاقي وفقًا للقوانين والأنظمة المعمول بها.
هذه ترجمات مبسطة قدر الإمكان، ومن المهم أن يتم اختيار الترجمة بناءً على السياق الدقيق للشرح لاستخدام المصطلح في مجال الأمان السيبراني والهاكينج.
Broken Authentication
المصادقة المكسورة
عبارة عن ثغرات تسمح للهاكر بكسر آليات المصادقة أو تجاوزها، مما يتيح له الوصول غير المشروع إلى حسابات المستخدمين.
Brute Force
القوة الغاشمة
نوع من أنواع هجمات التجربة والخطأ حيث يتم استخدام تجربة متعددة لتخمين كلمات المرور أو المعلومات السرية.
Session Hijacking
سرقة الجلسة
هجوم يستهدف اختراق أو سرقة معرفات الجلسة للتنكر بها والوصول غير المصرح به.
Session Fixation
تثبيت الجلسة
يشير Session Fixation إلى هجوم يقوم فيه المهاجم بتعيين معرف الجلسة (Session ID) للمستخدم بقيمة معروفة، مما يتيح له اختراق جلسة المستخدم. المهاجم قد يرسل رابطًا معرفًا بالفعل (Session ID) إلى الضحية، وعندما يقوم المستخدم بتسجيل الدخول، يمكن للمهاجم الاستيلاء على جلسة المستخدم.
Weak Encryption
تشفير ضعيف
يشير إلى استخدام أساليب تشفير ضعيفة أو مكسورة، مما يزيد من فرص اختراق البيانات
Cookie Values
قيم الكوكي
تشير إلى المعلومات المخزنة في ملفات الكوكيز التي يتم استخدامها لتتبع جلسات المستخدم
Random and Unpredictable
عشوائية وغير قابلة للتنبؤ
يشير إلى أن القيم أو العمليات يجب أن تكون عشوائية ولا يمكن تنبؤها بسهولة
Credentials
بيانات الاعتماد
يرتبط مصطلح "Credentials" بالمعلومات التي يستخدمها المستخدم للتحقق من هويته عند الوصول إلى نظام أو خدمة ما. تشمل بيانات الاعتماد عادة اسم المستخدم وكلمة المرور، وقد تتضمن أيضًا عناصر أخرى مثل شهادات الأمان أو رموز المصادقة.
TryHackMe
تجربة الاختراق
منصة عبر الإنترنت تقدم تحديات ومهام لاختبار وتحسين مهارات الاختراق والأمان السيبراني.
Burp Suite
برب سويت
أداة اختبار أمان تستخدم لاكتشاف واستغلال ثغرات الأمان في تطبيقات الويب.
VPN (Virtual Private Network)
شبكة افتراضية خاصة
تقنية توفير اتصال آمن وخاص عبر شبكة عامة، مما يسمح للمستخدمين بتصفح الإنترنت بشكل آمن وتأمين اتصالاتهم.
SQL Injection
حقن SQL
تقنية هجومية تهدف إلى استغلال ثغرات في مدخلات قواعد البيانات لتنفيذ أوامر SQL غير مصرح بها.
Logic Flaw
عيب منطقي
خطأ في تصميم البرنامج يؤدي إلى سلوك غير متوقع أو ثغرات أمان ناتجة عن سوء التفاهم في البرمجة.
Flag
علم
رمز أو سلسلة من الأحرف تستخدم كدليل على حل أو إكمال تحدي أو مهمة في مجال الاختراق أو التحقق.
Authentication Mechanism
آلية المصادقة
النظام الذي يحدد كيفية التحقق من هوية المستخدم، مثل كلمات المرور أو الرموز المميزة.
Sanitize Input
تنقية الإدخال
عملية تصفية وتنقية البيانات المدخلة لضمان خلوها من أي بيانات ضارة أو خبيثة.
Real User
مستخدم حقيقي
المستخدم الحقيقي الذي يستخدم التطبيق أو المنصة بطريقة عادية.
Task
مهمة
نشاط أو وظيفة محددة يتعين على المستخدم إكمالها، كما هو الحال في تحديات TryHackMe.
Session
الجلسة.
تتكون الجلسة من سلسلة من المعاملات الشبكية أو طلبات الشبكة المتعلقة بنفس المستخدم لفترة زمنية محددة على موقع ويب.
Cookie Header
رأس ملف تعريف الارتباط
هو جزء من الطلب يحمل معلومات ملف تعريف الارتباط الذي يُستخدم للتحقق والتفاعل بين المتصفح والخادم
Session Management
إدارة الجلسة
يتعلق بكيفية تتبع وإدارة الخادم لجلسات المستخدمين بما في ذلك عمليات تسجيل الدخول والخروج
User ID
معرف المستخدم
رقم فريد يُخصص لكل مستخدم يستخدم لتعريفه بشكل فريد في النظام.
Vulnerability
ثغرة
نقطة ضعف أو نقص في الأمان يمكن أن يستغلها المهاجمون لتنفيذ هجمات.
Intercept
التقاط
القدرة على اعتراض وفحص البيانات أثناء تنقلها بين المتصفح والخادم.
Forward
إعادة توجيه
إرسال البيانات من مصدر إلى وجهة.
Approaches
أساليب
الطرق أو السبل التي يمكن بها تنفيذ أو فهم شيء ما.
Tech (Technology)
تقنية
الأدوات والتقنيات المستخدمة لتحقيق هدف معين.
User Agent
وكيل المستخدم
يحتوي على معلومات حول المتصفح الذي يُرسل الطلب إلى الخادم.
Authentication
المصادقة
عملية التحقق من هوية المستخدم للسماح بالوصول
Authorization
التفويض
عملية تحديد الصلاحيات والإذن للمستخدم.
Tokens
الرموز
توكنات تُستخدم لتحقق هوية المستخدم وتفويض الوصول.
Header
رأس
جزء من الطلب يحتوي على معلومات مثل رموز المصادقة والتفويض.
Storage
تخزين
عملية حفظ المعلومات للاستفادة منها لاحقًا.
Authentication Bypass
تجاوز المصادقة
هو نوع من الهجمات يستهدف تفادي أو تجاوز عمليات المصادقة للوصول إلى نظام أو حساب بدون الصلاحيات المطلوبة.
Login Circumvention
التفاف على عملية تسجيل الدخول
استخدام أساليب لتجاوز عمليات تسجيل الدخول والوصول إلى الموارد بشكل غير مصرح به.
Access Control Evasion
تجنب التحكم في الوصول
محاولة تجاوز أو تفادي أنظمة التحكم في الوصول للدخول إلى موارد غير مصرح بها.
Authentication Exploitation
استغلال عملية المصادقة
استخدام ثغرات أمان في عمليات المصادقة للحصول على وصول غير مصرح به.
Credential Manipulation
تلاعب بالاعتمادات
تعديل المعلومات المستخدمة لتسجيل الدخول (اسم المستخدم وكلمة المرور) للوصول غير المصرح به.
Session Hijacking
اختطاف الجلسة
الاستيلاء على جلسة فعالة للمستخدم للتحكم فيها أو الوصول إليها دون إذن.
Token Forgery
تزوير الرمز
إنشاء أو تعديل رموز المصادقة للوصول غير المصرح به.
Biometric Spoofing
التلاعب بالبيانات الحيوية
استخدام بيانات حيوية مزيفة أو مضللة لتجاوز أنظمة المصادقة البيومترية.
Session Replay
إعادة تشغيل الجلسة
تسجيل وإعادة تشغيل جلسة مصادقة سابقة للوصول غير المصرح به.
Multi-factor Authentication Bypass
تجاوز المصادقة متعددة العوامل
استخدام تقنيات لتفادي عمليات المصادقة التي تعتمد على عوامل متعددة.
Authentication Tokens
رموز المصادقة
معلومات تُستخدم لتحقق هوية المستخدم والوصول بشكل آمن.
Authorization Tokens
رموز التفويض
معلومات تُستخدم لتحديد صلاحيات المستخدم والإذن للوصول إلى موارد محددة.
Field
حقل
جزء من الطلب يحمل معلومات مثل رموز المصادقة والتفويض.
Security Mechanism
آلية الأمان
الأساليب والتقنيات المستخدمة لتأمين النظام.
Information Storage
تخزين المعلومات
العملية التي تتيح حفظ واسترجاع المعلومات.
User Agent Field
حقل وكيل المستخدم
جزء محدد في الطلب يتعامل مع معلومات وكيل المستخدم، ويمكن استخدامه لتخزين رموز المصادقة والتفويض.
Admin Pages
صفحات الإدارة
صفحات مخصصة لإدارة وتحكم في إعدادات ووظائف الموقع أو التطبيق.
Dashboard
لوحة التحكم
واجهة رسومية توفر نظرة عامة على أداء الموقع أو التطبيق، وتسمح بإدارة الأنشطة والإعدادات.
Security Settings
إعدادات الأمان
تكوين الإعدادات التي تتعلق بالأمان وحماية النظام أو التطبيق.
User Management
إدارة المستخدمين
إدارة حسابات المستخدمين بما في ذلك الإنشاء والتعديل والحذف.
Settings
إعدادات
تخصيص إعدادات الموقع أو التطبيق وفقًا لاحتياجات محددة.
System Logs
سجلات النظام
تسجيلات تحتفظ بسجلات الأحداث والأنشطة التي تحدث في النظام.
Audit Trail
مسار المراجعة
تسجيل متكامل للتغييرات والأنشطة التي تتم في النظام، مما يسهل تتبعها وفهمها.
Backup and Recovery
النسخ الاحتياطي واستعادة البيانات
إجراءات لحفظ نسخ احتياطية من البيانات واستعادتها في حالة حدوث خلل.
System Configuration
تكوين النظام
تحديد إعدادات وتكوينات النظام لتلبية متطلبات محددة.
Basic Authorization in HTTP Request:
التصريح الأساسي في طلب HTTP
يتحدث المصطلح عن الطريقة التي يتم بها إرسال وتحقق من التصاريح الأساسية في طلب HTTP.
Man-in-the-Middle Attack
هجوم الرجل في المنتصف
هجوم يتمثل في وجود مهاجم يقوم بالاعتراض على التواصل بين طرفين، دون علمهما، ويمكنه التلاعب بالبيانات.
Base64
قاعدة 64
نظام ترميز يستخدم لتحويل البيانات إلى سلسلة نصية مكونة من مجموعة محددة من الرموز.
Decoder
فك التشفير
أداة أو عملية تستخدم لتحويل البيانات المشفرة إلى شكل قابل للقراءة.
Authorization Header
رأس المصادقة.
جزء من طلب HTTP يحتوي على معلومات المصادقة، مثل اسم المستخدم وكلمة المرور.
Plaintext
النص العادي
البيانات أو النصوص غير المشفرة والتي يمكن قراءتها بوضوح.
Username
اسم المستخدم.
الاسم الذي يستخدمه المستخدم لتسجيل الدخول إلى حسابه.
Password
كلمة المرور.
السر الذي يستخدمه المستخدم لتأكيد هويته والوصول إلى حسابه.
Decoded Value for Authorization Header
القيمة المفككة لرأس المصادقة
القيمة المفككة لرأس المصادقة، حيث يتم فك تشفير القيمة المشفرة في رأس المصادقة باستخدام تشفير Base64.
Intruder
المتسلل
جزء من أداة Burp Suite يُستخدم لتنفيذ هجمات تكرارية أو اختراق.
Payloads
الحمولات
البيانات التي يتم إدخالها أو إرسالها كجزء من هجوم.
Secret Question
السؤال السري
يُستخدم للتحقق من هوية المستخدم أو استرجاع معلومات محسنة.
Proxy
البروكسي
جهاز يعمل كوسيط بين الطلبات والاستجابات بين العميل والخادم.
Response Length
طول الاستجابة
عدد البايتات أو الحروف في الاستجابة التي يتم استلامها من الخادم.
Brute Forcing Section
قسم الهجوم بالتكرار
الجزء الذي يركز على تقنيات الهجوم بالتكرار واختبار كلمات المرور والبيانات.
Intercept Request
اعتراض الطلب:
التقاط طلب قبل إرساله إلى الخادم.
Brute Force Username
هجوم التخمين على اسم المستخدم
هجوم يقوم بتجربة مختلف التكاملات لاسم المستخدم للعثور على الوصول غير المشروع.
Brute Force Colors
تكرار اختبار الألوان
تقنية تجريبية لاختبار مجموعة من الألوان لاكتشاف اللون الصحيح.
Length of Response
طول الاستجابة
عدد البايتات أو الحروف في الاستجابة التي يتم استلامها من الخادم.
Section C
القسم C:
القسم المخصص للهجمات التكرارية واختبار الثغرات.
Session ID
معرف الجلسة
هو رقم فريد يتم توليده عند بدء جلسة المستخدم في تطبيق ويب، يستخدم لتمييز جلسة المستخدم الحالية.
Email Spoofing
تزييف البريد الإلكتروني
هو نوع من هجمات البريد الإلكتروني يقوم فيه الهاكر بتزييف معلومات المرسل ليبدو كمرسل شرعي، بهدف خداع المستلم.
Wordlist
دليل الكلمات
قائمة تحتوي على مجموعة من الكلمات المحتمل استخدامها في هجمات التخمين على كلمات المرور
Intercept Response
اعتراض الاستجابة
يعني توقيف أو تسجيل الاستجابة التي يتلقاها المتصفح من الخادم لتعديلها أو تحليلها.
Directory Traversal
اختراق الدليل
هجوم يستهدف استغلال ثغرات في تصميم البرمجيات للوصول إلى ملفات أو دلائل غير مصرح بها
Show Response in Browser
عرض الاستجابة في المتصفح
فتح الاستجابة الملتقطة في المتصفح لتحليلها أو التفاعل معها
Sessional ID Length
طول معرف الجلسة
يشير إلى عدد الأحرف أو البايتات في معرف الجلسة
Sessional ID Parameter
معرف الجلسة كمعامل
يشير إلى معرف الجلسة كجزء من عنوان الرابط
Altered Link
الرابط المعدل
الرابط الذي تم تعديله أو تغييره من قبل الهاكر لتحقيق أهدافه.
Email Template
نموذج البريد الإلكتروني
هو قالب جاهز للبريد الإلكتروني يستخدم كأساس لإنشاء رسائل بريد إلكتروني بتنسيق محدد.
Payload Length
طول الحمولة
عدد البايتات أو الأحرف في الحمولة أو البيانات المرسلة.
Security Question Bypass
تجاوز السؤال الأمني
التغلب على سؤال الأمان للوصول إلى حساب بدون معرفة الإجابة الصحيحة
Intruder Payloads
حمولات المتسلل
القيم أو البيانات المستخدمة في هجمات التكرار أو التجربة على الأمان
Intercept Off
إيقاف اعتراض
إيقاف وضع الاعتراض للسماح بمرور حركة المرور بشكل طبيعي
Intruder Positions
مواقع المتسلل
المواقع في الطلب التي تُستبدل بقيم متغيرة أثناء هجوم التكرار.
Intruder Clear Fields
تنظيف حقول المتسلل
- الشرح: حذف القيم أو المعلومات المستخدمة في هجوم التكرار
Session ID Bypass
تجاوز معرف الجلسة
تخطي حماية معرف الجلسة للوصول غير المشروع إلى حساب المستخدم.
Victim
الضحية
الشخص أو الجهاز الذي يتعرض للهجوم أو التلاعب.
Hacker
القرصان او المهاجم
شخص يقوم بالتسلل أو الهجوم على أنظمة الحاسوب أو التطبيقات بغرض الوصول غير المشروع
من اجمل الشروحات اللي قرأتها من فترة طويلة
ما شاء الله ابداع × ابداع + تم التقييم
وان شاء الله ننتظر شرحك لباقي الثغرات ياوحش
لك مني مفاجئة قريب إن شاء الله
تقبل مروري ياوحش
من اجمل الشروحات اللي قرأتها من فترة طويلة
ما شاء الله ابداع × ابداع + تم التقييم
وان شاء الله ننتظر شرحك لباقي الثغرات ياوحش
لك مني مفاجئة قريب إن شاء الله
تقبل مروري ياوحش
السلام عليكم ورحمة الله وبركاته، عزيزي الزائر هناك الكثير من خدمات المنتدى مغلقة على الزوّار وذلك تجنباً للمشاكل التقنية مع محركات البحث. يرجى التسجيل في المنتدى كي تحصل على صلاحية الدخول لباقي الاقسام والمستودع.