A Study in PHP Vulnerabilities - ICH

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

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

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

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

#Insecure Cookie Handling



الكوكيز المحمية لابد ان ترسل من خلال SSL  ويكمن الاكتشاف والتخطي من خلال وضع بروكسي لمشاهدة الطلبات


ناخذ كود بسيط عشان توضح الصورة 


        if($_POST['password'] == $thepass) {
        setcookie("is_user_logged","1");
        } else { die("Login failed!"); }
        ............ etc .................
        if($_COOKIE['is_user_logged']=="1")
         { include "admin.php"; else { die('not logged'); }
الان لو كتبنا is_user_logged في الكوكيز وحطينا قيمتها 1 راح نتخطى التسجيل ونتحول لصفحة admin 
      ناخذ كود ثاني ونشوف 

        if ($_COOKIE[PHPMYBCAdmin] == '') {
        if (!$_POST[login] == 'login') {
        die("Please Login:<BR><form method=post><input type=password
        name=password><input type=hidden value=login name=login><input
        type=submit></form>");
        } elseif($_POST[password] == $bcadminpass) {
        setcookie("PHPMYBCAdmin","LOGGEDIN", time() + 60 * 60);
        header("Location: admin.php"); } else { die("Incorrect"); }
        }
 الكود السابق قابل للاستغلال لو خلينا الكوكي كالتالي 

 
"PHPMYBCAdmin=LOGGEDIN; path=/";document.cookie = "1246371700; path=/"
طريقة الاصلاح والترقيع 
استخدام SESSIONS بدل الكوكيز 
او نقلها عبر SSL 
الى هنا ينتهي الدرس القاكم في دروس اخرى باذن الله 
ان اعجبك فاذكر الله وادع لي وان لم يعجبك فانتقدني لاصبح افضل 
 

تعليقات

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

CRLF injection [\r\n Carriage Return]

Study in Nosql-Injection-Mongodb