алг бекдора

Discussion in 'PHP' started by warlok, 26 Jan 2010.

  1. warlok

    warlok Elder - Старейшина

    Joined:
    17 Feb 2008
    Messages:
    328
    Likes Received:
    142
    Reputations:
    81
    PHP:
    <?php
    $_FILE 
    file_get_contents($_FILE_PATH."/".$_FILE_NAME);
    $_FILE preg_replace("!\<\?php(.*?)\?\>!si"""$_FILE);
    $_S_=strrev(DECODE);
    $ciph=$_S_($_FILE);
    $_M 0;
    $_ABC "";
    for (
    $_I 0$_I strlen($ciph); $_I++)
    {
        
    $_C substr($ciph$_I1);
        
    $_DV ord($_C);
        
    $_DV $_DV $_M;
        
    $_ABC $_ABC chr($_DV);
        
    $_M++;
        if (
    $_M 3)
        {
            
    $_M 0;
        }
    }
    eval(
    $_ABC);
    ?>
    тут получаеться если регистр глобалс включен можно подменить $_FILE_PATH, $_FILE_NAME, таких кстати несколько файлов разбросано по двигу но только в этом eval в других стоит echo вместо него. Нашел еще один файл с таким содержим:
    PHP:
    <?php
    if (!defined("STRESSWEB"))
        die(
    "Hacking!!!");
    $_FILE_NAME "l2init.php"$_FILE_PATH dirname(__FILE__); include($_FILE_PATH "/sw8.php"); return;
    ?>
    LykoCgofKB09PDs6PTw7Oj08Ozo9PDs6PTw7Oj08Ozo9PDs6PTwLByApHkNJS0MdaW1haXVjZ2tnDAgdKh87Oj08Ozo9PDs6PTw7Oj08Ozo9PDs6PTw7Oj08OzogDAgdKi4LB2ltYWl1Y2MdSU1BXERIUB0uHyUsZGByXi9ibWtmaGVcbDFiX19rbWRpbSxtaG8lOA0JZ2tja3NhZR9HS0NeQkZSHywdJy5iXnRgLWBvbWRmZ15qL2RhXWRhbGMrcGduJDsMCCwqKQsHICkeOj08Ozo9PDs6PTw7Oj08Ozo9PDs6PTw7Oj08Ozo9DAgdKh9CXnRgYF5zZB5mbmhyZmFrZ3dhc2dsbgwIHSofOzo9PDs6PTw7Oj08Ozo9PDs6PTw7Oj08Ozo9PDs6IAwIHSouCwcka2JfIDwea2V2HmFiXmFsbm1jYHQnImkyY2BYImttZGltcWJydWNvIlxZH2RhZmxzcyBaLB8iaTJjYFgia21kaW1xYnJ1Y28iXFkfZGFzcGVxIFosHyJpMmNgWCJrbWRpbXFicnVjbyJcWR9kYW5ec3IgWiwfImkyY2BYImttZGltcWJydWNvIlxZH2RhbF5tZCBaLB8iYWVhc2QsHyJgb21kZmdaIGp5cm9pIlxZH2RoYx9dKDkKCgwIY29xHiUkaB46IC85HSRoHjkgI2ovZGFZH2dga2JzZHBzZXEgWlshYWx1bXIfXToeIWkqKSYNCXkKCh8eHSAjZWFiWiJmXR87HW5kdR1kYV1gb21sYmNzJiFsMWJfWyFlXm1kcWJydWNvIlxZIWlcWR9kYSBaWyFmbHNzIFosHyJpMmNgWCJmX2plcmNvdmRwH11aImZdWiBhYiFbWCJ0cWJyIVspICNqL2RhWR9nYGtic2Rwc2VxIFpbI2daWyFiXyJcWR9wYHFwIlwqHSRrMGFiWiBkYWxjcGVxdGJyIVtYJGhbWCJjYB9dWiBhYm1famUhWykgI2JiYnRlKSAjYWxuZWdkWyFrdnNwah9dWiBhaWQgWik6Cwd9DAgsKikLByApHjo9PDs6PTw7Oj08Ozo9PDs6PTw7Oj08Ozo9PDs6PQwIHSofUWJydWNvcx9na2lzZ15saHhedGhtaw0JHicgPDs6PTw7Oj08Ozo9PDs6PTw7Oj08Ozo9PDs6PTw7HQ0JHicvDAhmZh8mSk9DHjo9HyBeZGxnayIoCwd7DAgdIB8eIXNkcHNlcUpmc3MeOiBgcG9heCYmOwwIHSAfHiFzZHBzZXFKZnNzMB09H19vcmB3JSk6CwcNCR4dIB9kbHIfJiFpHzsdMDoeIWkfOh0kazBhYlogZGFsY3BlcXRiciFbWCJibXJucyBaOx8iZisqJwoKHx4dIHoLByAfHh0gHx4daWUeJSRrMGFiWiBkYWxjcGVxdGJyIVtYJGhbWCJubB9dHzs6ICYvJCkMCB0gHx4dIB8eeA0JHh0gHx4dIB8eHSAfInBlcXRicktncHRaImZdHzsdJGswYWJaIGRhbGNwZXF0YnIhW1gkaFtYInNncWxkIFo7DAgdIB8eHSAfHh0gHx4hc2Rwc2VxSmZzczBYJGhbHT0fImY7DAgdIB8eHSAfHnoNCR4dIB97CgofHh0gI11wZXF0XGljHjogJ2dwc2RyJSReUEJRVENQVFogcGVxdGJyIVsmICUkHWlycWJ0JyJpMmNgWCJmX2plcmNvdmRwH11aIlxSRE9SRVJSWCJyY292ZHAfXVwnJiA+HmZuc3RebCciXFJET1JFUlJYInJjb3ZkcB9dKB43IC85Cgp8Cwdla3FiDQl5CgofHh0gI3FicnVjb0xocXEgPB5ecnFfdigoOQoKHx4dIGVtbyAnImYgPB4tOx8iZiA7HiFsMWJfWyFlXm1kcWJydWNvIlxZH2Nuc2t0IVs4ICNnKCsoCwcgHx4dewwIHSAfHh0gHx5mZh8mIWwxYl9bIWVebWRxYnJ1Y28iXFkhaVxZH29tIFogPDsdJzAlJg0JHh0gHx4dIB95CgofHh0gHx4dIB8eHSAjcWJydWNvTGhxcVtcHjogI2c4DQkeHSAfHh0gH3sKCh8eHSB8CwcgHx4dJF5xYnJ1XWZkHzsdKGhxcGVzJiFfUUNOVURRUVshcWJydWNvIlwnHSYlHmZuXl9vcmB3JWltcnNhayYhX1FDTlVEUVFbIXFicnVjbyJcJykgI3FicnVjb0xocXEpKB48IGhscXZgaiUkXlBCUVRDUFRaIHBlcXRiciFbJiA5HiFzZHBzZXFKZnNzWS1dOgsHfQwIIWwxYl9fa3EdPR8ic2VxcWZvbUpmc3NZIWwxYl9bIWpsZ2hscGVxdGJyIVtYInVjb3NobWsiXFs4DQkiaTJjYFxnch46ICN0YnJyZ2xuS2dwdFoiaTJjYFgiZl9qZXJjb3ZkcB9dWiJcc2Rwc19oYlpbIXRicnJnbG4hW1o7DAhmbmJqcmRkXWxuYmMdSU1BXERIUB0uHyUsbDFiXy9rMGdfJh4rICNqL2RhXWlzHywdJy1uZXAmOQoKaGxgbHRiYl9ubGBlH0dLQ15CRlIfLB0nLmovZGEtaTJpXSQgLR4hbDFiX19mcR0uHyUrcGduJDs=
    Пробывал переводить из base64 получается вообше что то нечитаемое. Непонятно как оно работает :(
     
  2. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    warlok Какая цель стояла, когда вы создавали топик?

    Первый код - действительно уязвим при регистер_глобалс. Но также это деобфускатор (см. википедию) для второго. После декода будет:
    PHP:
     /**
     * ==============================
     * FILE including
     * ============================== 
     */
    include INC_DIR '/data/config_l2db_login.php';
    include 
    INC_DIR '/data/config_l2db_game.php';
    /**
     * ==============================
     * Database initialization
     * ============================== 
     */
    $ldb = new db_connect($l2db["loginserver"]["dbhost"], $l2db["loginserver"]["dbuser"], $l2db["loginserver"]["dbpass"], $l2db["loginserver"]["dbname"], $debug$config["mysql"]["die"]);

    for (
    $i 0$i $l2db["gameserver"]["count"]; $i++)
    {
        
    $gdb[$i] = new db_connect($l2db["gameserver"][$i]["db"]["host"], $l2db["gameserver"][$i]["db"]["user"], $l2db["gameserver"][$i]["db"]["pass"], $l2db["gameserver"][$i]["db"]["dbname"], $debug$config["mysql"]["die"]);
    }
    /**
     * ==============================
     * Servers initialization
     * ============================== 
     */
    if (MOD == "admin")
    {
        
    $serverList = array();
        
    $serverList2 = array();

        for (
    $i 0$i $l2db["gameserver"]["count"]; $i++)
        {
            if (
    $l2db["gameserver"][$i]["on"] == '1')
            {
                
    $serverList[$i] = $l2db["gameserver"][$i]["title"];
                
    $serverList2[$i] = $i;
            }
        }
        
    $_serv_id = (isset($_REQUEST["server"]) && isset($l2db["gameserver"][$_REQUEST["server"]])) ? intval($_REQUEST["server"]) : 0;
    }
    else
    {
        
    $serverList = array();
        for (
    $i 0$i $l2db["gameserver"]["count"]; $i++)
        {
            if (
    $l2db["gameserver"][$i]["on"] == '1')
            {
                
    $serverList[] = $i;
            }
        }
        
    $_serv_id = (isset($_REQUEST["server"]) && in_array(intval($_REQUEST["server"]), $serverList)) ? intval($_REQUEST["server"]) : $serverList[0];
    }
    $l2db_ls $versionList[$l2db["loginserver"]["version"]];
    $l2db_gs $versionList[$l2db["gameserver"][$_serv_id]["version"]];
    include_once 
    INC_DIR '/l2db/l2j_' $l2db_ls '.php';
    include_once 
    INC_DIR '/l2db/l2j_' $l2db_gs '.php'
     
    _________________________