аргумент CSRF-ID, який не зможе генеруватися через відправку запитів зі сторонніх серверів, або буде генерувати невірне значення для конкретного авторизованого користувача, в результаті чого запит не оброблений.
Інші недокументовані можливості
Форма авторизації користувача на порталі початку не мала обмежень на кількість спроб авторизаций з неправильним логіном і/або паролем. Веб-програмісти, з відділу з розробки, аргументували таку можливість тим, що логіном для авторизації був e-mailпользователя, який ніде не був наданий у відкритому вигляді, тобто користувачі можуть бачити тільки нікнейми один одного. Але чи справді, e-mailпользователя настільки не доступний, як здається на перший погляд? p align="justify"> Найпростіший варіант - зловмисник за допомогою обману міг дізнатися у гравця його e-mail, і згодом без труднощів підбирати пароль (наприклад, за допомогою автоматизованих скриптів). Але даний варіант не є точним, і варіант впливу - точковий, тобто тільки на один конкретний аккаунт. p align="justify"> Пізніше мною була знайдена інша можливість масового обнаруженіяe-mail користувачів. Так як ігровий проект WorldOfTanks є проектом - В«freetoplayВ» (бізнес-модель, спосіб поширення комп'ютерних ігор, що дозволяє користувачеві грати без внесення грошових коштів, але, при внесенні грошових коштів, користувач отримував деяку перевагу), то проект приймав грошові кошти користувачів з різних країн, при цьому розрізняється не тільки вид грошової валюти, а й способи оплати. Для того щоб всі грошові кошти, внесені користувачами проекту, можна було отримати в одній валюті і в одному варіанті виплати, організація скористалася послугами агрегатора платежів 2pay.ru (xsolla.ru). p align="justify"> Агрегатор платежів виконує роль посередника, конвертуючи всілякі валюти і способи оплати в одну валюту, передану згодом організації, яка користується їх послугами.
При внесенні грошових коштів на свій аккаунт, користувач потрапляв на сторінку з інформацією про оплату, в якій повідомлялося про статус платежу, вказувалися сума, дата унікальний номер транзакції та реквізит платежу. А реквізит платежу - e-mailігрока:
В
Саме посилання на сторінку з інформацією про оплату мала вигляд:
http://secure.xsolla.com /? payment = 29512195.
Як можна помітити, посилання містить параметр В«paymentВ», який збігається з унікальним номером транзакції. Як виявилося, при зміні посилання, приймаючи значення параметра від 0 до 29512195, можна було переглядати абсолютно усі платіжки цього агрегатора на поточний момент. p align="justify"> Мною був написаний автоматизований скрипт, який проходив всі значення цього параметра, і записував в текстовий файл всі значення реквізитів (тобто e-mailпользователей) і кількість внесених грошових коштів. При цьому, необхідно було звертати увагу тільки на сторінки з полем В«ПродавецьВ» і його значенням В«WorldOfTanksВ», так як агрегатор платежів обслуговував та інші проекти, які нам не цікаві. Зібрана мною база e-mailпользователей (вони ж логіни при авторизації) налічувала близько 570 000 записів платоспроможних гравців проекту, що є серйозною витоком конфіденційних даних користувачів. br/>В
Маючи на руках зібрану базу логінів від акаунтів гравців, мною був проведений експеримент, по спробі підбору паролів. Був написаний автоматизований скрипт, який перевіряв кожен логін з бази на десять найпоширеніших паролів:
123456
qwerty
qwertyuiop
qazwsx
zaqxsw
qazwsxedc
gfhjkm
ghbdtn
Як показали результати експерименту, грубому перебору по десятці перерахованих паролів піддалися ~ 20% всіх логінів.
Зібрана статистика та результати експерименту були передані у відділ розробки програмістам, які заблокували можливість багаторазового невірного введення пароля та/або логіна на порталі проекту. Сама можливість збору бази через сайт-агрегатор платежів була теж виправлена, шляхом додавання в адресу сторінки параметра В«hashВ», кіт орий генерувався для кожного платежу окремо і був доступний тільки користувачеві, проводящему платіж: http://secure.xsolla.com/?payment = 29512195 & hash = ac53b097df ... p>
Висновок
У ході виконання індивідуального завдання на посаді хак-майстра в СТОВ В«Гейм СтрімВ» я навчився:
В§ Проводити технічні тести на уразливості веб-інтерфейсу;
В§ Проводити технічні тести на уразливості програмного пр...