مضى على الشبكة و يوم من العطاء.
  • تحذير: يجب على كل روّاد الشبكة تشغيل برامج الاختراق داخل الأنظمة الوهمية وهي بهدف التعلم وحماية الأعضاء والتوعية بها

شرح ثغرة Broken authentication

Ahmad105Ahmad105 is verified member.

./عضو نشيط
.:: كاتب تقني ::.
>:: v1p ::<

السمعة:

Broken Authentication Theory
1706567463848.png


Broken Authentication من خلال اسمها فقط، يمكننا أن نفترض بالفعل نوع الثغرة هذه وماذا تفعل.

وهذه هي واحدة من أكثر الهجمات والثغرات شيوعًا في السنوات السابقة والآن،
Broken Authentication غالبًا ما تكون مرتبطة بالجلسات، ولكن دعونا نحدد session أولاً. إذا ما هي؟ ما يمكننا قوله هو أن الجلسات هي سلسلة من Network transactions أو Network requests المرتبطة بالمستخدم نفسه لفترة زمنية معينة. session هو ما يحدد الفرد على صفحة الويب. الآن، لا تختلط بين الجلسات و authentication، على الرغم من أنهما متشابهان إلى حد كبير.
إلا أن الجلسات للتفاعل والتغيير استنادًا إلى ما إذا كان المستخدم مصادقًا أم لا، الجلسات هي تُقِيَّم حتى عندما لا يكون المستخدم مصادقًا. فقط أنها تتغير عندما يقوم المستخدم بauthentication على الموقع.
حسنًا، ولكن فيما يتعلق broken authentication، ما هي الهجمات التي نملكها، ما يمكننا فعله لاختبار هذه الثغرة؟

1706567737859.png
حسنًا، هناك أنواعٌ مختلفة من الهجمات، ولكن يمكننا تقسيمها إلى مجموعتين مختلفتين :
  1. الهجمات التي يكون المستخدم مسؤولًا عنها.
  2. الهجمات التي يكون المطور مسؤولًا عنها.
1706568103157.png
حسنًا، يأخذ كلا الجانبين مكانًا في جعل هذه الهجمات تعمل، كيف بالضبط؟ حسنًا، يتحمل المستخدمون مسؤولية Credentials الخاصة بهم.
1706576928539.png
إنهم مسؤولون عن جعل كلمات مرورهم قوية قدر الإمكان عن طريق إضافة أرقام ورموز وحروف كبيرة وصغيرة.
ومع ذلك، غالبًا ما لا يكون هذا هو الحال ويختارون كلمة مرور سهلة لها معنى بالنسبة لهم. يمكننا استهداف هذا بوسائل مثل Brute Force لBroken Authentication. ويمكننا استخدامBrute Force لأسماء المستخدمين وكلمات المرور وأسئلة الأمان وأي شيء نحتاجه للوصول إلى حساب.
سنغطي هذه النوع من الهجمات في القسم التالي، ومع ذلك، في هذا القسم،

1706577139141.png
نحن أكثر هؤلاء مطورو الويب مسؤولون عن إدارة هذه الsession، كيف سيعالج الموقع الويب مختلف الجلسات وما هي parameter التي سيستخدمها؟
عادةً ما يتم تحديد هذه الجلسات بCookie Values أو معلمات نوع أخرى. تُعتبر الجلسات مهمة مثل Credentials للمستخدم. وتعتبر session الهجوم هوية مسروقة قوية كما هو الحال مع Credentials المسروقة.

1706577383815.png
وهذا هو الوسم الذي سنقوم بتنفيذه بشكل رئيسي، Session Hijacking أو اختراق الSession. هناك العديد من النهج حول كيفية القيام بذلك.
واحدة منها هي هجوم يسمىSession Fixation.

1706577477995.png
الفكرة الرئيسية وراء هجوم Session Fixation هذا هي أن الهاكر يحدد مُسبقًا ال session-ID الذي سيستخدمه الضحية , على سبيل المثال، يمكن للهاكر إرسال رابطًا للضحية يحتوي على session-ID مُحدَّد مُسبقًا، و قد يتطلب هذا الرابط من الضحية تسجيل الدخول بعد تسجيل الدخول.
يمكن للهاكر بعد ذلك استخدام تلك session-ID لتقمص الضحية بعد تسجيل الدخول. وهناك أيضًا احتمال وجود Weak Encryption أو قيم كوكي ضعيفة.

1706577707485.png
قد يكون الموقع ينقل كلمات المرور على سبيل المثال بنص نصي أو ب Weak Encryption يمكن بسهولة أن يتم فك تشفيره (يعكس) .هذا أيضًا نقطة هجوم للهاكرز.
يجب أن تكون Credentials مشفرة بأفضل تشفير ممكن لأنها تعتبر من الأمور الرئيسية التي تمنع شخصًا من الوصول غير المصرح به إلى حساب شخص آخر.
الأمر نفسه ينطبق على Cookie Values. و يجب أن تكون Random and Unpredictable.
الآن، سنرى أمثلة مختلفة على نصوص الهجمات Broken Authentication في هذا القسم بينما سنقوم بهجمات Brute Force وما شابه ذلك بشكل أكثر في القسم التالي , لذا استعد ولنبدأ مباشرة في أمثلة عملية.


Broken Authentication On TryHackMe


حسنًا، دعونا نعطي أول مثال أساسي broken authentication، ولهذا، سنبدأ مع منصة TryHackMe.
تأكد من أن كل شيء قد بدأ. لديك Burp Suite، و OPEN-VPN الخاص بك يعمل، وتأكد أيضًا من الحصول على عنوان IP لـ OPEN-VPN. بمجرد أن تفعل كل ذلك، انتقل إلى منصة TryHackMe وانتقل كالمعتاد إلى أساسيات اختراق الويب لدينا , ثم انتقل إلى قائمة owasptop10
ونحن نعلم بالفعل هنا لدينا الكثير من المهام المختلفة، ولكن لهذا المحاضرة، نريد أن ننتقل إلى المهمة السادسة والمهمة السابعة.
الآن، إذا كنت ترغب في القراءة حول Broken Authentication قليلاً، يمكنك قراءة المهمة السادسة ثم الأنتقال إلى الجزء العملي، وهو المهمة السابعة. وهذه المهمة سهلة إلى حد ما , لنلقي نظرة ولنقرأ ما يُطلب منا , ولكن قبل أن نقرأ هذه المهمة، دعونا نبدأ جهازنا


