Upload
ivan-kolodyazhny
View
2.164
Download
7
Embed Size (px)
Citation preview
QAClub #21
Agenda
• Безопасность и Web• JavaScript и HTML• XSS – что это такое и с чем его едят?• XSS: тогда и сейчас• Делаем первые шаги• Как это было у них?• Поиск XSS на сайте• Что дальше?• Пару слов о защите
2 из 20
QAClub #21
JavaScript и HTML
• Как работает браузер?• Что из себя представляет HTML?• DOM модель• JavaScript• Cookies
4 из 20
QAClub #21
XSS – что это такое и с чем его едят?
• Буквально: «межсайтовый скриптинг»• По факту: XSS injection – инъекция
сторонних скриптов на атакуемый сайт
5 из 20
QAClub #21
XSS: тогда и сейчас
• 1990-е: фан и печеньки– Прикалываться над пользователями– Воровать админские cookies на форумах
• 2000-е: карты, деньги, два ствола– Все так же воруем аккаунты– Показываем баннеры и рекламу– Атакуем «чужие» сайты
6 из 20
QAClub #21
Способы решения
• Заставить пользователя перейти по ссылке• Ввести скрипт на в поле ввода• Прячем скрипт• Отключение клиентской валидации• Ломать – не строить, или не валидный
HTML• Баги браузеров
9 из 20
QAClub #21
Заставить пользователя перейти по ссылке
• Вариант A:<a href=“mysite.com” onclick=“<script>alert('hello QAClub')</script>”>misite.com</a>
• Вариант B:<a href=“javacript:alert('hello QAClub')”>misite.com</a>
10 из 20
QAClub #21
Ввести скрипт на в поле ввода
• Простой алгоритм:– Находим поле ввода (input)– Вводим в него hello <script>alert('hello
QAClub')</script> QAClub– Смотрим что получилось
11 из 20
QAClub #21
Прячем скрипт
• Самый простой способ – HTML(URL) encode/decode– <script>alert('hello
QAClub')</script>– %3cscript%3ealert(%27hello+QAClub%27)%3c
%2fscript%3e– См. Предыдущий способ
• Advanced level:– Unicode encode– etc
12 из 20
QAClub #21
Отключение клиентской валидации
• Дебаггер JavaScript в браузере• Отправка POST/GET запросов мимо
браузера
13 из 20
QAClub #21
Как это было у них?
• Twitter, сентябрь 2011 – неправильная обработка атрибутов тега <img>
• Facebook, апрель 2011 – неправильная обработка атрибутов тега <a>
• Google – Analytics, support forum, Reader
15 из 20
QAClub #21
Поиск XSS на сайте
• Статический анализ кода• Автоматизация поиска на сайте:– Использование Web GUI– Использование POST и GET запросов
16 из 20
QAClub #21
Пару слов о защите
• Не доверять пользовательским данным• Модули для веб-серверов для фильтрации
запросов• IPS/IDS
17 из 20
QAClub #21
Список используемой литаратуры
http://blog.e0ne.info/?tag=/xss
19 из 20
Спасибо
Skype: e0ne-userBlog: http://blog.e0ne.info/
QAClub #21 19 из 19
E-mail: [email protected]: @e0ne