ahmdsat
ahmdsat
عضو شرف
المساهمات :
42
النقاط :
82
التقيم :
1
الاوسمة :
كيف تحمي موقعك من ثغرة XSS Crown_gold

بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته
صباح-مساء الخير على الجميع
 

في هذا الدرس سنتحدث عن:-


  • ما هي ثغرة XSS
  • انواع ثغرة XSS
  • اضرار الثغرة
  • الحماية من الثغرة
  • تطبيق عملي

[size]

ماهي ثغرة XSS:

[/size]
البرمجة عبر المواقع / هجوم حقن الشيفرة المصدريّة عبر موقع وسيط (بالإنجليزية: (Cross-site scripting (XSS) هي أحد أنواع الهجوم التي يتعرض لها الأنظمة الحاسوبية، ونجدها خصوصاً في تطبيقات الإنترنت عبر ما يسمى برمجة بالحقن، التي يلجأ فيها بعض مستخدمي الإنترنت المخربين لإدخال بعض الجمل البرمجية للصفحات التي يستعرضها الآخرون.
[size]
wikipedia

انواع ثغرة XSS:

[/size]

  • Reflected
  • stored
  • DOM-based

[size]

اضرار الثغرة:

[/size]
تعتمد ثغرة XSS على استغلال المدخلات التي يتم ادخالها المهاجم وتكون بالغالب مبرمجه بـ لغة Javascript أو html حيث يتمكن المهاجم من سرقة "" لأنتحال شخصيتك في الموقع المستهدف أو تحويلك الى صفحة اخرى مشابهه للموقع المستهدف كـ صفحة مزورة يتمكن من خلالها سرقة حسابات المستخدمين أو تحويل المستخدمين لتحميل برمجيات خبيثه كـ برمجيات تجسسيه او فدية
[size]

الحماية من الثغرة:

المتضررين من الغثره هم المستخدم والمبرمج
[/size]

  • المستخدم



لابد على المستخدم ان يتسخدم اخر اصدار من المتصفح وايضا استخدام اضافه NoScript وعدم الدخول على الروابط القادمه من طرف مجهول


  • المبرمج



لابد على المبرمج التاكد من صحه مدخلاته وخلوها من الاخطاء التي تمكن المهاجم من استغلال ثغره XSS ويقوم بفلتره مدخلاته
[size]

تطبيق عملي:

هنا لدي كود بسيط مهمته اخذ قيمة name من المدخلات وطباعتها بالصفحه وهنا سنطبق استغلال الغثره وكيف نحمي المدخلات.
[/size]
الكود:
<html>
<head><title>0xAbdullah LAB | XSS</title></head>
<body>
<form action="" method="post">
<input type="text" name="name" value="" />
<input type="submit" name="submit" value="Submit" />
</form>

<?php
 if (isset($_POST['submit'])) {
 $name= $_POST['name'];
 echo "Welcome $name";
}
?>

</body>
<html>
[size]
 
على سبيل المثال ساقوم بأدخال اسمي ومن ثم سيقوم بطباعته كتالي: Welcome Abdullah
[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذه الصورة]
ولكن ماذا لو قمت ارسال كود html هل سيقوم بطباعته؟ الاجابه نعم بكل تاكيد بسبب أن المدخلات لم يتم فلترتها سياخذ المدخل من قبل المهاجم وطباعته مثل ماتم ارساله!
[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذه الصورة]
الان سنقوم بـتجربه كود Javascript مهمته هو تحويلنا الى موقع اخر
[/size]
الكود:
<script> document.location = 'https://3alam.pro';</script>
[size]
[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذه الصورة]
 
الان نريد ان نقوم بفلترة المدخل لدينا لكي يتم منع استغلال الثغرة وذلك يتم عن طريق استخدام داله بأسم (strip_tags)  مهمة الدالة هي حذف اكواد html وطباعه النص
[/size]
الكود:
<html>
<head><title>0xAbdullah LAB | XSS</title></head>
<body>
<form action="" method="post">
<input type="text" name="name" value="" />
<input type="submit" name="submit" value="Submit" />
</form>

<?php
 if (isset($_POST['submit'])) {
 $name= $_POST['name'];
 echo strip_tags("Welcome $name");
}
?>

</body>
<html>
[size]
قمنا بوضع الدالة قبل عملية الطباعه, ليتم فلترة المدخلات من المتغير "name" ومن ثم طباعتها. الان نعيد اختبار المدخلات لدينا بمثل ما فعلنا سابقاً .
[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذه الصورة]
كما نلاحظ تم فتلرة المدخلات وترقيع الثغرة بهذه السهولة
النهاية: اتمنى الشرح كان واضح للجميع وكود أمن للجميع 3> إن أحسنت فمن الله، وإن أسأت أو أخطأت فمن نفسي والشيطان[/size]
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى