500 инъекций в вену моего WordPress, XSS не пройдёт!

Dmitriy_2014
На сайте с 01.07.2014
Offline
276
753

Всем привет!

Решил я проверить, а работает ли мой Web application firewall от Wordfence – это такой плагин безопасности для WordPress’а со встроенным файрволом, да и в целом посмотреть блокирует ли он что-нибудь.

Нашел в интернете около 500 так называемых XSS-Payloads:

https://github.com/pgaijin66/XSS-Payloads/blob/master/payload/payload.txt

Да, понятно шаблоны трех годовалой давности, но с другой стороны теги особо сильно не изменились с момента их создания покойного Сэра Тимоти Джона Бернерс-Ли работавшего в CERN’е, организации по ядерным исследованиям и компании Netscape Communications браузер которой незаслуженно убили конкуренты из Microsoft в войне Браузеров, ну и сами понимаете script он и в Африке script.

Тестирование решил провести на форме поиска, т.к. эта форма с девяностых годов на каждом сайте и есть везде, в общем поиск — это база.

И знаете, что, да действительно WAF от Wordfance блокировал большинство попыток вставить этот как-бы нежелательный код в виде шаблона в форму поиска.

Он выдавал страницу с кодом ответа 403 Forbidden, что как заявляет MDN – указывает, что сервер понял запрос, но отказывается его авторизовать, или из Wiki – запрещено (не уполномочен). При этом сам Wordfence пишет следующее на странице - A potentially unsafe operation has been detected in your request to this site ( В вашем запросе к этому сайту обнаружена потенциально небезопасная операция. Прим. пер. google. ).

Ну хорошо, он вроде что-то блокирует, но есть пару, НО.

Все-таки он пропустил около 165 вставок подозрительного кода в форму поиска из этого XSS-Payloads списка, но надо сказать что и форма отработала ровно, то есть не запустился никакой скрипт на странице и не произошло дефейса страницы.

Тут у меня две теории, либо WAF от Wordfence считает их не опасными шаблонами, либо он знает, что на стороне сервера и движка WordPress поисковая форма нормально обрабатывает некоторые данные и не позволяет запустится скриптам и преобразовывает спецсимволы не давая сделать дефейс страницы и т.п. вещи, видимо все-таки форма на PHP что-то, да и делает и обрабатывает введенные данные. Некоторые запросы из этого списка форма поиска просто преобразовывала во что-то свое и пыталась просто искать в обычно режиме, но не давала выполнить скрипт или дефейс.

В итоге.

Что можно сказать, по сути и сам WAF от Wordfence и сам движок WordPress, вроде бы не дали запустится скрипту или дефейснуть изменить страницу, и по сути все эти +/- 500 XSS-Payloads’ов были заблокированы и не реализованы, что есть хорошо.

А пробовали ли вы, запускается ли у вас на сайте через форму какой-нибудь стрёмный скриптик :-)


Анти ДДОС
На сайте с 14.03.2020
Offline
79
#1
Как вариант. Но можно, допустим, это сделать чуть элегантнее. Например, при настройке того же клауда, добавить в правила вот такую строчку. При вставке в форму поиска это теоретически отправит больше половины запросов из списка на проверку браузера. А если учесть, что это обычно автоматические запросы, соответственно скорее всего идут по протоколу HTTP1, то все 100%.

Хотя, потестил рандомно повставлял в форму поиска в вордпрессе, у меня все сразу на 404 страницу перекидывает.
png 2196_1.png
png 2196.png
Настройка Cloudflare, поведенческие факторы, АнтиБот, ДДОС, Biterika Rostelecom прямые переходы https://antiddos24.ru
W1
На сайте с 22.01.2021
Offline
304
#2
Dmitriy_2014 :
А пробовали ли вы, запускается ли у вас на сайте через форму какой-нибудь стрёмный скриптик

Не пробовали. Ибо strip_tags(), и нефиг грузить систему лишними приблудами. Это если своя форма. А в сторонних тоже что-то аналогичное должно быть (обычно htmlspecialchars(), что правильнее при более сложных пользовательских данных, чем простая форма).

Мой форум - https://webinfo.guru –Там я всегда на связи
SeVlad
На сайте с 03.11.2008
Offline
1609
#3

Наверное за эти 10 лет существования ТСа на сёрча  многие уже поняли что он современный Сизиф на з/п у нового сёрча(?).

Поэтому лично я не комментирую труды его копирастерского таланта. Но мимо данного опуса не могу пройти, тк нубы могут уверовать в волшебную таблетку. А это уже опасно.

Итак, начнём  понемногу..

1.

Dmitriy_2014 :
Он выдавал страницу с кодом ответа 403 Forbidden, что как заявляет MDN – указывает, что сервер понял запрос,

и отбил.

