В процессе написания урока по сканерам уязвимостей для WordPress я обнаружил новый для меня факт — сканер изучает также и темы. Т.е. темы WordPress могут быть уязвимыми. Раньше про темы я думал, что это набор .css, .js, .htm, .png, .jpg и .bmp файлов. Что там нет ничего интересного для взломщиков и, следовательно, владельцу сайта (блога) на WordPress не нужно беспокоиться о каких-либо вопросах, связанных с безопасностью тем.
Это нет так, я очень сильно ошибался! Посмотрите сами — темы содержат .php файлы, в которых, как и в любых программах, могут быть уязвимости. Я не буду вас мучить теорией, я просто продемонстрирую на очень простом примере.
За свежими дырами зайдём на этот сайт. Ищим там «Latest Theme Vulnerabilities» (последние уязвимости в темах):
Я беру первую попавшуюся тему, она называется «ChurcHope Theme». Её уязвимость заключается в возможности скачать любой файл с сервера:
Радует, что сразу приведены примеры использования:
[host]/wp-content/themes/churchope/lib/downloadlink.php?file=../../../../wp-config.php [host]/wp-content/themes/churchope/lib/downloadlink.php?file=/etc/passwd
Т.е. вместо [host] нужно вставить адре сайта на WordPress, в котором используется эта тема.
Осталось дело за малым — найти эти сайты.
Нам поможет duckduckgo.com или Гугл (от Яндекса толку мало). В строке поиска я ввожу что-нибудь вроде themes/churchope (часть адреса, по которой расположена нужная тема):
Результаты не заставят себя долго ждать. Первым попался сайт https://centralnow.com/
Т.е. просто переходим по адресу
И получаем файл конфига:
По адресу
я не получил никаких паролей, но сообщение об ошибке спалило абсолютные пути расположения файлов сайта на хостинге. Я намерено ничего на замазываю. Дети, смотрите и учитесь: этот дядя не думал о безопасности своих веб-приложений.
Ну всё понятно, просто для закрепления:
Не смотря на то, что попадается предостаточно уязвимых сайтов с этой темой, некоторые сайты, даже не смотря на безалаберность владельцев, уверенно показывали фак:
Mod_Security в действии:
Not Acceptable!
An appropriate representation of the requested resource could not be found on this server. This error was generated by Mod_Security.
Выводы
- Обновляйте свои темы WordPress сразу, как только к ним выходят обновления.
- Удаляйте темы, которые вы в данный момент не используйте.
- Время от времени сканируйте свои сайты на предмет наличия известных уязвимостей. Некоторые темы заброшены их авторами, и для них никогда уже не будут выпущены обновления. И если в них присутствуют уязвимости, то другого способа у вас узнать об этом нет (разве что, ещё раньше ваш сайт взломают).
- Если я вас недостаточно убедил, то дополню — можно не только скачивать конфигурационные файлы, с которыми некоторые вообще не знают что делать. Можно закачивать произвольные файлы на сервера с уязвимыми темами.
Этим озабочиваются обычно уже после взлома. 🙂