Активная XSS на Sports.ru и как ей можно было воспользоваться. А так же…
|Не так давно на Хабре появился пост от Sports.ru про их CDN (который заминусовали) и то, как они стараются делать всё для пользователей портала. Всё да не всё…
Про безопасность ребята совсем забыли. И так, по порядку.
Всё началось с проверки полей доступных для заполнения в личном кабинете, на которых сразу получилось найти активную XSS, но увы, она нам ничего не давала, т.к. при размещении сообщения в комментариях — всё резалось, а имена вообще не отображались. Если забивать XSS в поле никнейма (оно тоже не фильтровалось) — то после сохранения, оно обновлялось на дефолтное и наша XSS пропадала. Но, раз в таких простых вещах как «Личный кабинет» поля не фильтруются, значит, в некоторых других разделах портала они тоже могут пропускать наши XSS.
Следующее, что я решил попробовать — «Блоги». Они сразу привлекли внимание, т.к. там пользователи более активно читают пишут комментят, да и самому можно писать без всяких предварительных модераций. Из минусов — на главную страницу конечно, пост не попадет, но вот ссылку пользователям через комментарии можно скормить.
После проверки заголовка можно понять, что куки работают на все суб-домены sports.ru и уязвимость можно сказать, глобальная.
Как видно, «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«.
Вот мы и добрались до блогов.
Создаем свой блог:
Но как вы понимаете, это еще не конец, дальше еще один интересный момент. Возможность редактировать или удалять ЧУЖИЕ блоги.
После создания первого сообщения, у нас появляется возможность его редактировать:
Для редактирования блога у нас есть чудесная ссылка _www.sports.ru/tribuna/blogs/blamssfer/edit_post.html?id=123456 и в этой ссылке если мы подменим значние edit_post.html?id= на любое другое (возьмем любой чужой блог), то получим возможность его тоже редактировать, или удалить вообще. На видео обратите внимание на точки в самом конце поста. Их было две, после редактирования осталась всего одна.
Видео:
…the end! 🙂
Может быть интересно: