Почтовые клиенты являются очень популярными приложениями, некоторые из них предустановлены в телефонах через OEM-производителей, а другие можно загрузить с торговой площадки. Электронная почта — это метод связи, который никогда не умрет благодаря простоте и простоте использования.

У меня есть несколько учетных записей электронной почты, одна для личной электронной почты (с использованием моего собственного домена), учетная запись электронной почты Gmail, учетная запись Microsoft Live и школьная учетная запись электронной почты (с использованием службы Google Class). Я использовал K-9 с самого начала, так как он позволил мне синхронизировать мою личную электронную почту с моей электронной почтой Gmail и объединить входящие. Есть и другие почтовые клиенты, которые также поддерживают эту функциональность, например BlueMail (которую я использовал до сих пор). Сегодня мне пришло в голову, что мне нужно отправить электронное письмо с моего компьютера, и я решил использовать HTML-функцию Thunderbird для создания таблицы. Я быстро понял, что функция HTML — обоюдоострый инструмент. Я мог использовать тег сценария и выполнять все, что захочу, что сделало меня властелином вселенной.
Я знал, что в BlueMail есть функция автоматической загрузки JS и Я никогда не думал об этом, до сих пор.

Тест на безопасность

Я загрузил несколько клиентов из Play Store, перечисленных ниже, а также количество установок:
- BlueMail: 1M
- K-@: 50K
- K-9: 5M
- TypeApp: 1M
- Aqua Mail: 1M
- Newton: 1M
- Gmail/Inbox: 1B

Процедура тестирования:

Я отправил три письма на свою учетную запись, одно с диалоговым окном оповещения [js: alert()], одно со строкой записи документа и одно с перенаправлением (используя window.location.href) на произвольный URL-адрес.

Я отправил электронные письма с помощью Thunderbird. Пример электронной почты ниже:

Я продолжаю открывать письмо в почтовых клиентах.

Результаты:

K-@/K-9

Эти почтовые клиенты не были затронуты автоматически запускаемым эксплойтом JS, K-@ правильно загрузил электронную почту, не отображая ничего из кода JavaScript, то же самое сделал K-9.

Предупреждение: не затронуто.
Запись документа: не затронуто.
Перенаправление: не затронуто.

Аква-почта

AquaMail не выполнил код JavaScript.

Предупреждение: не затронуто.
Запись документа: не затронуто.
Перенаправление: не затронуто.

Ньютон (CloudMagic)

Ньютон не пострадал от этой ошибки.

Предупреждение: не затронуто.
запись документа: не затронуто.
перенаправление: не затронуто.

Gmail/Входящие

Опять же, на ошибку JS не влияет.

Предупреждение: не затронуто.
запись документа: не затронуто.
перенаправление: не затронуто.

Затронутые клиенты

BlueMail и TypeApp подвержены ошибке JavaScript. Макет похож, если не равен, и оба запускали JS, когда пользователь открывал электронное письмо!

Итак… Что можно сделать с этим эксплойтом? JS позволяет вам стать мошенником электронной почты следующего поколения.

BlueMail показывает предупреждение JavaScript:

TypeApp показывает электронное письмо, частично написанное с помощью JavaScript-кода document.WriteIn:

Теперь, о чудо, последняя уловка: настоящая афера с электронной почтой!

Во-первых, я делаю суперлегальное (не судите строго!) электронное письмо:

Затем я вставляю это:

‹script›window.location.href = ‘https://www.youtube.com/watch?v=dQw4w9WgXcQ’;‹/script›

И наблюдайте, как происходит хаос:

Заключение

Что ж… не используйте уязвимые почтовые клиенты! Я лично использую K-9, и вам тоже следует. Что касается решения этой проблемы, я предлагаю TypeApp и BlueMail включить переключатель для автоматического выполнения кода JS или добавить баннер вверху, чтобы пользователи могли показывать электронную почту с поддержкой JavaScript. Теперь посмотрите, сколько ваших друзей используют BlueMail/TypeApp и создайте массовую рассылку. Энтропия!

ОБНОВИТЬ:

Клиент BlueMail не будет выполнять JS в следующем обновлении, просто убедитесь, что вы используете следующее обновление, следующее за 1.9.2.11, TypeApp все еще подвержен ошибке JS на данный момент.