السبت، 7 سبتمبر 2013

Category Archives: Exploitation XSS



السلام عليكم ورحمة الله وبركاته

من خلال هذا المقدمة سوف أجيب على أول على عدة
اسئله  تخطر لك عند سماع عن هذا نوع من الثغرات لـ أول مره لك
.
س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&#8217;)</script>
——————————————————-
http://site.com/socialshare/save.php?url=”><script>alert(‘XSS&#8217;)</script>
——————————————————-
http://site.com/socialshare/save.php?url=<textarea><script>alert(‘XSS&#8217;)</script



Persistent

وهو النوع الثاني من ثغرات XSS  وتسمى بالثغرات تخزين أو ثغرات الثابتة وهذا أنوع اقوي من نوع الأول

حيث يقوم بكتابة مايكتبه المستخدم الي القاعدة مباشره من دون تحقق من المدخلات .

ولا يختفي عند تحديث الصفحة كما في نوع الأول الذي هو غير ثابت

بل يبقى موجود وعند مرور المستخدمين ( زوار & الأعضاء ) على الصفحة المصابة يظهر لهم الكود المحقون بشكل دائم

صوره  توضيحي :

ليست هناك تعليقات:

إرسال تعليق