Поскольку тесты  с 99,9% вероятность производились с одного IP адреса, то сам сервер мог принять множественные запросы за http-флуд и отбить их (после 160 запросов :) ) не подпустив и близко к сайту. Для тех кто ещё не понял: до ВП и тем более плагина дело могло вообще не дойти.

2.

Dmitriy_2014 :
Все-таки он пропустил около 165 вставок подозрительного кода в форму поиска из этого XSS-Payloads списка

..

сам движок WordPress, вроде бы не дали запустится скрипту или дефейснуть изменить страницу

Что как бэ намекает, что и остальные +350 атак никакого вреда сайту не доставят. Т.е и без плагина "безопасности" всё бы было нормально.

Никаких тестов же без плагина не производилось. Про условия проведения "теста" и настройки сервера (окружения) тоже ничего не известно.

Отдельный вопрос насколько "тестировщик" может оценить [без]успешность каждой из атак, но про это уже не будем..

Хотя возможно, такие тесты не будут лишними, но где метода, где скрипты, которые используют тот список? Их нет. Посему старпост  - очередное сотрясение воздуха.


Ида. что я хотел сказать.. Безопасность это долгая и кропотливая работа с яркой систематической составляющей (с) RiDDi.

Делаю хорошие сайты хорошим людям. Предпочтение коммерческим направлениям. Связь со мной через http://wp.me/P3YHjQ-3.
Dmitriy_2014
На сайте с 01.07.2014
Offline
276
#4
webinfo #:

Не пробовали. Ибо strip_tags(), и нефиг грузить систему лишними приблудами. Это если своя форма. А в сторонних тоже что-то аналогичное должно быть (обычно htmlspecialchars(), что правильнее при более сложных пользовательских данных, чем простая форма).

Не хочу быть занудой, но из документации по этой функции - Внимание

Эта функция не должна использоваться для предотвращения XSS-атак. Понятно, что там есть другие рекомендуемые функции и т.п. для проверки вводимых данных в форму, да и думаю да, ребята из Automattic, и в целом разработчики WordPress’а защищают форму поиска от стремного ввода и всяких странных запросов. А вот чужие формы, это да страшное дело, что там, как там, и вот тут бы WAF как раз бы помог, хотя бы на какой-то процент.

А процент у него не такой уж и плохой, примерно 67% он заблочил и 33% пропустил из этого XSS-Payloads списка.
Dmitriy_2014
На сайте с 01.07.2014
Offline
276
#5
SeVlad #:

Наверное за эти 10 лет существования ТСа на сёрча  многие уже поняли что он современный Сизиф на з/п у нового сёрча(?).

Поэтому лично я не комментирую труды его копирастерского таланта. Но мимо данного опуса не могу пройти, тк нубы могут уверовать в волшебную таблетку. А это уже опасно.

Итак, начнём  понемногу..

1.

и отбил.

Поскольку тесты  с 99,9% вероятность производились с одного IP адреса, то сам сервер мог принять множественные запросы за http-флуд и отбить их (после 160 запросов :) ) не подпустив и близко к сайту. Для тех кто ещё не понял: до ВП и тем более плагина дело могло вообще не дойти.

2.

Что как бэ намекает, что и остальные +350 атак никакого вреда сайту не доставят. Т.е и без плагина "безопасности" всё бы было нормально.

Никаких тестов же без плагина не производилось. Про условия проведения "теста" и настройки сервера (окружения) тоже ничего не известно.

Отдельный вопрос насколько "тестировщик" может оценить [без]успешность каждой из атак, но про это уже не будем..

Хотя возможно, такие тесты не будут лишними, но где метода, где скрипты, которые используют тот список? Их нет. Посему старпост  - очередное сотрясение воздуха.


Ида. что я хотел сказать.. Безопасность это долгая и кропотливая работа с яркой систематической составляющей (с) RiDDi.

Так я и не профессионал, а затестил я так ради прикола, для меня сайт — это просто хобби.

Возможно, я спорить не буду, лишь скажу, что эту страницу, блокирующую стремные запросы, формирует сам плагин WAF от Wordfence.

Это, не факт, что без плагина было бы все нормально, но да тестов без плагина не производилось. Настройки сервера окружения все по дефолту.

Метод и скрипт довольно прост, ручками каждую строчку, скопировать / вставить. Да, да я бухал пивас, слушал музон и мне было интересно запуститься хоть что-нибудь из этого списка, ну и в общем ничего не запустилось, большая часть заблокировалась WAF, другое что осталось вроде бы не сработало.

Хотите верте, хотите нет, такие дела, все заблокировалось и не сработало, но только в оригинальной форме поиска от WordPress.
W1
На сайте с 22.01.2021
Offline
304
#6
Dmitriy_2014 #:

Не хочу быть занудой, но из документации по этой функции - Внимание

Эта функция не должна использоваться для предотвращения XSS-атак. 

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

webinfo #:
обычно htmlspecialchars(), что правильнее при более сложных пользовательских данных, чем простая форма

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

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