Издевательство над мошенниками, пытавшихся получить доступ к моему сайту

Эта статья была просмотрена
Warning: count(): Parameter must be an array or an object that implements Countable in /home/users/g/gangster-club/domains/maxkirpichev.ru/wp-content/themes/maxkirpichev/functions.php on line 88
951 раз

Когда я работал на последнем месте работы там месяца два тянулся аудит безопасности одного сайта — крупного российского интернет-сми. На этом сайте использовалась старая версия CMS NetCat, в ядре которой была куча строк с PHP функцией eval(). Для тех, кто в танке — данная функция позволяет исполнять переданный в нее код. Т.е. через нее можно делать инъекции. Условно, есть у вас такая строка в файле file.php:
<?php eval($_GET["parameter"]); ?>
И вот тогда можно просто обратиться к этому файлу как-то так:
http://site.ru/file.php?parameter=file_put_contents("virus.php","<?php echo 'Ваш сайт взломан!'; ?>");
Что произойдет?
Правильно, функция eval() исполнит переданную в нее строку как ПХП код. В нашем случае, будет создан файл virus.php, открыв который вы увидите сообщение «Ваш сайт взломан!».
Это очень упрощенный пример, но смысл, надеюсь, уловили.

Короче 2 месяца там всё челик какой-то лазил по сайту, ничего с ним сделать не могли. Он и к БД уже доступ получил и чуть ли не под каким-то юзером в админке CMS сидел.

Ну и вот, приходит мне вчера такое вот письмо:

Открываю мануал по ПХП, читаю че делает эта assert().
Ну и таки да, оказывается проверяет, не является утверждение/assertion ложным (FALSE). Если assertion задается в виде строки, оно будет рассматриваться функцией assert() как PHP код.
(см. http://www.php.su/assert)

Поржал. Пишу в REG.RU:

Получив ответ, создаю на сайте страницу, как и просили эти чуваки (только без GET параметра just_for_lools=1 не открывайте, а то у меня реально там заголовки логируются, еще попадетесь):
http://sguitars.ru/a1hllkti1ayeuyn6.php?just_for_lools=1

Мораль сей басни такова:

Думайте своей башкой, когда вам приходит всякая хуйня на почту!