1706580734076.png
لأننا نعلم بالفعل أنه يأخذ حوالي دقيقة أو أثنتين للبدء بشكل صحيح. أثناء تشغيله، دعونا نقرأ هذه المهمة.

لهذا المثال، سننظر في Logic Flaw داخل Authentication Mechanism.

غالبًا ما يحدث أن المطورين ينسون Sanitize Input الذي يتم تقديمه من قبل المستخدم في كود تطبيقهم، مما يمكن أن يجعلهم عرضة للهجمات مثل SQL Injection. حسنًا، علمنا بالفعل ذلك , لننتقل إلى الأسفل.
لنفهم هذا النوع بمساعدة مثال. لنقول إن هناك مستخدمًا قائمًا بالفعل باسم admin، حسنًا؟
والآن نحن نريد الوصول إلى حساباتهم , لذا ما يمكننا القيام به هو محاولة إعادة التسجيل بهذا الاسم المستخدم، ولكن بتعديل طفيف، سنضيف فراغ ثم نضيف."admin" لاحظ الفراغ في البداية.
حسنًا، الآن، عند إدخال ذلك في حقل اسم المستخدم وإدخال معلومات البريد الإلكتروني الأخرى المطلوبة مثل الهوية أو كلمة المرور وتقديم البيانات، سيتم تسجيل مستخدم جديد فعليًا. ولكن هذا المستخدم سيكون لديه نفس الحقوق كما لو كان المسؤول العادي. يبدو أن هناك مشكلة كبيرة. سيكون بإمكان هذا المستخدم الجديد أيضًا رؤية جميع المحتوى المقدم تحت المستخدم المسؤول , لرؤية ذلك على العمل، انتقل إلى هذا الرابط

1706581321640.png

لذا دعونا نزوره مباشرة ولنتابع القراءة فقط إلى النهاية وحاول تسجيل مستخدم باسم Daryn، سترى أن المستخدم موجود بالفعل.ثم حاول تسجيل مستخدم بفراغ، Daryn، وسترى أنك الآن قد قمت بتسجيل الدخول وستكون قادرًا على رؤية المحتوى الموجود فقط في حسابهم، والذي في حالتنا هو العلم الذي تحتاج إلى استرجاعه.
1706582701476.png

والسؤال الأول : ما هو flag الذي وجدته في حسابهم؟ لنذهب ونلقي نظرة , إذا حاولنا تسجيل الدخول كـ Daryn ومن خلال كتابة Daryn ولنقل test 1234والنقر على تسجيل الدخول.

1706582846673.png

نحصل على خطأ اسم مستخدم أو كلمة مرور غير صالحة، لذلك دعونا نحاول فعل ما قاله لنا TryHackMe أن نفعله، وهو تسجيل مستخدم بتعديل طفيف.

1706583112497.png
لذلك دعونا نكتب مسافة ومن ثم نتأكد من وجود مكان لها هنا. وإلا لن يعمل.
وتحت البريد الإلكتروني، يمكننا كتابة أي بريد إلكتروني نريده. كتبت [email protected] ،وهو عنوان بريد إلكتروني غير موجود على الأرجح ونوع كلمة المرور test1234 , وسوف نقوم بتسجيل هذا المستخدم. حسنًا، لقد سجلنا المستخدم بنجاح.
الآن لنجرب تسجيل الدخول كهذا المستخدم ونرى ما إذا كنا سنتمكن من العثور على flag الذي يجب أن يكون متاحًا فقط من حساب الحقيقي لـ Darin.


1706586809526.png
لننتقل إلى هنا , اكتب مسافة وبعد ذلك darren. وكلمة السر test1234 ,لنقوم بالنقر على تسجيل الدخول.

1706586898913.png
وهنا هو العلم
1706587029989.png

لذلك قمنا بأداء هجوم Broken Authentication بنجاح حيث قمنا بتسجيل المستخدم الجديد بتعديلات طفيفة، مثل إضافة فراغ في بداية الاسم.
وسمح لنا برؤية العلم الذي يجب أن يكون متاحًا فقط من حساب darren الحقيقي. وسنقوم بتقديم هذا العلم هنا تحت هذا السؤال.

1706587173184.png

كود:
fe86079416a21a3c999fea8874b667
حسنًا، والسؤال الآخر هو محاولة فعل نفس الخدعة ورؤية ما إذا كنت ستتمكن من تسجيل الدخول ك arthur , أعتقد أن حساب الكاتب موجود بالفعل، لذلك يمكننا ببساطة فعل نفس الشيء , ويمكننا التسجيل بإضافة فراغ ثم بعد وبالنسبة للبريد الإلكتروني، يمكننا كتابة أي شيء آخر نريده.
كتبت [email protected] وكلمة المرور ستكون مرور. test12345

فقط لجعلها مختلفة عن الحساب الآخر.

1706587930016.png

الآن لنذهب ونقفل كـ arthur وtest12345.
1706587770073.png
انقر على تسجيل الدخول وهنا نحصل على Flag arthurأيضًا. لقد قمنا بشكل كبير بأداء نفس الشيء لحسابين مختلفين لحساب darren's ولحساب arthur.
1706588526383.png

1706588743377.png
كود:
d9ac0f7db4fda460ac3edeb75d75e16e

وإذا كان هذا النوع من الضعف موجودًا في صفحة حقيقية، فإننا سنكون قادرين بشكل كبير على الوصول إلى أي حساب على تلك الصفحة فقط من خلال معرفة اسم المستخدم الخاص به.ثم نقوم بتحديث طفيف وتسجيل مستخدم جديد وسنكون قادرين على رؤية جميع الأشياء التي يمكن رؤيتها من قبل المستخدم الأصلي.
حسنًا، لكن هذا كان مثالًا بسيطًا جدًا للمصادقة المكسورة، في الجزء القادم، سنعود إلى OWASP BROKEN WEB لدينا ونحاول إلقاء نظرة على هجوم Broken authentication آخر.


Broken Authentication Via Cookie
لنرى مثالًا مختلفًا على هجوم Broken Authentication، ولتقديم ذلك، سنقوم باستخدام،OWASP BROKEN WEB الخاصة بك ، وانتقل إلى بيانات owasp mutillidae II
1706590046147.png
وفيما يلي، نريد الانتقال إلى عام 2013 والتنقل إلى Broken Authentication and Session Management هنا. ونريد الأنتقال إلى تجاوز الهوية الخاصة بك ولنذهب إلى تجاوز عبر ملفات تعريف الارتباط وانقر فوق ذلك.
1706590229394.png

وهذه هي الصفحة التي نريدها، دعونا نقول هاك. ولكن دعونا نقرأ من خلال هذا أولاً.

