Бывало ли у вас такое, что вы зарегистрировались на каком-либо сервисе, а потом начинали получать множество маркетинговой корреспонденции от него? Рассылки — то, без чего сегодня вряд ли будет жив хотя бы один сетевой сервис. Иногда, они бывают полезными, а иногда — бывают откровенным спамом. В России бороться со спамом законным путем помогает 152-ФЗ — он обязывает владельцев сервиса предоставить пользователю возможность отписаться от рассылки, а 149-ФЗ требует от сервиса получить согласие пользователя (иногда, согласие — та самая едва заметная галочка в окне регистрации или входа). В Европе все тоже хорошо — есть GDPR (General Data Protection Regulation), который обязывает сервисы собирать согласия пользователей крайне прозрачно, а возможность отписаться от рассылки не прятать за четырьмя стенами мольб «Не отписывайся, плз». Есть и почтовый спам, который злоумышленники отправляют вопреки всем этим законам, но речь не о нём.
В приложениях тоже есть рассылки. Открывали когда нибудь «уведомления» в приложении N, чтобы увидеть там сотню рекламных писем (клиенты Т-Банка, привет)? В приложениях, которые разрабатывает какая-нибудь крупная бигтех-компания, обычно, нет легкодоступных дыр, которые позволяют узнать список получателей уведомления. В почтовых рассылках всех сервисов (за крайне редкими исключениями) открыв список получателей сообщения вы увидите только себя. Но в приложениях, где ЦА не умеет искать уязвимости (наверно, по мнению разработчиков) таким иногда пренебрегают. Во многих регионах России, включая мой — Смоленскую область, используется одна и та же система электронного дневника («под капотом» крутится один и тот же сервис). Веб-версия дневника не использует API, а запрашивает у сервера готовую страницу, где интересуемые данные уже вшиты.

Я поставил перед собой цель — автоматизировать обращения к дневнику для того, чтобы получать информацию о новом домашнем задании сразу, как его публикует учитель. Предполагая, что мобильное приложение дневника точно не будет парсить веб-версию дневника для того, чтобы получать данные, я вооружился HTTP Toolkit и пошёл в бой.

Уже спустя час я закончил свой «фетчер» домашки, и решил изучить, как приложение работает изнутри.

Кстати, видите запрос /getrules в списке запросов? А ведь он нам недоговаривает.

Здесь можно заметить скудный арсенал из шести эндпойнтов. Можно вернуться обратно к списку запросов и сказать «а где же getmessages? его что, запретили?». Ответ — getrules не сообщил даже половину всего того, что есть в API. Открываем в приложении вкладку «Сообщения» и читаем респонс.

Хм, а что это за рассылка? Не помню, чтобы я получал такой бред. Надо бы посмотреть.

Дневник любезно предоставил мне список всех получателей этой рассылки, а по совместительству список всех учеников моего общеобразовательного учреждения. Даже с ФИО. Даже с внутренним ID. Ещё и в алфавитной сортировке. Этот респонс не составит труда обработать и получить человекочитаемый список учеников. Их тут 499, если кому интересно.
Не думаю, что это кому-то навредит, но сам факт подобного идиотизма в ответе наводит на вопрос — зачем отдавать список всех получателей с их ФИО?