WWW-ИНТЕРФЕЙС ЭЛЕКТРОННОЙ ПОЧТЫ

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

Рассмотрим самолично принцип, по которому производится взлом почтового ящика чрез WWW. Мы владеем сервер www.po4ta.ru также нам нужно проникнуть в почтовый шкатулка user@po4ta.ru. Регистрируем аккаунт на этом бла бла сервере test@po4ta.ru также главным занятием заходим в настройки нашего новоиспеченого ящика. Наибольший интерес для нас представляет опция "Смена пароля", в каком месте предлагается ввести новоиспеченный пароль, подтвердить его также отправить данные.

Смена пароля
Введите новоиспеченный пароль:
Повторите ввод:


Код такой HTML-страницы может выглядеть следующим образом:

Здесь change_pass.php- серверный скрипт, который принимает значения pass1, pass2 (пароль с подтверждением) также username (содержимое скрытого поля, которое указывает на каком именно ящике производится смена пароля)
Если сформировать соответсвующий GET-запрос, то полчутся следующая строка:
http://po4ta.ru/change_pass.php?username=test&pass1=НОВЫЙ_ПАРОЛЬ&pass2=НОВЫЙ_ПАРОЛЬ

Теперь вставим данную ссылку в адресную строку текущего окна нашего браузера, а также отошлем данные на сервер. В результате мы приобретаем извещение о том, что пароль в ящике test@po4ta.ru успешно изменен. А что, если попробовать подделать значение переменной username а также сменить пароль на интересующем нас ящике. Отсылаем:
http://po4ta.ru/change_pass.php?username=user&pass1=НОВЫЙ_ПАРОЛЬ&pass2=НОВЫЙ_ПАРОЛЬ
Сервер скорее всего выдаст нам сообщение типа "Вы произвели доступ к ресурсам, требующим авторизации" также тп. Это означает, что change_pass.php, какой обрабатывает запросы, установил, что cookies, записаные на наш диск в истоке сеанса труда с почтой соответсвуют пользователю test@po4ta.ru, но никоим образом никак не user@po4ta.ru. Помимо cookies идентификация пользователя может производиться по IP-адресу либо специальному ID-ключу, о котором будет рассказано позже.

Значит пользователь вынужден отправить запрос сам, с ящика user@po4ta.ru. "Заставить" пользователя сделать это, можно послав ему послание с JavaScript-кодом, при изобретении которого данные автоматически отправлены на сервер с его IP также cookies. Примеры такого кода:

Или методом POST:

Все переменные задаем в скрытых полях, также при наведении пользователем курсора мыши на тело нашего письма, обработчик событий OnMouseOver обновляет данные. Можно полностью замаскировать процесс смены пароля, модернизировав код:



ТЕКСТ СООБЩЕНИЯ


Таблица размером 1000x1000 расширяет зону действия обработчика onMouseOver, однако аттрибут target тэга form загружает результат выполнения запроса в нулевой фрейм zeroFrame, теперь процесс полностью скрыт от око пользователя.


Возможно, так работал главный почтовый сервер с первым WWW-интерфейсом. В настоящее пора взлом мыла таким способом осуществить нельзя. Во-первых на большинстве серверов нынче при смене пароля, наряду с новым, предлагается ввести древний пароль. Во-вторых трудно найти почтовый сервер, какой позволяет выполнять JavaScript в письмах также приаттаченных файлах.

Почтовые фильтры

Это программы, которые находятся на сервере, они обрабатывают входящие письма, вырезая либо изменяя в них код, содержащий потенциальную опасность. Так, к примеру script, позже фильтрации может выглядеть Xscript либо scripX. Вся программа, находящяяся в контейнере script в этом случае никак не станет интерпретироваться браузером как мы спланировали. Обойти охрану фильтрами разрешено или поиском документированых способов внедрения нашего кода, никак не учтенных разработчиками почтовиков, либо сокрытием его, то кушать отсылка кода в модернизированном, нераспозноваемом для фильтра виде.
Рассмотрим другие способы выполнения запроса, приведенного в предыдущем образце.


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



Вместо адреса картинки загружается адрес настройки со сменой пароля. Не сработает, если пользователь отключает графику в свем браузере. Исправно функционирует на большинстве серверов. Но на некоторых, к образцу www.rambler.ru, загрузка URL осуществляется через специальное приложение redirect/http://po4ta.ru/change_pass.php?username=user&pass1=НОВЫЙ_ПАРОЛЬ&pass2=НОВЫЙ_ПАРОЛЬ




Указанный URL загружается по истечении поры X(сек). Такой тэг в настоящее время работает на www.hotbox.ru

Другие уязвимости