1706591341030.png

ملفات تعريف الارتباط

تحفظ بعض المواقع بAuthentication Tokens أو Authorization Tokens في User Agent(أي المتصفح, الهاتف , الجهاز اللوحي) وهذا يمنح المستخدم (وXSS) هذا يمنح المستخدم قدرة كبيرة من التحكم في هذه Tokens.
حسنًا، لكن هل نحتاج حقًا إلى قراءة كل هذا؟ إنها تخبرنا أن بعض التكتيكات المختلفة ممكنة، مثل حقن SQL و Brute Force و Admin Pages.
ولكن دعونا نقرأ اسم مهمتنا مرة أخرى، لذلك هو الهوية المكسورة (Broken authentication)،

1706591979088.png

نريد تجاوز Authentication ونريد القيام بذلك عبر ملفات تعريف الارتباط . حسنًا، لكي نكون قادرين على القيام بذلك، نحتاج إلى حساب على هذه الصفحة، لذا دعونا نقوم بإنشاء حساب بسيط بالإنتقال إلى تسجيل الدخول والتسجيل.
1706592059412.png
وليس لدينا حساب، لذلك دعونا نسجل هنا.
1706592576696.png
سنكتب اسم المستخدم، دعونا نكتب اسم المستخدم test1 وكلمة المرور، دعونا نقول test1234.
1706592424275.png
سنؤكد كلمة المرور وليس هناك حاجة للتوقيع.
لذلك دعونا نقوم فقط بإنشاء حساب.ستظهر لك قم بالانتقال login

1706592925847.png
وقم بالانتقال الى هنا
1706635535242.png
وسجل الدخول
1706635637105.png
حسنًا، رائع، دعونا نغلق هذه النافذة وفي الزاوية اليمنى، يجب أن نرى تم تسجيل الدخول كمستخدم test1


1706635814764.png
الآن لنعود إلى صفحتنا ونحاول تجاوز وتغيير الحساب عن طريق تغيير القيمة في حقل ملفات تعريف الإرتباط.
1706636200417.png
لذلك دعونا نتنقل أو ربما نقوم بتشغيل intercept is on ولنحاول تحديث هذه الصفحة.
لنلقي نظرة على الطلب الذي نحاول إرساله.وإذا ذهبنا للأسفل، إليك قيمة ملف تعريف الإرتباط الخاص بنا.
الآن، يمكننا أن نرى هناك حقولًا متعددة لهذه القيمة، ولكن هناك حقلين بشكل خاص

1706643060014.png
يجب أن يكونان مثيرين للإهتمام بالنسبة لنا. لدينا اسم المستخدم يساوي test 1.
لدينا User ID، لدينا معرف الجلسة. لكن هذان الأثنان هنا يبدوان مثيرين للإهتمام لنا الأكثر.

1706643148004.png
لنحاول تغيير اسم المستخدم من test 1 إلى، دعونا نقول، admin، لأن هناك حساب admin بالفعل على الصفحة.
1706643213151.png
وإذا قمنا بإرسال هذا الطلب. ممم، لا يحدث شيء حقًا، نحن لا زلنا مسجلين كمستخدم test 1، لذلك ربما لا يمكننا القيام بذلك بهذه الطريقة.

1706643308399.png

لنجرب مع حقل User ID أولاً. لنقوم بإيقاف الاعتراض، ونشغله مرة أخرى ولنحدث الصفحة.
1706644411870.png
1706644426055.png
1706644485918.png

الآن نحصل على نفس الطلب، لدينا اسم المستخدم test 1، الذي هو نحن، ولدينا User ID على ما يبدو الخمسة وعشرون هو User ID لحسابنا test 1. لنجرب تغيير ذلك إلى واحد. على سبيل المثال، لنرسل هذا لنعود إلى الصفحة.


1706644610390.png
وها هو، نجحنا في تغيير الحساب عن طريق تغيير القيم داخل Cookie Header. الآن يقول تم تسجيل الدخول كمسؤول.
1706644792968.png
ها هو حسابنا. ويمكننا القيام بذلك لأي حساب نريد، إذا قمت بتحديث الصفحة وتغيير User ID من خمسة وعشرين إلى إلى إلى forward
1706645493098.png
الآن، يجب أن نحصل على حساب مختلف مسجل الدخول كأدريان. مدى روعة ذلك؟
1706645507619.png
وهذه هي ثغرة في Session Management. تتيح لنا تبديل الحسابات عن طريق تغيير User ID في حقل ملف تعريف الارتباط. لذا كان هذا أيضًا مثالًا بسيطًا. وفي الجزء القادمة، سنلقي نظرة أيضًا على أساليب مختلفة لتكنولوجيا كسر Broken Authentication.

Basic Authorization in HTTP Request

لنغطي هجومًا آخر على Broken Authentication، وهذا سيستهدف Authorization ضمن الصفحة داخل الصفحة.
للتوضيح، ننتقل إلى صفحة تسمى OWASP WebGoat إنها هنا.


1706645992577.png

لننقر عليها، تأكد من أن الاعتراض متوقف وسيتم فتح نافذة مثل هذه التي تتطلب منا تسجيل الدخول وتذكر هذه النافذة لأنها ستكون مهمة بالنسبة لنا هنا.
1706646179023.png
لذا حصلنا على هذه النافذة المنبثقة ولتسجيل الدخول، يمكننا كتابة "guest" ومن ثم كلمة المرور "guest" أيضًا.
إذاً اسم المستخدم وكلمة المرور هما "guest". انقر على موافق. لنحفظ كلمة المرور وسيتم فتح صفحة مثل هذه من هنا، نريد أن نبدأ ويبنا , جيد.

1706646502670.png

1706646581165.png
واسمحوا لي أن أفترض هذا قليلاً، وهنا سنجد هجماتٍ مختلفة يمكننا تنفيذها. Broken Authentication بالطبع، ليست جميع هذه الهجمات لها علاقة . في الواقع، معظمها في الواقع ثغرات مختلفة , ولكن الهجوم الذي نهتم به في الوقت الحالي هو Authentication flaws لذلك انقر على ذلك.
1706646693963.png
ومن هنا، نريد أن نذهب إلى basic Authentication
1706646774937.png
حسنًا، سيتم فتح مهمة مثل هذه، لذا يقول


