Атакуем веб-приложения, XSS
Данный пост будет носить теоретический характер. В нём продолжится серия "Атакуем веб-приложения" и будет теоретически описана XSS.
Xss это Css (Cross Site Scripting)
Чтобы не путать с CSS также назвыают XSS
Впервые этот БАГ появился в 1997.
Как используют XSS.
Для начала нам нужно знать что такое Cookie.
Cookie служат для сохранения учетных данных сайта на компьютере поситителя.
Если вы зарегестрировались на сайте под ником 'blabluble', то сайт сохранил у вас на компьютере файл с cookies, где закодированы ваши данные.
А если вы есть админ и у вас есть доступ к сайту, а я - юзер, который украл у вас(админа) cookies, то я могу спокойно зайти на сайт, и сайт меня определяет как 'admin' - у меня будут администраторские права.
Мы разобрались что такое куки идём дальше...
Чтобы перехватить cookies надо найти место на сайте, где можно выполнить XSS-атаку.
Что такое XSS-атака?
XSS атаки - это атаки не на сам сайт, а на пользователей сайта.
XSS - это недоработка в фильтре, приложении.
Бывают пассивные XSS и активные XSS.
Пассивные - это Xss, которые требуют от жертвы непосредственного участия + есть специфические ограничения и сложности.
Поэтому, пассивные XSS не очень ценятся.
Например, нужно заставить её пройти по ссылке, что потребует социальной инженерии, хитрости.
Активные - это XSS, которые, не требуют никаких дополнительных действий со стороны жертвы - ей достаточно лишь открыть страницу с вашим XSS и JS-код выполнится автоматически.
Благодаря своей автоматизированности - они очень полезны и ценны.
Например, активные хсс существуют в BB-тегах из-за недостаточной фильтрации, когда вы оставляете сообщение на форуме\гостевухе\чате, которое будет всегда активен при каждом обновлении.
Как узнать, что XSS на даном сайте проходит?
Ужасно распрастраннёная узявимость типа
<script>alert()</script>
Пытаемся вставить во все различные поля этот скрипт... если вышло сообщение значит скрипт обработался и выполнился.
Самая распостраненая XSS (наблюдаеться во всех местах где плохая фильтрация):
"><script>alert()</script>
Давайте подумаем, что мы делаем, когда вводим в поле "><script>alert()</script> , что происходит?
"><script>alert()</script>
какой-то переменной присваиваеться значение поля. Переменная обрабатывается, "> выполняеться, закрывает тег, после чего выполняется
<script>alert()</script>
Эта XSS самая распостраненая в поисковиках:
Просматриваем все поля сайта и пытаемся вставить "><script>alert()</script>