![](https://habrastorage.org/files/72c/203/387/72c203387b3b4d0c9700147957f4122f.png)
TL;DR: случайно нашёл простой способ купить платный сервис за 1 рубль вместо полной суммы. Сообщил об этом администраторам ресурса, в итоге получил год подписки бесплатно. Для прожжёных багхантеров – ничего интересного.
Давно хотел научиться уже наконец смотреть фильмы на английском в оригинале. С техническими вещами (лекции, курсы, семинары и т. п.) особых проблем у меня нет – но вот с художественными фильмами и даже играми беда-печаль.
А между тем качество перевода на русский зачастую оставляет желать лучшего. Вот, к примеру, несколько кадров из русской локализации Dead Space 3:
![](https://habrastorage.org/files/214/ff3/140/214ff3140dfe48d491f885f2e2e4e3ee.png)
![](https://habrastorage.org/files/ff0/c90/a6b/ff0c90a6b5254940b42ed12a35764871.png)
![](https://habrastorage.org/files/2b0/18b/473/2b018b4734fc4126b7293cd228472804.png)
Я – очень обязательный и целеустремлённый человек, поэтому минимум раз в год обещаю себе подтянуть английский. Правда, постоянно как-то так в жизни получается, что возникает огромное количество более срочных дел – родные, друзья, Skyrim — поэтому на английский времени не остаётся. Прямо заговор какой-то.
Не так давно у меня случилось очередное обострение, и я стал шерстить Сеть в поисках какого-нибудь подходящего сайта, обучающего английскому. Перебрал несколько вариантов; в итоге остановился на одном, который привлёк внимание интерфейсом и некоторыми заявленными возможностями. На одном из разделов сайта оказались сериалы на английском с весьма, на мой взгляд, удобно сделанными субтитрами — ну и прочими вкусными плюшками типа словаря и комментариев к сложным и тонким деталям языка.
После ознакомления с демо-версией происходящего было принято решение, что надо бы купить полный доступ ко всем сериям. Вдоволь поплакав над своими кровными денежками, я проследовал на страницу оплаты товара.
![](https://habrastorage.org/files/fa5/fa7/a5a/fa5fa7a5a81e4201ac5b12cb16a6b5df.png)
И тут меня почему-то потянуло открыть Fiddler. Я много слышал про то, что умные люди с его помощью умеют встраивать XSS, списывать с мобильника деньги, красть учётки от контакта и взламывать Пентагон. У меня самого так никогда не получалось, но ведь рассказывают же!
Итак, я запустил Fiddler, нажал на кнопку «Оплатить» — и увидел вот такую картину:
![](https://habrastorage.org/files/e24/e24/7f8/e24e247f8f144509b6e38ccc60dfc37b.png)
Выделенный POST-запрос имел следующий вид:
![](https://habrastorage.org/files/435/096/515/43509651559748669f70776ebf818955.png)
Я с удивлением обнаружил, что там содержится до боли знакомая мне сумма моего заказа, которая приходит в ответе от сервера.
Известно, что Fiddler может перехватывать не только исходящие, но и входящие запросы. Я перевёл его в этот режим.
![](https://habrastorage.org/files/db7/bcd/db4/db7bcddb40a644dd876316e52c7afffc.png)
После этого я попробовал оплатить заказ ещё раз — и, когда сервер вернул мне ответ «1580 рублей», я ничтоже сумняшеся переменил его на несколько меньшую цену в 80 рублей:
![](https://habrastorage.org/files/8f6/c2a/5e9/8f6c2a5e914c4f388e3099abfddc17ca.png)
Открывшееся окошко платёжной системы подтвердило, что заплатить нужно именно столько:
![](https://habrastorage.org/files/a27/6d5/8f9/a276d58f9e0540dcbe7ce6669c1d2e09.png)
Насторожившись, я ввёл данные карты и скрестил пальцы…
Через несколько секунд окошко сообщило, что оплата успешно прошла.
![](https://habrastorage.org/files/4fc/c30/a22/4fcc30a22d8f472f980b13b11e1f33bd.png)
![](https://habrastorage.org/files/71b/6a4/da9/71b6a4da9fcb4a38af5ab980968676ec.png)
![](https://habrastorage.org/files/942/ab4/c70/942ab4c7024542f784107b4d8069049c.png)
![](https://habrastorage.org/files/37f/b3b/4cf/37fb3b4cfa2a45b28067d48c19eb96df.png)
«Ого!?», — подумал я и пошёл писать письмо администраторам ресурса. Отдельных способов связи для такого рода сообщений я не нашёл, поэтому просто написал в техподдержку.
Отправил обращение я около полуночи. К обеду следующего дня мне написал специалист техподдержки, поблагодарил за информацию и сообщил, что уязвимость закрыта. Я был приятно удивлён оперативностью ответа.
В качестве бонуса предложили доступ к любой из платных услуг сайта; я, разумеется, выбрал сериалы.
Теперь-то уж наверняка буду смотреть.
Буду рад услышать отзывы, советы и мнения читателей в комментариях. Также предлагаю поучаствовать в коротеньком опросе общественного мнения.
![](https://habrastorage.org/files/d3e/cb6/6fb/d3ecb66fba0240088ee4032ae4cddfac.png)
Похоже, платёжная система меня таки забанила на некоторое время. :D
Разгадка проста: изначально я планировал купить две услуги, но потом рассудил, что мне и одних сериалов за глаза хватит.
Ведь я – очень обязательный и целеустремлённый человек.
?Здесь приводится официальная версия (сокращённая и отцензурированная).
Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Комментарии (12)
Landgraph
06.03.2017 10:03+4Ещё в очень бородатые годы я писал статью, если не ошибаюсь в районе 2007 года, «Скрытая угроза: „неизменяемые“ поля» про аналогичную ситуацию тогда ещё просто с формами. Технологии идут вперёд, а ошибки идут всё те же… =(
lostpassword
06.03.2017 13:00Справедливости ради должен заметить, что в данном случае дело было, как мне видится, несколько в другом.)
Ответ от сервера с суммой заказа возвращается и сейчас; его всё так же можно подменить и попытаться оплатить меньшую сумму. Однако при попытке оплаты платёжная система возвращает ошибку.
Я сам никогда не работал с платёжными системами и не представляю, как обычно организован этот процесс. Документация на CloudPayment есть здесь https://cloudpayments.ru/Docs/Integration. Я особо не вникал, но похоже, что перед оплатой система отправляет данные на сервер магазина и требует подтвердить оплату со стороны магазина. Возможно, для идентификации заказа используется orderID, который анализируется сервером, и по результатам анализа выдаётся разрешение на оплату. Раньше, соответственно, эта проверка почему-то всегда выдавала true.Pakos
07.03.2017 10:30+1У каких-то платёжных систем передавалась контрольная сумма из нескольких полей (формировалась строка в т.ч. и из суммы, параметров заказа, соли и прочего), по ней считалась контрольная сумма (точный алгоритм не помню, возможно, она сначала шифровалась известными только магазину и платёжной системе ключами) и по ней платёжная система определяла корректность переданных данных.
GreyCat
06.03.2017 11:20+5Про ответственность — если бы сотрудники и владельцы ресурса оказались несколько менее вменяемыми — легко можно было бы иметь как минимум 159.6 УК РФ или 146, если не 272. Для следователя все вообще шикарно — состав преступления налицо — и человек все сам в письме написал и подтвердил (признает, извиняется и раскаивается), и в платежной системе все прошло, и личные координаты все видны из-за используемой карточки > банк выдаст моментально.
dartraiden
06.03.2017 12:41+2В 2011 году точно таким же образом покупали лицензионный Minecraft.
Я так однажды пробовал купить корпоративную версию утилиты OfficeTab. Там оказалась ручная премодерация заказов, так что ключ я получил лишь на следующий день… на фейковую почту в письме с благодарностью за указание «дыры» и просьбой «please don't make fraud orders» :D
На многих ресурсах при покупке передаётся не сумма, а ID товара, можно пытаться купить дорогой товар по полной цене дешевого.
dartraiden
06.03.2017 12:52+1Какую ответственность можно понести за подобные действия?
Ответы юриста: как избежать ответственности за поиск уязвимостейlostpassword
06.03.2017 13:15То есть в данной ситуации абсолютно безопасного способа проверки моей гипотезы не было вообще.
Ну разве что вариант оплатить чуть больше положенного, чтобы ничьи права не нарушать и никому ущерба не причинять, кроме себя.)sens_boston
06.03.2017 17:06Ну разве что вариант оплатить чуть больше положенного
Думаю, что даже в этом случае, при желании, можно было-бы «припаять» статью («был бы человек, а статья найдется!») за незаконное исследование трафика (согласно приведенной вверху ссылке).hdfan2
06.03.2017 18:25Разве может быть незаконным исследование своего собственного трафика? Он же его не перехватил у другого пользователя.
sens_boston
07.03.2017 06:57Я рассматривал случай, что после исследования он модифицировал запрос и заплатил больше положенного. С точки зрения закона (по крайней мере, исходя из ответа юриста) разницы особой нет, заплатил он меньше или больше; ключевые слова — несанкционированное вмешательство в работу программного обеспечения.
Привожу абзац из ссылки выше (если вам настолько лениво кликать):
Есть ли вообще какая-то ответственность за исследование и взлом чужой программы, сервиса, сети?
Если говорить про действующие российские законы, то да, есть. Когда исследователь тестирует чужой продукт на предмет уязвимостей или проникает в чужую сеть без ведома и согласия владельца, его действия могут быть расценены как неправомерные. И последствием таких действий может стать наступление ответственности различного рода: гражданско-правовой, административной и уголовной.
mazahakajay
Отличная статья. Стимулирует к работе над своими способностями в багхантинге )
Представляю сколько в сети еще крутится таких ресурсов!
Багхантиг — это просто! Багхантинг в массы!