1706647123603.png
حسنًا، سيتم فتح مهمة مثل هذه، لذا يقول أساسًا أن Authentication تُستخدم لحماية موارد الخادم الجانبية.سيقوم خادم الويب بإرسال طلب للمصادقة مع الاستجابة للمورد المطلوب.سيطلب متصفح الجانب العميل بعد ذلك من المستخدم إدخال اسم مستخدم وكلمة مرور باستخدام صندوق حوار يوفره المتصفح. وهذا هو صندوق الحوار الذي رأيناه عندما قمنا بتسجيل الدخول إلى Web Goat.
سيقوم المتصفح بترميز اسم المستخدم وكلمة المرور باستخدام Base64 وإرسال تلك Credentials إلى الخادم الويب. ثم سيقوم خادم الويب بالتحقق من Credentials وإرجاع المورد المطلوب , إذا كانت Credentials صحيحة، ستكون هذه Credentials حاضرة تلقائيًا لكل صفحة تم حمايتها بهذا الآلية دون الحاجة إلى إدخال Credentials المستخدم مرة أخرى.
إذاً، بشكل أساسي، يقول هذا أن Credentials التي أدخلناها عند تسجيل الدخول إلى Web Goat ستتم معالجتها لكل صفحة طلبتها بدون الحاجة لتسجيل الدخول في كل مرة نتنقل فيها إلى صفحة جديدة.
لكن المشكلة هنا هي أنها مُشفرة بواسطة Base64. لذا هنا سنكون عرضة لضعف التشفير وضعف الترميز. Base64 هو شيء يمكننا فك تشفيره بسهولة. لذا هنا سنكون عرضة لضعف التشفير وضعف الترميز. لهذا دعونا نجرب ذلك لهذا الدرس. هدفك هو فهم التعليمة الأساسية والإجابة على الأسئلة أدناه.

السؤال الأول: ما هو اسم Authorization Header وما هو Decoded Value for Authorization Header؟

1706647810072.png
حسنًا، لنذهب إلى هنا. قم بتشغيل اعتراض البيانات وهذا أيضًا مثال بسيط.إذا ذهبنا إلى resqust الخاص بنا، نحصل على هذا الحقل المسمى "authorization" ويقول basic وبعد ذلك بعض الحروف العشوائية.
1706648048985.png
الآن، حصلنا على إجابة لسؤالنا الأول , Authorization هو الإجابة على ما هو اسم Authorization Header لذا يمكننا كتابته في authorization.

1706648553870.png

1706648576168.png
حتى لو لا يهم لأننا في منتصف تحديث الصفحة. ولكن على أي حال، دعونا نلقي نظرة على هذا الجزء الأكثر إثارة الذي يقول basic وبعد ذلك بعض الحروف العشوائية.
1706648678623.png

الآن، نحن نعلم بالفعل أن هذا هو Base64 ويمكنك عادةً التعرف على Base64 من خلال هذا العلامة يساوي في النهاية
يقول أيضًا أنها
basic Authentication

إذا كنا، على سبيل المثال، قمنا بالاعتراض على هذا الطلب باستخدام شيء مثل هجوم "Man-in-the-Middle " على شبكة لاسلكية، وحصلنا على هذا الطلب من مستخدم آخر يحاول زيارة صفحة داخل Web code. سنكون قادرين على فك تشفير اسم المستخدم وكلمة المرور الخاصة بهم ثم تسجيل الدخول إلى صفحتهم.
اسمحوا لي أن أريكم كيف يمكننا فعل ذلك. لقد نسخنا القيمة المُشفرة هنا.ومن ثم ننتقل إلى شيء يُدعى "Decoder" هنا، يمكنك إيقاف الاعتراض والتنقل إلى Decoder.الآن، الكود هو شيء لم نغطيه في الأساسيات، ولكنه سهل الاستخدام تمامًا. كل ما عليك فعله هو لصق ما قمنا به إلى الكود هنا ودعني أرى ما إذا قمت بنسخه حتى. حسنًا، قد نسخته بنجاح وهنا على الجهة اليمنى. نريد أن ننقر على "code as" ونريد أن نقوم بفك تشفيره كـ Base64. دعونا ننقر على ذلك. حسنًا، إليك اسم المستخدم وكلمة المرور لدينا بوضوح، وهذا كل ما استغرقه الأمر بالنسبة لنا للحصول على اسم المستخدم وكلمة المرور لمستخدم معين.
1706649087895.png
الآن، بالطبع، بالنسبة لنا أن نتمكن من الحصول على هذا طلب HTTP الذي اعترضناه، كما ذكرت،


1706648848094.png

سيكون علينا القيام بشيء مثل هجوم "Man-in-the-Middle ". لكن ذلك سهل حقًا للقيام به. المشكلة هنا هي أن الصفحة تحتوي على Weak Encryption ويمكننا بسهولة عكس تشفير اسم المستخدم وكلمة المرور المشفرة مرة أخرى إلى Plaintext.
والآن يمكننا نسخ هذا لأن هذه هي Decoded Value، حيث هو الجواب على سؤالنا الثاني على الصفحة.

1706649239230.png
لننسخ هذا لأن هذه هي Decoded Value، حيث أنها الجواب على سؤالنا الثاني على الصفحة.
1706649463909.png


1706649452908.png
ولنواجهها هنا ونقدمها، وسيقول لنا تهانينا، يمكنك أن تفهم آلية Authentication الأساسية.
الآن عليك أن تحاول جعل Web code يعتمد عليك كاسم مستخدم أساسي وكلمة مرور أساسية. استخدم قائمة Authentication الأساسية، ابدأ من صفحة تسجيل الدخول.كل ما علينا فعله هنا هو ببساطة إغلاق Web code ومن ثم سنعيد المصادقة مع اسم المستخدم وكلمة المرور الأساسية والأساسية. إذاً هذا شيء سهل حقًا للقيام به. لن نتناول ذلك.

1706649656625.png
فقط في المرة القادمة عند شاشة تسجيل الدخول، يمكنك استخدام اسم المستخدم وكلمة المرور هذه للدخول إلى حساب مختلف.
ويمكنك أيضًا محاولة اعتراض طلب على صفحة معينة ومحاولة تغيير القيمة المشفرة بالأساسي , والأساسي في Authorization Header لتبديل الحساب الذي قد يعمل لك أبدًا تعرف أبدًا. حسنًا، رائع. كانت هذه مثالًا آخر بسيطًا.
وفي الجزء القادم، سنلقي نظرة على مثال على Broken Authentication عندما ينسى المستخدم كلمة المرور.


Forgot Password Challenge

حسنًا، دعونا نلقي نظرة على مثال آخر على Broken Authenticationو مع نسيان كلمة المرور. الآن، مثالًا على ذلك، سنلقي نظرة على موقع الويب الخاص بنا، سنعرّف أنفسنا على webGoat في الجزء السابق، والآن سنقوم بتحدي آخر باستخدام هذا التطبيق لذا دعونا ننقر فوق OWASP WebGoat جيد.

