Как узнать почту любого пользователя на ЯКлассе

Всем привет! Давно не было постов, ведь я был занят экзаменами. Теперь свободного времени стало больше, и я решил снова написать статью об образовательных сайтах.

Сегодня речь пойдет о сайте “ЯКласс“ (доступ к которому мне был запрещен из-за моего недочета), том самом проекте из Сколково который заставляет школьников страдать.

Лазейки сайта

Я много времени потратил на то, чтобы найти способ брать с сайта ответы, и хотя я его так и не нашел, я узнал много интересного о сайте и его API.

(частичный) XSS в нике

Во-первых, оказалось, что на сайте возможен XSS благодаря полям с ФИО! На некоторых страницах это фильтруется:

разрабы хотят так

… а на некоторых нет (тут для примера стиль на переворот 90 градусов):

разрабы хотят не так

вот эта же страница но стиль выключен

Максимальный размер XSS кода: 60 символов (20 на имя, 20 на фамилию и 20 на отчество)

вот поля для XSS

XSS работает на страницах со списками учеников и в письмах (например туда можно вставлять фото):

вот пример

Слив почты любого пользователя

Также на сайте можно узнать почту совершенно любого пользователя. Для этого просто нужно включить режим репетитора в настройках профиля, перейти на страницу “Мои Дети“, нажать “Добавить Ребенка”, далее выбрать “Да” и поиск по школам.

После всего этого вы можете найти любого пользователя, кинуть им запрос на добавление (он придет на почту и там будет видно имя аккаунта!) и потом в меню “Мои Дети“ следует выбрать профиль того человека и запросить повторную отправку письма.

вот кнопка

а вот и почта

Слив почты совсем любого пользователя

Но как же узнать почту учителя? Их нельзя добавить в своих детей… если пытаться сделать это через сам сайт. Для следующего метода понадобится возможность отправлять сайту свои запросы (я делаю это через дебаг проски программу).

Сначала найдите профиль своего учителя, это можно сделать загуглив их имя и добавив “ЯКласс”. Далее скопируйте их UID (последовательность чисел и букв в конце ссылки на их профиль) и сделайте POST запрос на

1
https://www.yaklass.ru/ajax/children/RequestParentIdentificationAjax?uid=

в конце добавив раннее скопированный UID.

После этого также сделайте POST запрос на

1
https://www.yaklass.ru/ajax/Children/ResendParentChildIdentificationEmailAjax?uid=

в конце снова добавив тот самый UID.

После этого придет ответ:

пришло

Пока что все, вскоре добавлю сюда коллекцию для постмана (из-за которых меня и забанили, выставил слишком низкую задержку между запросами) с помощью которых можно массово добавлять людей себе в список детей.

UPD: Ссылка на коллекцию

https://github.com/hyperClink/yaklass_crawler