XSS и UTF-7

html коды

Отдельно стоит упомянуть использование для XSS-атаки скриптов, написанных в кодировке UTF-7. Эта кодировка замечательна тем, что угловые скобки в ней записываются как «+ADw-» и «+AD4-» и, стало быть, пропускаются функцией htmlspecialchars нетронутыми. Если браузер пользователя настроен на автоопределение кодировки, а ни в заголовках, ни на странице в теге <meta> до любого контента не прописано кодировки, браузер, встретив в контенте характерные для UTF-7-кодировки символы, переключится в эту кодировку и выполнит код.

Например, у нас на форуме название темы идет в тег <title>, секция <head> документов начинается таким образом:
<title>MegaForum - название темы</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />

Кодировка прописана, но, к сожалению, уже после вывода поступившего от посетителя названия в <title>. И если он, к примеру, назовет тему
+ADw-/title+AD4APA-script+AD4-скрипт+ADsAPA-/script+AD4-

то в результате браузер прочитает и проинтерпретирует код
<title>MegaForum - </title><script>скрипт</script>

Последствия, думаю, очевидны. А вся проблема из-за того, что <meta> с указанием кодировки не стояла перед <title>. И не было указания кодировки в HTTP-залоговке Content-Type.


Источник: http://www.captcha.ru

Рекомендуем



XSS и HTML Такая фильтрация довольно сложна, ее сложность усугубляется тем, что браузеры допускают значительные вольности при написании HTML-разметки, стилей и скриптов, могут прощать отсутствующие или незакрытые кавычки, кодированные различными алгоритмами символы, лишние пробельные символы и пр


CSRF: совершение действия от имени пользователя Дело тут, правда, такое, что от пользователей можно и требовать обязательного включения передачи Referer, тем более что часто на этом базируется защита от размещения ссылок на ваш контент на чужих сайтах


XSS и BB-коды Всем этим мы добъемся того, что наш фильтр будет правильно работать и в случае появления поддержки в браузерах каких-то конструкций, которых, возможно, еще и в проекте нет