Исследуя настройки почтовых ящиков на различных мыльных серверах, помимо смены пароля без подтверждения, разрешено найти еще немало принципиальных недостатков, используя которые разрешено завладеть чужим ящиком, прочитать либо удалить послания также т.д. Вернемся к нашей почте на www.po4ta.ru. Обретаем опцию "Переадресация". Нам пердлагается ввести один либо несколько адресов, на которые будут пересылаться письма.



Когда мы в поле emailsукажем адрес пересылки test1@po4ta.ru, также подтвердим изменение настроек нажатием кнопки "Сохранить", страница загрузится с новой формой:



Чтобы изменения вступили в силу, тербуется ввести код подтверждения, который отправляется посланием на test1@po4ta.ru. Таким образом, мы можем приобретать всю входящую корреспонденцию интересующего нас пользователя, ежели поочередно отправим ему пара HTML-письма, в главном из которых содержится вид настройки пересылки, однако во другом - подтверждение со специальным, известным нам кодом. Такая схема "прослушивания" чужого почтового ящика несколько громоздка, но зато сохранилось немало версий почтовиков, не запрашивающих пароля на установку переадрисации писем.

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

Еще чаще, одним лишь только нажатием кнопки, в некоторых почтовиках удаляется учетная запись пользователя. Типичный образец - www.yandex.ru. На удаление ящика запрашивается пароль, а вот на удаление сопряженного сервиса - сайта *.narod.ru - пароль никак не требуется. Элементарно, разрешено удалить сайт "жертвы" с помощью его почтового ящика, выполнив запрос:http://narod.yandex.ru/registration/unlogin.xhtml?DeleteLogin=%C4%E0, который разрешено спрятать в тэге IMG.

Несанкционированное изменение других настроек хоть а также представляют значительно меньшую риск, но могут косвенно повлиять на захват почтвого ящика
Изменить личную информацию (имя также т.д.)
Изменить контактную информацию
Установить фильтр
Очистить папку XXXX
Отослать письмо от имени пользователя
Установить сборщик POP3

ID-КЛЮЧ

В истоке статьи мы оговорился, что в некоторых случаях используется символьный идентификатор, при труду с почтой его разрешено наблюдать в адресной строке браузера:



Введение такой системы уже никак не позволяет нам выполнить стандартный запрос, посокльку ID генерируется при каждом новоиспеченом заходе в почтовый ящик, а также уничтожается позже завершения сеанса труда нажатием кнопки "Выход". Однако, при некорректном завершении сессии появляется возможность многократного использования идентификатора.
Это легко проверить, скопировав адрес в буфер обмена, закрыть окно также вставить в адресную строку нового окна - мы снова оказались в нашем ящике. Теперь, ежели ID-ключу не сопоставляется IP-адрес(еще один вид защиты), похожим образом разрешено проникнуть в шкатулка иного пользователя, для этого достаточно перехватить поле location с помощью внедрения в наше послание тэгов, которые отсылают запрос на html-сниффер, который, в свою очередь, логирует переменную HTTP_REFERER в специальном файле. Самый бесхитростный способ, как обычно, указать адрес сниффера взамен предполагаемой картинки:



Файл лога - http://zero.h12.ru/stat/base.txt
Еще несколько адресов снифферов кушать на этом сайте. На самом занятии, насписать скрипт, отслеживающий с какого адреса к нему поступает запрос- занятие пяти минут, значительно сложнее найти хостинг для его размещения. Пример такого скрипта на php:



Дальше рассмотрим ситуацию, в какое время чуждый ID для нас бесполезен вследствие того, что ему ставится в соответсвие IP адрес пользователя. Вернемся к системе, в какое время пользователь сам, со своим IP, меняет настройки ящика, открыв наше письмо. Предположим кушать такая опция Заблокировать всю входящую почту, также нам хотелось бы включить её на чьем-то ящике.



Идентификатор передается в скрытом поле "id", поэтому нынче , дабы изменить настройки, нужно в реальном поры получить его также подставить. Первое, что прибегает в голову-JavaScript. В нем кушать специализированный объект location, также он содержит URL активного акта. Для получения из поля location нашего идентификатора, воспользуемся функцией substr( ).



Напрямую substr( ) с location никак не трудится, поэтому добавляем к нему символ #, присваиваем одной переменной, однако потом в другую переменную заносим результат вычисления, то кушать вырезанный ID-ключ. Аргументы substr( ): x-позиция от истока строки, x1-позиция от x. В строке http://www.newpochta.ru/session?id=a349f8d7be67c90af8873fc7ad803cf5&folder=inboxидентификатор начинается с 36-й позиции также владеет 32 символа, поэтому доводы примет вид substr(36, 32);

Другой средство получения ID - снова бла бла использовать скрипт на своем хосте. Прописываем в отсылаемом файле:




ЕЩЕ РАЗ О ФИЛЬТРАХ