1706645992577.png
نعلم أن هناك حسابًا في الخارج ونعلم أيضًا أن هناك حسابًا أساسيًا.
1706646502670.png

لنقوم بتسجيل الدخول بواسطة "guest" و"guest" يمكننا تسجيل الدخول بهذا.

1706646179023.png
نعلم أن هناك حسابًا في الخارج ونعلم أيضًا أن هناك حسابًا أساسيًا. ولكن لا يهم لهذه المهمة.
كل ما علينا القيام به هو بدء webroot لدينا هنا والتنقل إلى Authentication flawsثم forgot password

1706651202552.png
الآن، دعونا نقرأ التحدي عبر الويب. تقدم التطبيقات الويب لمستخدميها غالبًا القدرة على استرجاع
1706651345286.png
لسوء الحظ، تفشل العديد من تطبيقات الويب في تنفيذ الآلية بشكل صحيح غالبًا ما يكون المعلومات المطلوبة للتحقق من هوية المستخدم بسيطة للغاية لذلك، دعونا نلقي نظرة على الأهداف العامة . يمكن للمستخدمين استرداد كلمة المرور الخاصة بهم إذا أجابوا على السؤال السري بشكل صحيح لا يوجد آلية إغلاق على صفحة نسيان كلمة المرور هذه. حسنًا، وهذا هو الثغرة الأولى في كل مرة يجب أن تقوم الصفحة بحظر حساب أو حظر عنوان IP.
بمجرد أن يكتبوا السؤال الثاني بشكل غير صحيح لثلاث أو خمس مرات. وأيضًا بمجرد كتابتهم لكلمة المرور بشكل غير صحيح لعدة مرات، يجب على الصفحة أن تقوم بحظرك أو تعطيلك لفترة زمنية معينة. وهذا هو ممارسة جيدة ضد هجمات Brute Force التي سنلقي نظرة عليها في القسم التالي.
ولكن الآن، دعونا نحل هذا التحدي. حسنًا، webGoat جيدا استعادة كلمة المرور.
الرجاء إدخال اسم المستخدم OWASP admin إذا لم يكن لديك حساب حقول مطلوبة اسم المستخدم. الآن، نحن نعلم بالفعل بعض أسماء المستخدمين، ولكن لهذا الجزء سنحاول Brute Forcing UserName
سنستخدم قائمة من أكثر أسماء المستخدمين شيوعًا لرؤية ما إذا كان هناك اسم مستخدم كهذا في هذا التطبيق. إذا كيف سنفعل ذلك؟ حسنًا، الأمر بسيط نوعًا ما ولنكتب أي شيء هنا ، على سبيل المثال، دعونا نكتب "test" وسنقوم بIntercept Request لنقدم هذا الطلب HTTP، وهذا هو الذي نريد استخدامه.

1706651825780.png
كما نرى، لدينا حقل يسمى اسم المستخدم وهذا الحقل نريد أن نرسله إلى Intruder.
1706651885878.png
لنقوم بإيقاف التقاط الطلب، وبالطبع، سنحصل على اسم مستخدم غير صالح لأن حساب الاختبار لا يوجد على هذه الصفحة.
1706651939369.png
لكن داخل Intruder، يمكننا ضبط Payload وفقًا لمحاولة الحصول على اسم مستخدم. حسنًا، دعونا نقوم بمسح جميع الحقول ويمكن اعتبار هذا هجومًا بريئًا نوعًا ما لأننا سنحاول Brute Forcing اسم المستخدم بالإضافة إلى السؤال السري.
حسنًا، أولاً نريد تحديد حقل اسم المستخدم تم اختياره بالنقر على "ADD". والآن نريد الانتقال إلى "Payload" هنا.

1706652144132.png


نريد تحميل قائمة من أكثر أسماء المستخدمين شيوعًا. ولحسن الحظ، عندنا فعلاً بعض wordlists التي يمكن أن تساعدنا في القيام بذلك. كل ما علينا القيام به هو النقر على "load".
1706653356998.png
وتنقل إلى Directory wordlists، فتأكد من الذهاب أولاً إلى هذا large directory، ثم إلى usr

1706653578247.png
1706653614517.png
ثم دعونا ننتقل إلى "share"، ثم دعونا نحاول العثور على Directory of wordlists، الذي هو هنا في قسم
1706653751951.png
1706653848918.png
wordlist، سأنتقل إلى "metasploit" ومن هنا يمكنني اختيار أفضل قائمة تتناسب مع هذا التحدي. ومن أجل هذا، سأختار "HTTP default users".
نقوم بالنقر المزدوج على ذلك وسيتم تحميل هذه أسماء المستخدمين هنا كقائمة Payload

1706654102123.png
1706654161556.png


1706654316620.png
رائع كل ما علينا فعله الآن هو بدء الهجوم. كيف سنعرف أي اسم مستخدم صحيح وأيها غير صحيح ؟ حسنًا، عادةً ما يكون الأمر بسيطًا وسأريك في لحظة كيف يمكننا التعرف عليه، OK؟ انتهت Brute Forcing UserName لدينا. وهذه هي جميع النتائج.
1706656022490.png
كما ترون، لكل هذه أسماء المستخدمين حصلنا على حالة، 200 Status code. وليس هناك حقًا أي شيء يظهر هنا يشير إلى أي اسم صحيح. وإذا حتى وجدنا اسم مستخدم صحيح واحد من بين هؤلاء.ولكن إذا نظرنا بعناية إلى lengthردنا، وهو هنا، هذا الرقم هو 31967 lengthردنا. ستلاحظ أن جميع أسماء المستخدمين لديها نفس length باستثناء هذا الاسم، باستثناء admin.
1706656135957.png
عادةً ما يكون هذا إشارة إلى أن هناك شيئًا مختلفًا في هذا النوع من أسماء المستخدمين لأنه أعطى استجابة مختلفة عن بقية هؤلاء.
لذلك الخطوة التالية التي يمكننا اتخاذها، نجد اسم المستخدم بطول مختلف. نقوم بالنقر بزر الماوس الأيمن عليه ومن ثم نطلب أو نعرض الرد في المتصفح، ثم ننسخ الرابط.(show response in browser)

