السلام عليكم ورحمة الله وبركاته
من خلال هذا المقدمة سوف أجيب على أول على عدة
اسئله تخطر لك عند سماع عن هذا نوع من الثغرات لـ أول مره لك
.س1/ ماهو اسم ثغرات
XSS الحقيقي ؟
اسم XSS هو
ليس اسمها الحقيقي أو اختصار اسمها الحقيقي فان اختصار
اسمها الحقيقي هو CSS إما اسمها الحقيقي هو
Cross-site scripting
وسبب تغير اختصار اسمها الحقيقي وذلك وجود
هذا الاختصار مع لغة أخرى والتي اسمها
Cascading Style Sheets
واختصار هذا الاسم CSS
مما سبب ارتباك للمطورين بسبب تشابه الأسماء
واختلف شي الذي يريده كل مطور <~
مما أدي إلي تغير اختصار اسم Cross-site scripting
إلي XSS
فإذا سمعت إي شخص يقول لقد وجت ثغرة
XSS
فانه يقصد Cross-site scripting
س2 / ما سبب حدوث
Cross-site scripting -> XSS
وتحدث ثغرات XSS
وذلك بسبب عدم التحقق من المدخلات <~
وذلك مما يسمح للمهاجم بادخل اكواد خبيثة
غالبا ماتحتوي على اكواد JavaScript أو
اكواد html أو VBScript أو إي أنواع أخرى
من التعليمات البرمجية الأخرى التي يتم تنفيذها من خلال المتصفح.
صوره توضحيه
هناك 2 من أنواع لمميزة لمعروفة من ضعف XSS حتى الآن
Non-persistent
Persistent
نشوف نوع الاول Non-persistent
ويشار أيضا إلى هذا النوع من ثغرات على أنها ثغرات غير ثابتة XSS وهي من الثغرات الأكثر شيوعا أو أكثر انتشار
هذه الثغرة تظهر عند استخدام البيانات المقدمة من قبل عميل( زائر أو المهاجم ) على شبكة الإنترنت على الفور من قبل خادم من جانب لتوليد صفحة من نتائج لهذا المستخدممن دون التحقق من المدخلات !!
مثل لتوضيح
هذا الكود قمت ببرمجته وهو يطبع مايدخله المستخدم من دون تحقق
<html>
<head>
<title>Team Under Microscope</title>
</head>
<body>
<form method=”POST”>
user-name : <input type=”text” name=”user” value=”user” />
password : <input type=”password” name=”pass” />
<input type=”submit” name=”submit11″>
</form>
</body>
</html>
<?php if(isset ($_POST['submit11'])){
echo “Welcome To :”.$_POST['user'];echo “<br />”;
echo “is password : “.$_POST['pass']; }
?>
مما يسمح للمستخدم بحقن داخل الصفحة اكواد خبيثة
مثال : كم بنسخ الكود الذي برمجته وحفظه بأي اسم وقم باستعراضه من خلال المتصفحكم بكتابة أي شي
سوف تلاحظ انه يقوم بطباعة ماقمت بكتابته
طيب قم بالتالي : ضع الكود التالي
في user-name
<script>alert(“TUM”);</script>
واضغط على submit
ماذا تشاهد .؟
سوف تفتح صفحه جديدة تحتوي على اسم Torment Hacker
طيب راح تسأل ماهو سبب فتح هذا هذا صفحه ؟
انا اقول لك سببها الكود الذي ادرجناه وهو يسمح بفتح صفحه جديد تحتوي على اسم TUM
طيب سوي تحديث لصفحه سوف تشاهد الصفحة أرجعت زى أول كأنه لم يحدث شي
وهذا معنا
Non-persistent إي الغير ثابت
للوهلة الأولى، فإن هذا لا يبدو أن هناك مشكلة خطيرة بحقن الاكواد في صفحه من قبل المستخدمين : | ومع ذلك ،
مع استخدام الهندسة الاجتماعية ، يمكن للمهاجمين إقناع المستخدم ( الضحية ) بفتح URL
الذي يحتوي على الاكواد الخبيثة لتظهر في صفحة النتائج، أو إعطاء مهاجم صلاحيات الوصول الكامل إلي الموقع
من دون علمه !!
مع العلم إن هناك مبرمجين يتجاهلون هذي نوع من الثغرات بأنها غير مهمة وليس لها تأثير
طيب قد تسأل عن كيفية ترقيع أو الحماية من نوع من الثغرات ?
فالترقيع بسيط وسهل سوف استخدام دله
htmlspecialchars
<html>
<head>
<title>Virus11000</title>
</head>
<body>
<form method=”POST”>
user-name : <input type=”text” name=”user” value=”user” />
password : <input type=”password” name=”pass” />
<input type=”submit” name=”submit11″>
</form>
</body>
</html>
<?php
if(isset ($_POST['submit11'])){
echo “WelcomeTo :”.htmlspecialchars($_POST['user']);echo “<br />”;
echo “is password : “.htmlspecialchars($_POST['pass']); } ?>
شوف وين استخدمته بنسبه للكود للي انا برمجته
“WelcomeTo :”.htmlspecialchars($_POST['user']);“is password : “.htmlspecialchars($_POST['pass']);
اعتقد وضحت الفكرة
طيب نشوف اماكن حقنها من خلال الرابط
امثله
http://site.com/socialshare/search.php?search=<<script>alert(‘XSS’)</script>
——————————————————-
http://site.com/socialshare/save.php?url=”><script>alert(‘XSS’)</script>
——————————————————-
http://site.com/socialshare/save.php?url=<textarea><script>alert(‘XSS’)</script
Aucun commentaire:
Enregistrer un commentaire
Remarque : Seul un membre de ce blog est autorisé à enregistrer un commentaire.