A Study in PHP Vulnerabilities - XSS

بسم الله الرحمن الرحيم

اللهم صل وسلم على سيدنا محمد وعلى آله وصحبه اجمعين

اللهم علمنا ماينفعنا وانفعنا بما علمتنا انك انت العليم الحكيم

اليوم درسنا عن ثغرات

#Cross-Site Scripting

 

النوع هذا يعتبر نوع من انواع الحقن لانه يعطينا الحرية بحقن كود خبيث في الموقع 

نشوف الكود 

           <?php
           $name=$_GET['name'];
           print $name;
           ?>
 
مثل ماهو واضح المتغير name غير مفلتر والاستغلال راح يكون بالشكل التالي 
 
http://127.0.0.1/test.php?name=<script>alert("XSS")</script>
 
ناخذ مثال ثاني 
 
            <?php
            $name=addslashes($_GET['name']);
            print '<table name="'.$name.'"></table>';
            ?>
 
الان اصبح المتغير مفلتر قليلا مثل ماهو واضح من استخدام الدالة addslashes 
 
والتخطي راح يكون بالشكل التالي 
 
http://127.0.0.1/test.php?name="><script>alert(String.fromCharCode(88,83,83))</script>
 
واستخدمنا " في بداية الاستغلال لقفل الاستعلام وليصبح سليم 
 
و الدالة String.fromCharCode لكي نتخطى الدالة addslashes
 
 
 
طريقة الاصلاح :
 
استخدام htmlentities() او htmlspecialchars() 
 
مثال 
 
$name=htmlentities($_GET['name']);
 
استخدام الفلترة الصحيحة والقوية 
 
 
الى هنا ينتهي الدرس القاكم في دروس اخرى     
 
 

تعليقات

المشاركات الشائعة من هذه المدونة

CRLF injection [\r\n Carriage Return]

Study in Nosql-Injection-Mongodb