Bonkеrs
20.05.2015, 20:44
Привет, хакеры и не очень!
donationalerts - сервис, позволяющий стримерам платформы twitch, выводить сообщения на экран, во время онлайн-трансляции. В данной статье речь пойдет о скромной оплошности разработчиков, которая позволит нам отправить сообщение стримеру (подключенному к системе оповещений), потратив всего пару российских копеек, минуя установленную сумму доната.
Разберем момент на конкретном пользователе - twitch.tv/ceh9, его страница в системе: donationalerts.ru/w/ceh9. Форма представляет собой окно для ввода вашего ника, сообщения и суммы доната с выпадающим списком для выбора валюты.
http://s017.radikal.ru/i432/1505/c7/17eeb66b1bc2.png
Нас интересует код выпадающего списка (приведен ниже). Как можно заметить, веб-опции не предоставляют возможность выбрать KZT. Однако, в коде всех подобных страниц присутствует вариант с оплатой тенге. К сведению, 1 WMR = 4 WMK (казахский тенге).
Code:
Минимальная сумма:
50.00 RUB
1.00 USD
20000.00 BYR
20.00 UAH
1.00 EUR
0.02 KZT
На уровне запросов, отправка сообщения происходит в три этапа: передача post-параметров data и form; перенаправление на платежную систему с передачей параметров платежа; процедура оплаты.
1. Отправляем ник, сообщение, сумму и валюту.
http://s013.radikal.ru/i323/1505/85/d735e29daec4.png
Выполним идентичный запрос в браузере с подменой значений суммы и валюты.
Code:
data:text/html,
В ответ система генерирует номер платежа, выдает кошелек для оплаты, url платежной системы, а также прочие, статичные для частного примера, данные. Из полученного ответа нам потребуется номер платежа, кошелек и ссылка на платежную систему (в нашем случае, webmoney). Пример ответа:
Code:
{"status":"success","errors":null,"form":"webmoney","text":"\u0421\u043f\u0430\u0441\u0438\u0431\u043e! \u0421\u0435\u0439\u0447\u0430\u0441 \u0432\u044b \u0431\u0443\u0434\u0435\u0442\u0435 \u043f\u0435\u0440\u0435\u043d\u0430\u043f\u0440\u 0430\u0432\u043b\u0435\u043d\u044b \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 \u043e\u043f\u043b\u0430\u0442\u044b.","redirect_url":null,"redirect_form":""}
2. Редирект на платежную систему.
http://s020.radikal.ru/i723/1505/19/5b6af9cdcb06.png
Имитируем запрос переадресации с заменой параметров LMI_PAYMENT_AMOUNT (сумма), LMI_PAYMENT_NO (номер платежа) и LMI_PAYEE_PURSE (кошелек):
Code:
data:text/html,
3. Следуем инструкциям оплаты.
Статья написана в ознакомительных целях и уязвимость в скором времени будет устранена разработчиками. На звание взломщика года я не претендую, поэтому буду рад выслушать ваши замечания. Отдельное спасибо M_script (https://antichat.live/threads/424931/) за элегантный метод отправки post-запроса из адресной строки.
Прошу модераторов перенести топик в соответствующий раздел ("уязвимости", "статьи" или оставить здесь).
© Bonkers (https://antichat.live/members/259009/)
donationalerts - сервис, позволяющий стримерам платформы twitch, выводить сообщения на экран, во время онлайн-трансляции. В данной статье речь пойдет о скромной оплошности разработчиков, которая позволит нам отправить сообщение стримеру (подключенному к системе оповещений), потратив всего пару российских копеек, минуя установленную сумму доната.
Разберем момент на конкретном пользователе - twitch.tv/ceh9, его страница в системе: donationalerts.ru/w/ceh9. Форма представляет собой окно для ввода вашего ника, сообщения и суммы доната с выпадающим списком для выбора валюты.
http://s017.radikal.ru/i432/1505/c7/17eeb66b1bc2.png
Нас интересует код выпадающего списка (приведен ниже). Как можно заметить, веб-опции не предоставляют возможность выбрать KZT. Однако, в коде всех подобных страниц присутствует вариант с оплатой тенге. К сведению, 1 WMR = 4 WMK (казахский тенге).
Code:
Минимальная сумма:
50.00 RUB
1.00 USD
20000.00 BYR
20.00 UAH
1.00 EUR
0.02 KZT
На уровне запросов, отправка сообщения происходит в три этапа: передача post-параметров data и form; перенаправление на платежную систему с передачей параметров платежа; процедура оплаты.
1. Отправляем ник, сообщение, сумму и валюту.
http://s013.radikal.ru/i323/1505/85/d735e29daec4.png
Выполним идентичный запрос в браузере с подменой значений суммы и валюты.
Code:
data:text/html,
В ответ система генерирует номер платежа, выдает кошелек для оплаты, url платежной системы, а также прочие, статичные для частного примера, данные. Из полученного ответа нам потребуется номер платежа, кошелек и ссылка на платежную систему (в нашем случае, webmoney). Пример ответа:
Code:
{"status":"success","errors":null,"form":"webmoney","text":"\u0421\u043f\u0430\u0441\u0438\u0431\u043e! \u0421\u0435\u0439\u0447\u0430\u0441 \u0432\u044b \u0431\u0443\u0434\u0435\u0442\u0435 \u043f\u0435\u0440\u0435\u043d\u0430\u043f\u0440\u 0430\u0432\u043b\u0435\u043d\u044b \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 \u043e\u043f\u043b\u0430\u0442\u044b.","redirect_url":null,"redirect_form":""}
2. Редирект на платежную систему.
http://s020.radikal.ru/i723/1505/19/5b6af9cdcb06.png
Имитируем запрос переадресации с заменой параметров LMI_PAYMENT_AMOUNT (сумма), LMI_PAYMENT_NO (номер платежа) и LMI_PAYEE_PURSE (кошелек):
Code:
data:text/html,
3. Следуем инструкциям оплаты.
Статья написана в ознакомительных целях и уязвимость в скором времени будет устранена разработчиками. На звание взломщика года я не претендую, поэтому буду рад выслушать ваши замечания. Отдельное спасибо M_script (https://antichat.live/threads/424931/) за элегантный метод отправки post-запроса из адресной строки.
Прошу модераторов перенести топик в соответствующий раздел ("уязвимости", "статьи" или оставить здесь).
© Bonkers (https://antichat.live/members/259009/)