Плагин для Wp «Anti-XSS attack»

svarog
На сайте с 14.01.2004
Offline
134
1219

Заранее извиняюсь за копи-паст, но думаю этот плагин будет интересен многим.

Плагин «Anti-XSS attack»

Данный плагин возник после обсуждения на форуме. Кратко опишу суть проблемы.

Во всех версиях WordPress есть дыры. Другое дело, что не все они определены и известны. Таким образом злоумышленник может обнаружить уязвимость и сформировать специальный запрос к вашему сайту и тем самым, например, получить админский доступ.

Ситуация может развернуться еще хуще. Например злоумышленник может написать небольшую html-страницу, где разместить скрытую форму, которая автоматически будет, скажем добавлять пользователя с админскими правами на ваш сайт. А поскольку большинство из нас не разлогинивается после работы с блогом, то после захода на ссылку злоумышленника вы по-сути от своего имени (и с вашими разрешениями) создадите еще одного админа.

Проблема (XSS) касается не только WordPress, но и всех других «движков» и скриптов.

Для защиты от подобных действий нужно проверять откуда идет запрос - т.н. referer: если он не с вашего же сайта, то возможно это XSS-атака.

За основу я взял плагин Юрия Белотицкого paranoya, только оставил проверку входящих данных.

Работает плагин следующим образом.

Если на сайт приходят данные в «wp-admin», то проверяется реферер. Если это _GET (то есть в виде url) и реферер не совпадает с адресом вашего сайта, то выполнение скрипта останавливается и выводится сообщение с ссылкой, по которой можно подтвердить действие.

Если же данные передаюся в скрытом виде (_POST) и реферер не совпадает с вашим сайтом, то выполнение скрипта просто прекращается.


Подтверждение в первом случае нужно, поскольку некоторые запросы WordPress формирует имено в таком виде. Например, когда нужно подтвердить или отвегнуть комментарий. Даже если это XSS-атака и злоумышленник сам нажмет ссылку, то WordPress уже будет проверять права своими средствами. Но главное, что скрытого выполнения не будет.

Плагин устанавливается очень просто: Копируется в каталог plugins и активируется в админ-панели. Сразу обращаю внимание тех, у кого в браузере отключена передача referer - в этом случае все ваши действия WordPress будет воспринимать как XSS-атаку. Если из-за этого вы не можете получить доступ к админ-панели, то удалите файл плагина. WordPress автоматом его деактивирует.

Источник и ссылка для скачивания.

DyaDya
На сайте с 11.04.2007
Offline
147
#1

С помощью того же curl можно легко передать нужный REFERER, если, конечно, я не ошибаюсь.

Т.е. Все эти проверки, это ерунда. Можно легко эмулировать передачу данных с нужным реферером.

От XSS нужно защищаться тщательной проверкой входящих данных, независимо от REFERERов и т.п.!!!

Выбирайте качественный хостинг (http://vashmaster.ru/informaciya/o_poleznyh_programmah/news83.php) и продвигайте сайты в СЕОПУЛЬТ (http://seopult.ru/ref.php?ref=72b5ed9561fe66a1). А на «SAPE» я в обиде :) Не упрекайте за очепятки, пишу вслепую (http://ergosolo.ru/) и также делаю сайты (http://www.vashmaster.ru/) ;)
svarog
На сайте с 14.01.2004
Offline
134
#2

DyaDya, даже такая защита не будет помехой.

svarog
На сайте с 14.01.2004
Offline
134
#3
Обновление плагина «Anti-XSS attack»

Как мне подсказали (спасибо, Kesha) плагин Anti-XSS attack всё-таки можно обойти. Если кратко, то в плагине проверяется вхождение «родного» адреса в адрес реферера. Таким образом можно сформировать url, содержащий адрес атакуемого сайта и выполнить POST. Плагин в данном случае не сработает, поскольку в referer будет содержаться адрес атакуемого сайта.


По этой причине я переписал плагин. Теперь он строго проверяет входящий и «родной» host'ы и в случае несовпадения выдает соответствующее предупреждение.

Если вы использовали предыдущую версию, то я бы рекомендовал его обновить. Текущая версия 0.4 beta.

Весьма приятно, а то я в последнее время озаботился безопасностью :)

p.s. Скачать обновление плагина можно пройдя по ссылке.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий