Programming security "PHP" XSS :)

السلام عليكم


الموضوع واضح من عنوانه , واكيد اغلب الهاكرز يعرف ما هي ثغرات كروس سايت سكربتنك
ويرمز لها بأختصار
XSS
سوف اعطي نبذة بسيطة عن الثغرة , كروس سايت سكربتنك وهي اختصار لها
XSS وهو هجوم خطير جدا لكن اغلب الاشخاص يتجاهلها
الثغرة تسمح بسرعة الكوكيز التي تحتوي على كلمات المرور وغيرها
يسمح للمهاجم بسرعة الفيزا كارت او غيره من الحسابات
وحتى المواقع مصابة بها , وابسط مثال على المواقع المشهور هوة موقع هوتميل دوت كوم
تقدر ان تخترق حسابات معينة الخ….

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


GET_$
echo “<a href=’http://www.xx.com/news.php?id=&#8221;.$_GET[‘id’].”> News </a>”;

النك يتكون هكذا للملف
http://127.0.0.1/xss.php?id=1
والكود الاساسي للصفحة الاتش تي ام ال بهذا الشكل
<a href=’http://www.xx.com/news.php?id=1′&gt; News </a>

لكن ركز لو كان النك بهذا الشكل
http://127.0.0.1/xss.php?id=1&#8242;; OnMouseOver=’alert(1)’;

يكون الكود الاساسي للصفحة
<a href=’http://www.xx.com/news.php?id=1&#8242; OnMouseOver=’alert(1);’> News </a>

ويضهر مربع به رسالة تحتوي على رقم 1 كما وضعنا في النك بين القوسين رقم 1

هذا مثال بسيط عن الهجمة لا اريد ان اشرح الثغرة لان شرحنا يتركز على الحماية ليس الاختراق

اما طريقة ترقيع الثغرة عن طريق الكود الموجود امامك من خلال دالة
intval()

مع هذا المتغير  الذي تعد قيمة رقيمة للمتغير
echo “<a href=’http://www.site.com/news.php?id=&#8221;.intval($_GET[‘id’]).”‘> News </a>”;

وارجو الانتباه من الوقوع في نفس الخطأ
هناك طرق اخرى للهجوم عن طريق اكس اس اس . هناك امور تشفير للكواد وامور اضافة اكواد تمويه للضحية الخ
وتخيل انك تتعامل مع متغيرات نصية وليست ارقام , لا تستطيع استعمال دالة
intval() مع هذا المتغير

والحل بسيط وهوة بعض الدوال المتوفرة في لغة برمجة بي اتش بي مثل
htmlspecialchars
وهناك بعض الدوال التي يجب عليك كتابتها بمساعدة المعايير القياسية التي تتاكد من عدم مرور بعض الاوامر الخطرة
الجافا سكربت اكشنز لها … وسوف اضع لكم هذا الدوال البسيط
// Devil-00 REGUnXSS PHP Function
function RegUnXSS($text){
if(preg_match(‘/OnMouseOver=/i’,$text)){
echo ‘XSS Stop ‘;
exit();
}elseif(preg_match(‘/OnMouseClick=/i’,$text)){
echo ‘XSS Stop !’;
exit();
}
}
هذه دالة تريك طريقة التعامل مع المتغيرات النصية ,, حيث ان وجدة جملة
OnMouseOver=
بالجملة توقف عمل البرنامج وهذا الكود التالي لتجربة عمل دالة
// Devil-00 REGUnXSS PHP Function
function RegUnXSS($text){
if(preg_match(‘/OnMouseOver=/i’,$text)){
echo “XSS Stop !”;
exit();
}elseif(preg_match(‘/OnMouseClick=/i’,$text)){
echo “XSS Stop !”;
exit();
}
}
echo “<a href=’http://www.site.com/news.php?id=&#8221;.RegUnXSS($_GET[‘id’]).”‘> News </a>”;

لتوقف جميع الاكس اس اس مع
OnMouseOver & OnMouseClick Actions
حتى تبين الطريقة اكتب دالتك الخاصة

وان شاء الله في ايام القادمة ادرج بعض التدوينات لترقيع بعض الثغرات الخاصة بالابلكيشن ويب الاخرى

أضف تعليق