Проверка сайта на вирусы в Саратове: как заражают через формы и загрузку файлов
В этой статье
- Форма, которая принимает больше, чем задумано
- Почему каталог загрузок опаснее админки
- Веб-шелл: как он выглядит и что умеет
- Инъекции через адрес страницы и старые модули каталога
- Как ищем следы
- Настройки, которые обесценивают загруженный шелл
- У нас форма без вложений, мы в безопасности?
- Можно ли удалить подозрительный файл самому?
- Как понять, что с сайта шлют спам?
Приборостроение, нефтегазовый сервис, вузовская среда, оптовая торговля Поволжья – у большинства таких сайтов есть форма с приложением документа: резюме, техническое задание, заявка на тендер, скан платёжки. Именно эта функция чаще всего оказывается точкой входа, потому что через неё посетитель на законных основаниях кладёт файл на ваш сервер. Дальше всё зависит от того, насколько аккуратно написан обработчик.
Форма, которая принимает больше, чем задумано
Слабый обработчик проверяет только расширение в имени файла, причём по чёрному списку. Обойти это несложно: двойное расширение, нестандартный регистр, безобидный тип содержимого в заголовке запроса. В итоге на диск ложится PHP-файл, к которому можно обратиться прямо в браузере. Проверять нужно не имя, а реальный тип файла, и переименовывать загруженное самому, не доверяя тому, что прислал пользователь.
Почему каталог загрузок опаснее админки
В него разрешена запись – иначе картинки не сохранятся. Если сервер вдобавок готов выполнять там скрипты, любой попавший туда файл становится программой. Одна строка в конфигурации закрывает эту возможность целиком, и после её появления загруженный вредонос превращается в бесполезный текст.
Веб-шелл: как он выглядит и что умеет
- небольшой файл с невинным именем: license.php, thumb.php, wp-cache.php;
- содержимое в одну длинную строку из base64 или шестнадцатеричных кодов;
- файловый менеджер и запуск команд прямо в браузере;
- рассылка писем с вашего домена сотнями в час;
- копирование самого себя в десятки каталогов на случай чистки.
Такой файл живёт вне движка и не пропадает при обновлении CMS, поэтому лечение вирусов сайта обязательно включает обход всех каталогов с записью, а не только папок ядра.
Инъекции через адрес страницы и старые модули каталога
Второй канал того же класса – параметры в адресе. Самописные фильтры и старые модули подбора товаров подставляют значение из адресной строки прямо в запрос к базе или в имя подключаемого файла. Так читают таблицу пользователей с хешами паролей или подключают чужой код. В журналах это видно отчётливо: длинные запросы со служебными словами SQL и точками для перехода по каталогам.
Как ищем следы
Сортируем файлы по дате изменения и ищем php в каталогах, где его быть не должно. Затем берём журнал доступа и смотрим POST-запросы к формам за месяц, обращения к найденным файлам и их первое появление. Пересечение двух списков даёт время и способ проникновения. Такая проверка веб сайтов на вирусы занимает от трёх часов и отвечает не только на вопрос «что удалить», но и «через что пришли».
Настройки, которые обесценивают загруженный шелл
Запрет выполнения PHP в каталогах загрузок, хранение принятых файлов вне корня сайта, ограничение размера и типа, проверка антивирусом на стороне сервера, отключение опасных функций в конфигурации PHP и отдельный пользователь базы с минимальными правами. Ни одна из этих мер не мешает работе форм, но каждая снимает целый класс атак. Настраивается в рамках технического сопровождения за один заход.
У нас форма без вложений, мы в безопасности?
Загрузка файлов – не единственный путь. Через обычную форму заливают спам-рассылки, а через параметры адреса добираются до базы. Плюс остаются уязвимости самого движка, так что проверка сайта на вирусы нужна и без функции вложений.
Можно ли удалить подозрительный файл самому?
Технически да, но перед удалением сохраните копию и запишите путь с датой. Без этого не восстановить картину, а вредонос почти наверняка размножен, и удаление одного файла ничего не меняет.
Как понять, что с сайта шлют спам?
Признаки: домен попал в спам-листы, письма клиентам перестали доходить, в очереди на сервере тысячи сообщений, хостер прислал уведомление о превышении лимита отправки. Проверяется по журналам почты за сутки.
Разобрать формы, загрузки и логи вашего сайта можем начать сегодня: +7 (917) 818-43-57 или info@rostsayt.ru. Смежные направления – разработка, 152-ФЗ для форм с персональными данными, цены.