1706656491978.png
وننتقل إلى هذا الرابط داخل متصفحنا.
1706656643872.png
وهنا هو السؤال السري منذ أن حصلنا على السؤال السري وهذا يعني أننا وجدنا اسم المستخدم الحالي والسؤال السري هو "ما هو لونك المفضل؟". كما ترون، هذا سؤال سيء حقًا للأمان لأن هناك مثل 10 ألوان في الوجود ويمكننا بسهولة توجيه Brute Forcing بهذه الطريقة التي قمنا بها في Brute Forcing UserName. لنفعل ذلك هنا.
مشاهدة المرفق 1706656767001.png
سنقوم بالتوجه إلى burpsuite لننتقل إلى بروكسينا ونقوم بعملintercept is on. الآن، سنقوم بكتابة "test" مرة أخرى لأننا لا نهتم حقًا بما نكتب هنا.
كل ما نريده هو إرسال هذا الطلب إلى Intruder، ثم إيقاف اعتراض الحركة ودعونا ننتقل إلى موقعنا.

1706657440759.png
1706657468727.png
الآن نذهب إلى Payloads وهنا يمكننا كتابة الألوان يدويًا على سبيل المثال، لنذهب إلى اللون الأخضر، الأزرق، الأصفر، ولنكتب كل لون يخطر في بالنا لنذهب.
إنه أخضر لننتقل إلى اللون الأسود، الأبيض ودعني أرى البني، ربما وربما نسيت شيئًا، ولكن دعونا نجرب مع هذه الألوان أولاً لذا قمنا بتحميل تسع حمولات أو تسعة ألوان وإذا بدأنا الهجوم.
مشاهدة المرفق 7706

1706658561579.png
1706658439218.png
نحن نبحث تمامًا عن نفس الشيء ، نحن نبحث عن لون بطول مختلف لكن هنا حصلنا فعلاً على أكثر من طولين، حصلنا على ألوان بهذا length.
حصلنا على ألوان بهذا length هنا، وحصلنا على لون واحد بهذا length ، الذي هو 32019. وعادةً ما يكون هذا هو الذي تريد التحقق منه أولاً لأن لديه طول فريد، الذي يعني عادةً أنه الصحيح.

1706658624603.png
لذلك دعونا نقوم بالنقر بزر الماوس الأيمن على اللون الأخضر ولنعرض الرد في المتصفح وننتقل إلى فايرفوكس ونلصق الرابط.
1706658850533.png
وها هو، نجحنا في تخمين اسم المستخدم وكذلك Secret Question لهذا الحساب. وهنا، لدينا اسم مستخدم المشرف، واللون الأخضر.
إذًا، ما هي الثغرة هنا بالضبط؟ حسنًا، هناك شيئان خاطئان في ذلك.
الشيء الأول هو أنه لا يمنعنا بعد عدد معين من الطلبات الغير صحيحة , والشيء الثاني هو أن السؤال الثاني سهل نوعًا ما وتخميناه في ثواني.
الآن، يمكننا أن ننهي هذا التحدي ولدينا اسم المستخدم المشرف واللون الأخضر.وهنا هو كلمة المرور لحساب المشرف حسنًا، رائع.

1706659064144.png
لدينا تحدي أو مثال آخر للقيام به من تطبيقنا على الويب. وبعد ذلك، سننتقل إلى Brute Forcing Section في الجزء التالي.


Session Fixation Challenge


حسنًا، المهمة الأخيرة لنا في هذا القسم هي شيء يسمى "Session Fixation"، ولدينا مثال جيد جدًا على ذلك داخل تطبيقنا على الويب. للانتقال إليه، تأكد من الانتقال إلى "Session Management" ثم انقر على "Session Fixation".وها هو تحدينا.
1706659591041.png

المرحلة الأولى، أنت هاكر، joe، وتريد سرقة الجلسة من الضحيه . قم بإرسال بريد إلكتروني محضر إلى الضحية، الذي يبدو وكأنه بريد رسمي من البنك.
1706659843436.png
وإليك قالب الرسالة لنرى ما الذي حصلنا عليه. المرحلة الأولى بسيطة كتحديد معرف جلسة مسبق لشخص ما ثم يمكن لهذا الشخص توسيع رابطنا بمعرف جلسة محدد.سنرسل هذا البريد الإلكتروني المعد إلى الضحية ونضيف Session ID إلى الرابط قم بإرفاق نموذج الرسالة أدناه ستحتاج إلى إضافة Session ID أو اختصار المدينة في الرابط داخل الرابط المعدل ليشمل Session ID. وقد تم تحضير رسالة نموذجية أدناه حسنًا، وقد تحدثنا بالفعل بشكل موجز عن Session Fixation. إنها بسيطة كتحديد معرف جلسة لشخص ما، ثم يمكن لهذا الشخص توسيع رابطنا بمعرف جلسة محدد . لنرى ما الذي نحتاج إلى فعله
إنها عبارة عن بريد إلكتروني، وفي هذا البريد الإلكتروني لدينا هذه الجملة "الرجاء استخدام الرابط التالي للتحقق من بيانات حسابك".
وها هو الرابط الذي يحتوي على بعض Parameter لنرى ما يجب علينا فعله. لدينا هنا بريدًا إلكتروني وفي هذا البريد الإلكتروني لدينا هذه الجملة "الرجاء استخدام الرابط التالي للتحقق من بيانات حسابك". وها هو الرابط، الذي يكتب فيه "المرور = webisodes/attack" وهنا بعض Parameter.


1706661575526.png
والآن، أول شيء لاحظته هو أن رمز الويب مكتوب بشكل غير صحيح، يجب علينا كتابته بأحرف كبيرة "W" و" G" كما هو هنا.
1706661705177.png
والشيء الثاني الأهم هو أننا نضيف Session ID لدينا بالفعل بعض معلمات الرابط وهي مفصولة بهذا الحرف هنا كل ما علينا فعله هو نسخ نفس هذا الحرف وإضافة معلمة أخرى في النهاية. لذا كل ما علينا فعله هو نسخ نفس هذا الحرف وإضافة Session ID الخاص بنا عند النهاية.
Session ID ببساطة هو معرف في الرابط.

1706661798867.png
لدينا بالفعل بعض معلمات الرابط وهي مفصولة بهذا الحرف هنا.
1706661885357.png
لذا كل ما علينا فعله هو نسخ نفس هذا الحرف وإضافة معلمة أخرى في النهاية لنقوم بالتحكم.علينا إضافة هذا الحرف ومن ثم إضافة معلمتنا بكتابة "SID= "، وهنا يمكننا كتابة أي معرف جلسة نريده. على سبيل المثال، دعونا نذهب مع "555". هذا هو Session ID الذي اخترته.لذا الآن يظهر رابطنا المعدل بشكل ما هكذا.