Если на веб-интерфейсах с cookie-идентификацией мы посылали стандартные запросы на смену настроек, также могли использовать простые тэги HTML, то при труду с ID-ключами начинается прямая необходимость внедрения в письмо JavaScript- кода, но разработчики почтовых серверов перекрывают такую возможность фильтрами, о них говорилось выше. Теперь поговорим о способах надувательства этих фильтров. Воспользоваться никак не совсем привычными методами, которые программисты зачастую упускают из виду:



Фактически, JS тут "прячется" в значениях аттрибутов тэгов, которые работают с URL а также генерируется динамически, при загрузке указанного адреса.

Иногда фильтр разрешено обмануть, мало скрыв систему из вредоносного html, так на www.mail.ru внутрь всякого тэга разрешено внедрить обработчик событий JS. В номральном режиме строка



Но ежели убрать пробел между значением аттрибута и обработчиком, то фильтр пропустит такую конструкцию:



Изъян такого способа в том, что в некоторой степени появляется привязка к определенному браузеру, поскольку иной раз им свойственно по-разному интерпретировать HTML-код.
Последующий значительный момент - в каком виде отослать письмо. Если прикрепить html-файл, то целостность послания сохранится в аттачменте, но в теле сообщения нужные параметры никак не отобразятся. Поэтому целесообразно отправлять в HTML-формате. Такую функцию поддерживают некоторые WWW-интерфейсы также почтовые программы POP3. В диспетчере сообщений при этом возле послания никак не станет не двигаться значок прикрепленного файла.

ПОДВОДЯ ИТОГИ

Итак, задавшись целью проникнуть в чуждый почтовый ящик, в первую очередь нужно исследовать систему на наличие уязвимостей. Иногда программеры допускают существенные погрешности в написании сценариев. Приблизительно каждая служба владеет функцию возобновления забытых паролей. Обычно на первой странице вводится логин, на другой возражение на секретный задача, однако на третьей, ежели ответ правильный - смена пароля. Допустим, на интересующей нас системе имеется серьезная прореха в системе безопасности, однако именно: мы ответили правильно на секретный задача, также сгенерировалась новая страница с формой смены пароля, однако при рассмотрении HTML этой страницы, обнаружили, что распознавание пользователя происходит только по переменной в поле "username", именно, подставив другое имя пользователя, меняем пароль в чужом ящике. Либо такой вариация: в обмен на правильный возражение выдается идентификатор, похожий тому, что используется в течении сеанса труда с почтой. Возможно, получив актуальный ID-ключ также подставив в скрытые поля, сервер примет новые настройки. Уповать на такие упущения, я думаю, вздорно, потому что за этим следят строго также подобные погрешности не повторяются. Поэтому будем искать уязвимости в самом принципе организации сервиса.

Если присмотреться к web- почте на www.newmail.ru (nm.ru, pochta.ru, orc.ru, nightmail.ru, hotmail.ru), то там как однажды имеются такие недостатки. Обратимся опять к опции возобновления пароля. Предлагается ответить на секретный задача, также если ответ безошибочный - пароль пересылается на указанный в настройках e-mail. И хоть ответ также e-mail находятся в разных страницах внутри почты, представляется возможным изменить также то также другое, тем более фильтр никак не вырезает даже JavaScript. В дополнение ко всему при возобновлении пароля выводится еще одна форма, в неё нужно ввести как разрешено больше данных (они так бла бла находятся в настройках ящика) а также отправить правителю. Как заранее присвоить любые данные нужному пользователю - уже известно.

Естественно, в большинстве почтовиков все перекрыто, но лазейки кушать прктически всегда. И ежели в проникновении в шкатулка пользователя для нас есть большой интерес либо необходимость, то получив о нём как разрешено больше информации и разработав своеобразную "стратегическую" схему из представленных в этой статье методов, разрешено добиться неплохих результатов.
Вот реальные примеры. Злоумышленник хочет получить пароль от конкретного сервиса, которым пользуется "жертва" (не обязательно почтовый, например хостинг). При этом ему достоверно известно что забытый пароль высылается на user@pisem.net. Он отправляет на этот бла бла шкатулка послание с html-тэгами:





После удаления учетной записи он регистрирует новую, с таким бла бла именем также приобретает на неё пароль.

Сохранилась возможность проникнуть с такой бла бла целью также в аккаунт на mail.ru. Одним посланием сбрасываем настройки безопасности



Теперь при каждом следующем заходе пользователю выдается ID-ключ, причем IP-адрес не учитывается, однако как уже было рассмотрено, ежели перехватить его с помощью сниффера, то несложно оказаться внутри также прочесть нужное письмо.

В заключение еще однажды отмечу, что информация, изложеная здесь, давным-давно известна более либо менее грамотным пользователям, также все бла бла подход ко взлому ящика чрез html, на мой взор также сегодня отчуждает больше результатов нежели БрутФорс либо социальная инженерия. Нужно всего лишь только найти слабое помещение а также способ воспользоваться им.