xss-game-part-2

Пришло время рассмотреть оставшиеся три уровня этой чудо-игры. Первая часть прохождения ТУТ


Level 4: Context matters

На данном этапе мы видим поле ввода и кнопку «Create timer». Начнём с позитивного теса: просто нажмём на кнопку и посмотрим, что произойдёт.  Появился значок ожидания, а после 3-х секунд — алерт с сообщением. Попробуем в инпут вставить кроме цифры символ «’». Как видим, всё зависло и зациклилось.

Но! Заценим, что в консоли: Unexpected token ILLEGAL. Отлично-отлично, теперь посмотрим на сорсы самой страницы и подумаем, где можно внедрить нашу инъекцию…

А вот и оно: <img src=»/static/loading.gif» onload=»startTimer(‘3»);»>. Можно попробовать закрыть вызов таймера и добавить сюда наш evil alert вот как-то так:  : <img src=»/static/loading.gif» onload=»startTimer(‘3’);alert( ‘Evil css’);»>. В итоге вставим в наше поле ввода 3′);alert( ‘Evil css  и с гордостью перейдём на следующий уровень.

URL для xss атаки будет выглядеть как-то вот так: https://xssgame.appspot.com/level4/frame?timer=3′);alert(+’Evil+css


Level 5: Breaking protocol

Теперь перед нашим взором предстаёт  страница приветствия, предлагающая зайти. Кликаем по ссылке и вводим что-нибудь в е-майл поле.  После нажатия нас отправляет на confirm страницу, а потом редикерктит опять на welcome.

Что должно броситься в глаза? Вот эта штука в линке signup?next=confirm !  А что если попробовать внедрить сюда javaScript код? Скажем так:  javascript:alert(«Evil css»); Теперь вводим логи и переходим на другой уровень.


Level 6: Follow the

По мне, это самый простой уровень, если вы знаете английский язык. В первом же абзаце всё описывают по хардкору: Complex web applications sometimes have the capability to dynamically load JavaScript libraries based on the value of their URL parameters or part of location.hash.  Т.е. наша задача на этом уровне заключается в том, чтобы динамически подключить к странице скрипт. Поэтому поиграемся с урлом и попробуем подключить какой-нибудь удалённый JS.  Долго не думая, я решил попробовать jquery. После frame# я добавил //code.jquery.com/jquery-1.11.0.min.js  и увидел в нашем браузере сообщение: Loaded gadget from //code.jquery.com/jquery-1.11.0.min.js. Теперь создаём где-нибудь в интернете свой evil скрипт и добавляем его в ссылку…

Вуаля! Готово.

P.S: Четвёртая подсказка к этому уровню выглядит так: If you can’t easily host your own evil JS file, see if google.com/jsapi?callback=foo will help you here.  Если воспользоваться ей, то наш evil скрипт будет добавлен вот таким урлом:  https://xssgame.appspot.com/level6/frame#//www.google.com/jsapi?callback=alert


Всё! Краткий курс Сross Site Sсriрting вами пройден! Время атаковать сайты и получать за уязвимости деньги. Арррр!

Опубликовать в Google Plus
Опубликовать в LiveJournal
Опубликовать в Мой Мир
Опубликовать в Одноклассники
Опубликовать в Яндекс