1706662160808.png
لذلك الآن يظهر رابطنا المعدل بشكل ما هكذا لدينا redcoat/attack ثم هذه الـ٣ معلمات، وآخرها سيكون Session ID.
لدينا WebGoat/attack ثم هذه الـ٣ معلمات، وآخرها سيكون Session ID. الآن نحن كهاكر نرسل هذا البريد الإلكتروني إلى الضحية. لنرسل البريد الإلكتروني.
مهم هنا ان عملت "555" اي انها string فان كتبتها مقدما number ولم تعمل يمكنك الانتباه من هذا الان

1706662362702.png
وقد اكتملت المرحلة الأولى الآن
المرحلة الثانية

1706662542225.png
الآن أنت الضحية جين، الذي تلقى البريد الإلكتروني أدناه حسنًا، الآن نحن نتصرف كجين. إذا قمت بوضع المؤشر فوق الرابط بالفم، سترى أن هناك معرفًا مدرجًا. انقر عليه لترى ماذا يحدث.
حسنًا، لنفترض أن هذا هو البريد الإلكتروني الذي حصلنا عليه وها هو الرابط الذي قمنا بتعديله، لنقول إن الضحية تنقر على هذا الرابط وتتجه إلى صفحة حيث يمكنها تسجيل الدخول الآن هنا.

1706662626236.png
لنفترض أن الضحية تنقر على هذا الرابط وتتجه إلى صفحة حيث يمكنها تسجيل الدخول الآن هنا.
لحسن الحظ، حصلنا على اسم المستخدم وكلمة المرور الصحيحين للضحية، والتي هي اسم المستخدم وكلمة المرور هما.

1706662902342.png
لنقوم بكتابتهما هنا هذه هي Credentials الصحيحة التي بالطبع لن يعرفها الهاكر، ولكننا نتصرف كهاكر والضحية في هذا التحدي.
1706663006526.png
لكننا نتصرف كهاكر والضحية في هذا التحدي ولنقم بتسجيل الدخول.
وقد اكتملت المرحلة الثالثة.
حان الوقت لسرقة الجلسة. استخدم الرابط التالي للوصول إلى "Goatherds Financial" حسنًا، في هذا التحدي، نحن هاكرز.


1706663263836.png
إذا ذهبنا إلى الرابط الآن، نحتاج إلى تسجيل الدخول إلى الجلسة.
1706663205163.png
لكننا كهاكر لا نعرف حقًا Credentials الصحيحة. لذا يمكننا كتابة أي شيء هنا ونرى أي نوع من الرابط الذي نحصل عليه فقط بالنظر إلى هذا الرابط هنا.
لقد رأينا بالفعل أن هناك معرف جلسة ضمن الرابط يقول "معرف جلسة غير صالح".

1706663481385.png
لنجرب , سأقوم بتشغيل intercept الآن وسأكتب "test" كاسم مستخدم و"test" ككلمة مرور، وهي بالطبع غير صحيحة.
1706663750825.png
لكن كل ما نريد القيام به هو Intercept Request هذا. نريد تغيير Session ID إلى الرقم الذي أرسلناه إلى الضحية، والذي في حالتي "555"
1706664866521.png
لا نحتاج إلى تعديل أي شيء آخر يمكننا ترك التفاصيل الغير صحيحة وإذا قمنا بإعادة هذا الطلب، لنرى.
1706664973070.png
لقد قمنا بتسجيل الدخول بنجاح كـ "Jane plane" عند تغيير Session ID الذي أرسلناه إلى الضحية عبر البريد الإلكتروني.
وهذا هو نهاية التحدي كما يقول تهانينا، لقد أكملت هذا الدرس حسناً رائع.

1706665100711.png

لقد تناولنا بعض الهجمات الأساسية على التحقق من الهوية المكسورة وفي القسم القادم، سنستمر مع أنواع مختلفة من الهجمات
كانت هذه نظرة عامة على كيفية استخدام تقنية "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القرصان او المهاجمشخص يقوم بالتسلل أو الهجوم على أنظمة الحاسوب أو التطبيقات بغرض الوصول غير المشروع

لا أقول النهايه بل أقول البدايه بسم الله توكلت على الله
ويرجى مراجعة المنشور كاملا وتصحيح أخطائه أن كان يوجد @King.Of.Noobs
@STORM
وشكرا https://sh3ll.cloud/xf2/threads/1624/post-5988
المصادر هنا
 

المرفقات

  • 1706583010609.png
    1706583010609.png
    52.4 KB · المشاهدات: 141
  • 1706588757030.png
    1706588757030.png
    6.4 KB · المشاهدات: 142
  • 1706592772254.png
    1706592772254.png
    12.2 KB · المشاهدات: 143
  • 1706592815816.png
    1706592815816.png
    23.6 KB · المشاهدات: 148
  • 1706635589720.png
    1706635589720.png
    2.4 KB · المشاهدات: 143
  • 1706644736999.png
    1706644736999.png
    2.9 KB · المشاهدات: 136
  • 1706645197864.png
    1706645197864.png
    21.8 KB · المشاهدات: 132
  • 1706658497739.png
    1706658497739.png
    18.4 KB · المشاهدات: 142
التعديل الأخير بواسطة المشرف:
بارك الله فيك يا احمد موضوع قيم ومفيد .
نطلب المزيد تحياتي لك
 
ما قلته لك في شرحك السابق أقوله لك الان، مستقبلك باهر إذا استمريت بنفس هذه الطريقة وراح تطلع حاجات رهيبة متميزة جدا عن أي شرح في المنتدى.
ما زلنا ننتظر منك الكثير والكثير من الإبداع، وما نراه الآن بوادر جدا محفزة
تم التقييم
 
مشاهدة المرفق 7514

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

فقط لجعلها مختلفة عن الحساب الاخر.
مشاهدة المرفق 7546

الآن لنذهب ونقفل.
كـ 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
وهذه هي الصفحة التي نريد، دعونا نقول هاك. ولكن دعونا نقرأ من خلال هذا أولاً.

مشاهدة المرفق 7552

ملفات تعريف الارتباط​

تحفظ بعض المواقع ب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، لذلك ربما لا يمكننا القيام بذلك بهذه الطريقة.

مشاهدة المرفق 7649
لنجرب مع حقل User ID أولاً.
لنقوم بإيقاف الاعتراض، ونشغله مرة أخرى ولنحدث الصفحة.
مشاهدة المرفق 7650مشاهدة المرفق 7651مشاهدة المرفق 7652

