Как стать автором
Обновить
Positive Technologies
Лидер результативной кибербезопасности

Хабр без ограничений: Магия «плюса» в адресе почты

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров3.9K

В 20 лет я планово обновил паспорт. Через пару недель мне позвонили мошенники. С самого начала меня начали «обрабатывать» и для укрепления доверия называть мои ПДн. В разгаре беседы «господа из техподдержки компании N» назвали мои новые паспортные данные!

Я страшно удивился скорости утечки нового паспорта и стало интересно: кто же был источником слива? Тогда я нашел лайфхак, который помогает с высокой вероятностью выяснить, откуда произошла утечка (пользуюсь им и по сей день).

В чем суть?

Если добавить к вашему email знак "+" (обязательно ДО символа "@") и любой текст (например, email+test@gmail.com), то почтовые сервисы (Gmail, Mail.ru, Outlook и др.) будут считать это тем же адресом. Письма будут приходить на основной email, но текст после символа "+" будет отличаться и помогать отследить источник.

Происходит это из-за того, что текст после "+" игнорируется почтовым сервером при доставке писем, но сохраняется в адресе получателя.

Как это работает?

Представим, что у вас есть почтовый ящик andrew.andreev.99@mail.ru:
1. Вы регистрируетесь на сайте с адресом, например, andrew.andreev.99+github@mail.ru.
2. Письма от этого сайта будут приходить на andrew.andreev.99@mail.ru, но в адресе получателя будет указано andrew.andreev.99+github@mail.ru

Пример:

Сообщение, которое пришло от github.com
Сообщение, которое пришло от github.com

3. Если github «сольет» кому-то ваши данные, то спам будет отправляться на andrew.andreev.99+github@mail.ru (а приходить на andrew.andreev.99@mail.ru) и вы запросто поймете, откуда у спамеров появились ваши данные.

Для чего можно использовать?

  1. Отслеживание утечек данных (пример привел выше)

  2. Организация писем: можно создавать уникальные адреса для каждого сервиса (например, email+netflix@gmail.comemail+github@gmail.com) и настраивать фильтры для автоматической сортировки.

  3. Тестирование и регистрация для разработчиков или тестировщиков: использовать "+" для создания временных адресов (например, email+test1@gmail.comemail+test2@gmail.com). Для большинства сайтов – каждый из таких email-ов расцениваются как разные почты. Т.е. на одну почту становится возможным зарегистрировать неограниченное количество аккаунтов.

При чём здесь Хабр?

Думаю, все знают, что на один email можно завести только один аккаунт на Хабре. Но что, если я вам докажу обратное?..

Итак, у нас в распоряжении есть почта andrew.andreev.99@mail.ru, приступим к эксперименту. Попробуем сделать аккаунт для почты andrew.andreev.99+test1@mail.ru c никнеймом ruvmtest1:

Затем на andrew.andreev.99@mail.ru приходит код подтверждения, где получателем указан andrew.andreev.99+test1@mail.ru:

Вводим код и получаем доступ к новому аккаунту:

Идем дальше – попробуем создать ещё один аккаунт. На этот раз в качестве почты укажем andrew.andreev.99+test2@mail.ru c никнеймом ruvmtest2:

На почту andrew.andreev.99@mail.ru вновь приходит код подтверждения, где получателем указан andrew.andreev.99+test2@mail.ru:

Вводим код и получаем доступ к новому аккаунту:

Таким образом, с одной почты можно создать неограниченное количество аккаунтов, из-за того что ресурс не понимает, что "+" и всё, что идет после него в поле email — это комментарий. Т.е. ресурс «думает», что это всё разные почты.

Как это исправить?

Некоторые ресурсы для устранения вышеописанной «фичи» запрещают использовать знак "+" в поле email (например, mail.ru). Это, наверное, самый простой способ устранения проблемы. 

Более продвинутых способов фильтрации пользовательского ввода можно придумать довольно много. Давайте в комментариях делиться идеями, как бы вы устранили проблему, если бы были разработчиком подобного ресурса :)

Если вам понравилась статья и вы хотите узнавать больше о подобных лайфхаках, то можете подписаться на мой авторский Telegram-канал!


UPD: после написания черновика статьи, я отправил его для ознакомления сотрудникам Хабра и получил следующий комментарий:

Алексей @Boomburum

Руководитель отдела поддержки пользователей Хабра

В общем, обсудил с разработкой – они про это знают, умышленно не правили, т.к. по RFC противоречия нет, другие спецсимволы там многие не допускаются.

Как уязвимость мы это не оценили бы – тут нет «кражи данных» или типа того, максимум для спама можно использовать. Но коллеги согласились с тем, что тут можно кое-что доработать – чтобы можно было использовать плюсы в почте, но при этом не регалась куча аккаунтов (говоря проще – решить проблему чуть более элегантно, чем у mail.ru).

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

Спустя пару часов пришло сообщение, что «хотфикс» с запретом использования "+" в строке с email-ом пролит, чуть позже алгоритм доработают ("+" разрешат) и он будет работать «как надо». Быстрая работа хабровцев, респект!

Ещё ровно месяц понадобился Хабру на то, чтобы сделать «как надо», цитирую:

В качестве хотфикса мы запретили регистрацию почт с символом “+”, чтобы никто не начал массово регистрировать аккаунты. А также проверили, много ли пользователей было с такими адресами — некоторое количество нашлось, но никаких признаков их недобросовестного использования не обнаружилось. На внеплановую доработку спеки, разработку и тестирование нам понадобилось время, но в результате мы улучшили механизм проверки почты — символ “+” в адресе почты стал снова доступен. Теперь его можно указать при регистрации (для всех тех преимуществ, перечисленных выше), однако «под капотом» часть адреса после символа “+” «очищается» и проверяется на уникальность, поэтому зарегистрировать на одну почту много аккаунтов уже не получится.

Что ж, всё по-честному. Правда, теперь всё описанное выше больше нельзя будет повторить на habr.com, но тот же github.com все ещё доступен для подобных экспериментов.

И здесь я не удержусь, чтобы напомнить, что 

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

Теги:
Хабы:
+35
Комментарии34

Публикации

Информация

Сайт
www.ptsecurity.com
Дата регистрации
Дата основания
2002
Численность
1 001–5 000 человек
Местоположение
Россия