2016-02-19 6 views
4

Один из наших веб-сайтов Wordpress, работающих на сервере Apache, был недавно взломан через PHP-инъекцию.Скрытая переадресация на взломанный сайт?

Хакеры установили сотни URL-адресов, перенаправленных на внешнюю электронную коммерцию, которая продавала часы; URL-адреса имели форму http://www.example.com/eta.php?some_file.html; например: http://www.example.com/eta.php?Jewellery-Watches-Others-c138-4.html.

Мы думаем, что мы удалили все зараженные PHP-коды. Однако взломанные URL-адреса, вместо того, чтобы возвращать 404, теперь перенаправляют 301 на http://www.example.com/?some_file.html (то есть, тот же URL-адрес без части eta.php) и, наконец, показывают домашнюю страницу сайта, возвращая код 200. Обратите внимание, что мой файл .htaccess кажется быть совершенно чистым.

Откуда это фантомное перенаправление?

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

Благодарим за внимание!

ДАЛЬНЕЙШИЯ ПОДРОБНОСТИ

Файл eta.php нигде не найти на сервере. Замена eta.php со случайным файлом (например, ate.php) в взломанных URL-адресах дает код 404, как ожидалось.

В конце концов мне удалось заставить взломанную URL, чтобы вернуть 404 с помощью следующего правила: .htaccess

RewriteCond %{THE_REQUEST} /eta\.php 
RewriteRule ^(.*)$ - [R=404,L,NC] 

Интересно, что это другое правило не работает, как если бы хак был как-то баловаться с %{REQUEST_URI}:

RewriteCond %{REQUEST_URI} ^/eta\.php [NC] 
RewriteRule (.*) - [R=404,L] 
+7

Nuke сервер с орбиты, переустановить с нуля, ** затянуть защиту на этот раз **, восстановить из известных резервных копий (надеюсь, у вас есть). Обычно нет смысла пытаться что-то убрать; для всех, кого вы знаете, ваш сервер настроен на root и будет постоянно возвращаться к «взломанному состоянию», что бы вы ни делали. – deceze

+1

У вас есть, вероятно, какой-то вредоносный код, скрытый где-то, который добавляет это правило перезаписи. Несколько шагов для проверки: 1. посмотрите время модификации ваших файлов установки WP и посмотрите, обновлен ли какой-либо файл в последнее время. 2. Найдите любые ссылки add_rewrite_rule и посмотрите, выглядит ли подозрение подозрительным. 3. искать любые ссылки base64_decode (хакеры могут скрыть вредоносный код с использованием строк base64) – vard

+0

Проблемы с взломанными сайтами вне темы на SO; см. https://codex.wordpress.org/FAQ_My_site_was_hacked – markratledge

ответ

1

Одна хорошая вещь, чтобы сделать резервную копию базы данных MySQL и открыть в блокноте. Найти все ссылки и удалить. После этого сохраните файл .sql и загрузите его обратно.

Также посмотрите, где вставлен javascript/iframe внутри вашего HTML-файла через исходный код и найти, существуют ли в базе данных и удалить.

Также переустановите установку Wordpress, переустановите плагины и шаблон (замените все файлы новыми файлами).

Это способ как сохранить многие сайты.

Также может делать то, что @vard пишет в своем комментарии.

+2

Спасибо, Ivijan, это много полезных советов! В конце концов выясняется, что вызванная мной злонамеренная переадресация вызвана скрытой директивой '__redirect_rule' в базе данных, очень похожей на ту, которую предложили искать. В любом случае, спасибо за ваш ответ, который я обязательно последую в следующий раз, когда один из наших сайтов взломан :-) –

+1

Мое удовольствие - помогать другим. Веб-разработка - огромная область, и вы не можете все знать. Это невозможно. Постарайтесь узнать, что вам нужно узнать, получить опыт для решения таких проблем или кто-то попросит вас помочь. Глупых вопросов не существует. Всего наилучшего! –

Смежные вопросы