Как школьник нашёл уязвимость и ограбил магазин игр, в котором я работал, на 300 тысяч рублей

А его так и не наказали.

Как школьник нашёл уязвимость и ограбил магазин игр, в котором я работал, на 300 тысяч рублей
900900

Строка активации кода сравнивала введённый код с тем, что был в базе, и считала его верным, если он совпадал минимум на 6 символов подряд.

Самая тупая херня которую я когда-либо встречал в куллстори про кодинг.

Она настолько тупая что я просто физически не могу в нее поверить.

Ни в каком реально используемом сейчас ЯП стандартные операторы сравнения не будут так себя вести, т.е 'aaa123' == 'aaa456' везде будет false. Как и "===", "obj.Equals()" и прочие.

Чтобы получить то что описано в кулстори, нужно не просто специально искать подстроку (во что тоже поверить сложно, но со скрипом - возможно, может там чел тупо скопипастил функцию и сам не в курсе что она делает), а искать совпадение 6 последовательных символов которые могут быть в любом месте переменных произвольной длины.
Такое тупо невозможно сделать случайно.

Так что делаю вывод - статья - просто пиздеж.
Видимо для того что бы Никита Васильев мо "вывести текст в соцсети DTF" (с) .

2
Ответить

Всё правда, но я мог что-то криво объяснить.

Потому что я не программист, а программист тогда не особо сыпал подробностями. Я описал так, как мы его тогда поняли.

Он в сообщении это так описал:

дело в названии ключей, там было слово nazvanie, в фреймворке включились % в запрос что дало выборку по всем записям которые имели это слово. Оно искало по части текста

1
Ответить

Похоже тупо обрезали ключ, беря только первые символы, думая, что это сохранит серверные мощности, но при этом у них промо-ключи могли банально кончиться, и возмущение датабазы по этому поводу - единственное, что их спасало от еще худшей ситуации. Ну и незнание школьников про брутфорс.
Если бы я не видел еще большей дичи и косяков, в том числе от весьма крупных и уважаемых компаний, я бы тоже удивился. И разве мы все не почувствовали, как еще недавно несколько случаев было, когда идиотское решение или маленькая ошибка роняло сотни серверов по всему миру пока виновники и их коллеги накатывали бэкапы?

Тут даже не факт, что программист сам по себе был плохой в таких ситуациях, если он переработал до состояния неадекватности. Хотя то, что они не могли сопоставить ранее активированные ключи и аккаунты (у них же там какая-то соц. система) и вместо этого долго ждали, а потом рандомно полезли шпионить в Визор, намекает что в данном случае все-таки дурак. Или, как говорят в Гугле, Go-learning intern xD

Ответить