Уклонение фильтра XSS + jQuery. html () - PullRequest
0 голосов
/ 16 марта 2020

У меня запущен ответственный процесс раскрытия информации, в ходе которого я сообщил об уязвимости XSS поставщику веб-инструмента. Вместо того, чтобы кодировать весь пользовательский ввод соответствующими HTML сущностями, они решили реализовать фильтр «в соответствии с лучшими практиками». Фильтр начинает проверять теги HTML с помощью подхода белого списка, как только находит содержимое в скобках. Таким образом, теги типа <img src="test.jpg"> будут приняты, но как только я добавлю атрибут, не включенный в белый список, он будет отклонять мой ввод. Вот почему image будет заблокировано, но image будет храниться в базе данных, а также возвращаться API при запросе данных. В случае обычного HTML документа, где документ полностью генерируется на стороне сервера, это будет работать из-за корректирующего поведения большинства браузеров.

Но в этом случае веб-сайт по-прежнему защищен, поскольку они используют jQuery для вставки данных с помощью метода. html (). Так как мой HTML недопустим, объекты для вставки содержимого в DOM не могут быть созданы, и атака не удалась. Я несколько часов возился со зданием HTML, которое можно обработать в DOM и уклониться от фильтра. Есть какие-нибудь идеи о том, как выполнить успешную атаку?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...