Дед Мураками или как каждый школьник мог заработать 1.000.000$
...или моя боль цветочного ректа
Привет, мои свинки! 27 октября проходила раздача денег от RTFKT в виде чемоданов для долларов и MekaVerse на минималках. Многим удалось протолкнуться сквозь тысячи ботов и получить деньги на мини-пига и сало. Я тоже оказался среди них, хоть и влетел на 10% от желаемого количества аккаунтов из-за отличного сайта с 3D, но, речь не об этом.
Дед сумел раздать денег и тут. Наши братья-абузеры нашли кнопку "деньги" и за считанные минуты забрали остаток NFT. Суть бага заключалась в том, что сминченную NFT можно перевести\продать и минтить заново, вот и все! Подробнее об этом я расскажу в конце статьи, там Вы и узнаете, как находить такие баги. Но, сначала я бы хотел рассказать о своем первом ректе знакомстве с Murakami.
Как же я ректанулся весной?
Речь будет идти о более ранней коллекции нашего любимого Takashi Murakami - Murakami Flowers. В конце марта дедуля открыл регистрацию на раффл и тысячи абузеров ринулись регистрировать свои почты в эту бесплатную лотерею. В первые дни письмо-подтверждение приходило с задержкой в несколько часов, решив обезопасить себя от банов почт я прикупил Рамблеров и с максимально мотивированным лицом начал писать софт на автоматизацию этого события. Регистрация была максимально простой, всего-лишь 2 запроса, каждый мог написать такую же автоматизацию, посмотрев примеры с моего канала, либо других кодеров!
HTTP запросы для новичка - https://teletype.in/@ryder_69/http_requests_py
Запасшись кофе, я принялся парсить публичные пулы прокси и регистрировать первую пачку аккаунтов обычными запросами с прокси, спустя несколько часов я принял решение идти дальше и регистрировать аккаунты с подменой отпечатков, использованием Selenium/Playwright и Dolphin Anty. Спустя 3 суток без сна, в общей сложности вышло зарегистрировать и подтвердить ~20.000 аккаунтов.
18 апреля дед выпустил результаты раффла, я приготовил кофе и открыл Telegram, полистал каналы, поздравил друзей с залетевшими аккаунтами и с очень хорошим настроением принялся проверять свои аккаунты... Спустя несколько минут моя радость превратилась в печаль, ведь с 20.000 аккаунтов прошло ровно 0.
В чем же была проблема? Все очень просто, почты с доменными именами rambler были исключены из раффла. Не было отсева ни по кошелькам, ни по IP адресу, другого антифрода тоже не было, просто почты. Не повторяйте таких ошибок и продумывайте все возможные варианты!
Находим баг и отбираем у деда деньги
Увидев данное сообщение многие задались вопросом "почему так?", а дальше скипнули, не придав этому никакого значения. А действительно, почему так вышло? Скорее всего, на бэкенде сайта была проверка на баланс NFT подключенного кошелька, всё очень просто.
В контракте так же допустили ошибку и проверяли не количество сминченных токенов, а баланс адреса.
Проверка на количество сминченных NFT:
mapping(address => uint256) public saleMinted; ... require(saleMinted[msg.sender] <= _maxAmount, "EXCEEDS MAX CLAIM");
require(balanceOf(msg.sender) <= _maxAmount, "EXCEEDS MAX CLAIM");
Далее, имея базовые знания того же Python и место в раффле RTFTK пишем простейший скрипт на трансфер и минт NFT.
Учим программирование и выносим всё, что движется
Если вы хотите стать программистом, стоит понять, нужно ли вам это. Заниматься нелюбимым делом - очень плохо. В программировании нужно быть усидчивым, любопытным и иметь стремление развиваться. В случае, если вы решили стать дед инсайдом кодером, есть очень много информации по программировании в крипте.
Лучшая статья на эту тему по моему мнению:
Писать длинное прощание я не хочу, поэтому, держите аватарку пиксельного Свина