2012-04-21 2 views
0

У меня есть сайт, на котором пользователи могут загружать файлы для совместного использования с другими. Но сначала мне нужно их проверить. В последнее время кто-то загрузил .php файл со следующими командами:Что делает этот скрипт?

‰PNG 

<?php 
eval(gzinflate(base64_decode("very large strings of characters"))); 

?> 

Я полагал, что это может быть вредно, поэтому я не открыть его.

Кто-нибудь знает, что он делает?

+5

Он делает что-то злобное. Замените 'eval' на' echo' и посмотрите. Или, по крайней мере, опубликовать фактическую строку символов, чтобы мы могли ее декодировать. – DCoder

+1

Возможный дубликат [Как декодировать eval (gzinflate (base64_decode (] (http://stackoverflow.com/questions/3701291/how-to-decode-eval-gzinflate-base64-decode) –

+3

Глядя на сайт stackoverflow, я смущен чтобы увидеть, сколько людей не знают сайт под названием google –

ответ

2

Кажется, что код злоумышленника был закодирован base64 и gzipped.

Итак, сначала код декодируется из кодировки base64, а затем распаковывается в основном до строки кода.

И затем eval вызывается на результирующую строку, которая будет выполнять код, который был декодирован и распакован.

Но, не видя, какой код генерируется, трудно сказать, что он будет делать, когда код будет запущен.


Я декодировал закодированный текст. Используя следующий подход:

(Думаю, что писать в файл было плохой идеей сейчас, когда я думаю об этом. В основном, если вы в Windows. Я думаю, что это немного безопаснее в Linux, когда бит завершения отключен. Так что я был отчасти повезло в этом случае!)

<?php 
$test = gzinflate(base64_decode("encoded_text")); 
$myFile = "testFile.txt"; 
$fh = fopen($myFile, 'w'); 
fwrite($fh, $test); 
fclose($fh); 

Я написал вывод в файл только в случае, если был какой-то случайный HTML или Javascript, который может заразить компьютер, если я просто повторил его в своем браузере. Возможно, поэтому вы получили антивирусное предупреждение.

Я еще не уверен, что он делает.


Просто пробегая через код, который походит на 4750 строк кода, похоже, он устанавливает Basic Auth. И тогда есть много функций базы данных и некоторый базовый html-интерфейс. Это в PHP. Там также есть некоторые perl. Близко к концу.

По существу, это выглядит так: каждая страница, на которой отображается это изображение, выводит части этого кода и выполняет ее вместе с вашим кодом, и она попытается получить входные данные или попытаться найти данные сеанса и/или базы данных.

Затем другие части кода в основном создают интерфейс администратора, когда URL-адрес посещается следующим образом: url? Admin = 1, который вызывает аутентификацию Basic Auth. И тогда есть простой интерфейс phpmyadmin, такой как интерфейс, где пользователь может опробовать разные запросы и собрать метаданные о вашем db. Вероятно, другие вещи запускаются для exec и т. Д.

Я мог ошибаться, но это суть, которую я получаю от прохождения кода.

+0

Не могли бы вы выставить код на странице контакта на веб-сайте, который я опубликовал в своем ответе – Haz

+0

Конечно, я постараюсь отправить. Надеюсь, ваша форма не имеет ограничения по характеру. Длинные сценарии. – Gohn67

+0

В любом случае я отправил его. Надеюсь, это прошло. – Gohn67

3

никто не может сказать вам, просто сделать

<?php echo gzinflate(base64_decode("very large strings of characters")) ?> 

, чтобы увидеть, что это бы делать ....

редактировать: а теперь, когда вы выложили всю строку я декодированного его и вставил его here

+0

Мой антивирус дал мне следующее предупреждение: Возникла следующая угроза: Запрашиваемый объект заражен следующими вирусами: Backdoor.PHP.Rst.bl – Haz

+2

Что делать, если там есть какой-то код XSS? Возможно, php выйдет как текст. Но если есть ссылки js и html и изображения, они будут выведены. Вероятно, почему он получил антивирусное предупреждение. Хотя я согласен с предложением написать файл, а затем посмотреть, что он, вероятно, был глупым. Однако мне повезло. – Gohn67

+0

Не очень хорошая идея – Haz

0

Код прекрасно единственное, что вам нужно заботиться является длинной строкой, которая шифруется

< ?php eval(gzinflate(base64_decode("very large strings of characters"))); 

для ведения такого рода заявления, вы можете обратиться к

http://php.net/manual/en/function.gzinflate.php

+0

он спросил, что он не делает, если он работает или как ... –

Смежные вопросы