Британский исследователь Пол Прайс (Paul Price) обнаружил ошибку в местном приложении Domino’s Pizza. Баг позволял исследователю заказывать пиццу бесплатно, но будучи сознательным white hat хакером, Прайс не стал умалчивать об уязвимости в личных целях.
API британской версии приложения Domino’s Pizza для Android оказалось дырявым: Прайс заметил, что информация о платежах обрабатывается не совсем корректно. Как правило, обработка платежей происходит на стороне сервера, однако приложение Domino обрабатывало платежи самостоятельно, прямо на стороне клиента. Когда исследователь решил изучить проблему детальнее, он выяснил, что приложение можно обмануть и заставить его поверить, что недействительный платеж на самом деле прошел.
Для теста Прайс ввел в приложение номер карты Visa 4111111111111111 и получил предсказуемый ответ с ошибкой.
Затем исследователь попытался подменить значение атрибута на ACCEPTED и на 1 (это означает, что транзакция прошла успешно). К удивлению Прайса, его тестовый заказ был успешно принят, а платеж отмечен как осуществленный. Исследователь по-прежнему не верил, что всё так просто, он решил, что информацию о заказе проверят, и тогда точно раскроется подмена. Однако вскоре статус заказа в приложении изменился, а через 30 минут Прайсу как ни в чем не бывало доставили еду, общей стоимостью £26.
«Первой моей мыслью было – класс! Второй мыслью было — черт», — пишет Прайс в своем блоге.
В итоге исследователь сообщил курьеру, что произошла какая-то ошибка, он вообще не вводил в приложение данные банковской карты и с самого начал хотел расплатиться наличными. Оплатив счет наличными, Прайс очистил свою совесть и пошел сообщать о найденной уязвимости разработчикам Domino. В настоящее время ошибка уже устранена, а представители компании поблагодарили исследователя за бдительность.
Оказалось, что логика приложения примерно такова:
Значение placeOrder() отправляется Domino API как HTTP-запрос, где order_id это номер, который присваивается заказу в процессе создания, а получается из XML-запроса выше. По идее Dominos стоит перепроверять эти данные на стороне сервера, однако этого не происходит, ведь клиент никогда не врет. В результате, приложению можно было скормить практически любую информацию о платежах.
API британской версии приложения Domino’s Pizza для Android оказалось дырявым: Прайс заметил, что информация о платежах обрабатывается не совсем корректно. Как правило, обработка платежей происходит на стороне сервера, однако приложение Domino обрабатывало платежи самостоятельно, прямо на стороне клиента. Когда исследователь решил изучить проблему детальнее, он выяснил, что приложение можно обмануть и заставить его поверить, что недействительный платеж на самом деле прошел.
Для теста Прайс ввел в приложение номер карты Visa 4111111111111111 и получил предсказуемый ответ с ошибкой.
Затем исследователь попытался подменить значение атрибута на ACCEPTED и на 1 (это означает, что транзакция прошла успешно). К удивлению Прайса, его тестовый заказ был успешно принят, а платеж отмечен как осуществленный. Исследователь по-прежнему не верил, что всё так просто, он решил, что информацию о заказе проверят, и тогда точно раскроется подмена. Однако вскоре статус заказа в приложении изменился, а через 30 минут Прайсу как ни в чем не бывало доставили еду, общей стоимостью £26.
«Первой моей мыслью было – класс! Второй мыслью было — черт», — пишет Прайс в своем блоге.
В итоге исследователь сообщил курьеру, что произошла какая-то ошибка, он вообще не вводил в приложение данные банковской карты и с самого начал хотел расплатиться наличными. Оплатив счет наличными, Прайс очистил свою совесть и пошел сообщать о найденной уязвимости разработчикам Domino. В настоящее время ошибка уже устранена, а представители компании поблагодарили исследователя за бдительность.
Оказалось, что логика приложения примерно такова:
Значение placeOrder() отправляется Domino API как HTTP-запрос, где order_id это номер, который присваивается заказу в процессе создания, а получается из XML-запроса выше. По идее Dominos стоит перепроверять эти данные на стороне сервера, однако этого не происходит, ведь клиент никогда не врет. В результате, приложению можно было скормить практически любую информацию о платежах.
Еще на тему
Вот - нашёл стори:
Днепропетровский бизнесмен, которому еще в сентябре выписали штраф за то, что он установил крышку на открытый люк перед своим домом, до сих пор ведет борьбу за справедливость.
1700 гривен требует с Александра Лобача судебная исполнительная служба за то, что он закрыл крышкой опасный для прохожих люк на ул. Гвардейской. Люк перед домом днепропетровчанина был открыт 10 лет, коммунальные службы на этот факт не реагировали, а инициатива оказалась наказуемой. Несмотря на то, что на новый люк и его установку Александр и так потратил около 1500 гривен, с него продолжают требовать еще и штраф. Платить же бизнесмен отказывается – теперь это уже дело принципа.
- Я уже готов был заплатить, если бы сумма была, к примеру, 1360 гривен, - говорит Александр Лобач. – Именно столько составляет максимальный штраф для физического лица, предусмотренный законодательством в подобном случае. Но меня почему-то оштрафовали как юридическое лицо. Дело не в 340 гривнах разницы, а в принципе: я не буду соглашаться с незаконным штрафом.
Вот более полная статья
http://roadcontrol.org.ua/forum/viewtopic.php?f=21&t=24167
на вопросы журналистов омские чиновники прокомментировали в духе, зря это она, не по госту, плохо будет
но штрафа выписывать не стали
после того как толпа студентов повыигрывала по 3 пиццы за 3 попытки, конкурс просто свернули
никого арестовывать не стали, даже выигрыши выдали)