الآن نحصل على نفس الطلب، لدينا اسم المستخدم 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

مشاهدة المرفق 7687مشاهدة المرفق 7688
ثم دعونا ننتقل إلى "share"، ثم دعونا نحاول العثور على Directory of wordlists، الذي هو هنا في قسم
مشاهدة المرفق 7689مشاهدة المرفق 7690
wordlist، سأنتقل إلى "metasploit" ومن هنا يمكنني اختيار أفضل قائمة تتناسب مع هذا التحدي. ومن أجل هذا، سأختار "HTTP default users".
نقوم بالنقر المزدوج على ذلك وسيتم تحميل هذه أسماء المستخدمين هنا كقائمة Payload
مشاهدة المرفق 7691مشاهدة المرفق 7692

مشاهدة المرفق 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القرصان او المهاجمشخص يقوم بالتسلل أو الهجوم على أنظمة الحاسوب أو التطبيقات بغرض الوصول غير المشروع


ويرجى مراجعة المنشور كاملا وتصحيح اخطائه ان كان يوجد @King.Of.Noobs
@STORM
وشكرا https://sh3ll.cloud/xf2/threads/1624/post-5988
المصادر هنا
مبدع احمد 💝🌼
 
مشاهدة المرفق 7514

Broken Authentication من خلال اسمها فقط، يمكننا أن نفترض بالفعل نوع الثغرة هذه وماذا تفعل.

وهذه هي واحدة من أكثر الهجمات والثغرات شيوعًا في السنوات السابقة والآن،
Broken Authentication غالبًا ما تكون مرتبطة بالجلسات، ولكن دعونا نحدد session أولاً. إذا ما هي؟ ما يمكننا قوله هو أن الجلسات هي سلسلة من Network transactions أو Network requests المرتبطة بالمستخدم نفسه لفترة زمنية معينة. session هو ما يحدد الفرد على صفحة الويب. الآن، لا تختلط بين الجلسات و authentication، على الرغم من أنهما متشابهان إلى حد كبير.
إلا أن الجلسات للتفاعل والتغيير استنادًا إلى ما إذا كان المستخدم مصادقًا أم لا، الجلسات هي تُقِيَّم حتى عندما لا يكون المستخدم مصادقًا. فقط أنها تتغير عندما يقوم المستخدم بauthentication على الموقع.
حسنًا، ولكن فيما يتعلق broken authentication، ما هي الهجمات التي نملكها، ما يمكننا فعله لاختبار هذه الثغرة؟

حسنًا، هناك أنواعٌ مختلفة من الهجمات، ولكن يمكننا تقسيمها إلى مجموعتين مختلفتين :
  1. الهجمات التي يكون المستخدم مسؤولًا عنها.
  2. الهجمات التي يكون المطور مسؤولًا عنها.
حسنًا، يأخذ كلا الجانبين مكانًا في جعل هذه الهجمات تعمل، كيف بالضبط؟ حسنًا، يتحمل المستخدمون مسؤولية 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، وسترى أنك الآن قد قمت بتسجيل الدخول وستكون قادرًا على رؤية المحتوى الموجود فقط في حسابهم، والذي في حالتنا هو العلم الذي تحتاج إلى استرجاعه.
مشاهدة المرفق 7537
والسؤال الأول : ما هو 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 هنا. ونريد الأنتقال إلى تجاوز الهوية الخاصة بك ولنذهب إلى تجاوز عبر ملفات تعريف الارتباط وانقر فوق ذلك.
مشاهدة المرفق 7551
وهذه هي الصفحة التي نريدها، دعونا نقول هاك. ولكن دعونا نقرأ من خلال هذا أولاً.

ملفات تعريف الارتباط

تحفظ بعض المواقع ب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، لذلك ربما لا يمكننا القيام بذلك بهذه الطريقة.

مشاهدة المرفق 7649
لنجرب مع حقل 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 إنها هنا.


مشاهدة المرفق 7659
لننقر عليها، تأكد من أن الاعتراض متوقف وسيتم فتح نافذة مثل هذه التي تتطلب منا تسجيل الدخول وتذكر هذه النافذة لأنها ستكون مهمة بالنسبة لنا هنا.مشاهدة المرفق 7660
لذا حصلنا على هذه النافذة المنبثقة ولتسجيل الدخول، يمكننا كتابة "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 وبعد ذلك بعض الحروف العشوائية.
مشاهدة المرفق 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، حيث هو الجواب على سؤالنا الثاني على الصفحة.

لننسخ هذا لأن هذه هي 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" هنا.

مشاهدة المرفق 7682

نريد تحميل قائمة من أكثر أسماء المستخدمين شيوعًا. ولحسن الحظ، عندنا فعلاً بعض 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. لنفعل ذلك هنا.
مشاهدة المرفق 7700
سنقوم بالتوجه إلى 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" في الهجوم الإلكتروني في القسم القادم، سنستكشف أنواعًا مختلفة من الهجمات.
تذكر أن تطبق هذه المهارات بشكل أخلاقي وفقًا للقوانين والأنظمة المعمول بها.
هذه ترجمات مبسطة قدر الإمكان، ومن المهم أن يتم اختيار الترجمة بناءً على السياق الدقيق للشرح لاستخدام المصطلح في مجال الأمان السيبراني والهاكينج.



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القرصان او المهاجمشخص يقوم بالتسلل أو الهجوم على أنظمة الحاسوب أو التطبيقات بغرض الوصول غير المشروع


ويرجى مراجعة المنشور كاملا وتصحيح أخطائه أن كان يوجد @King.Of.Noobs
@STORM
وشكرا https://sh3ll.cloud/xf2/threads/1624/post-5988
المصادر هنا
من اجمل الشروحات اللي قرأتها من فترة طويلة
ما شاء الله ابداع × ابداع + تم التقييم
وان شاء الله ننتظر شرحك لباقي الثغرات ياوحش
لك مني مفاجئة قريب إن شاء الله
تقبل مروري ياوحش
 
من اجمل الشروحات اللي قرأتها من فترة طويلة
ما شاء الله ابداع × ابداع + تم التقييم
وان شاء الله ننتظر شرحك لباقي الثغرات ياوحش
لك مني مفاجئة قريب إن شاء الله
تقبل مروري ياوحش
خير ان اشاء الله
وياريت تكون شرح لكتب لان الكتب شئ عظيم في المجال ال احنا فيه
 
  • Love
التفاعلات: STORM
الله يعطيك الف عافيه أخوي شرح متعوب عليه (y)
 

آخر المشاركات

فانوس

رمضان
عودة
أعلى