Оригинальная статья
Переведено специяльно для xss.pro
Камнями кидать в Jolah Milovski

Детали атаки
Открыв страницу проекта на Premint, мы видим, что на страницу внедрен cd.min.js. Не стек вызовов, а js, созданный [boomerang.min.js](https://s3-redwood-labs.premint.xyz/ theme/js/boomerang.min.js), где доменное имя s3-redwood-labs-premint-xyz.com перестало парситься и не могло нормально работать.
При запросе Whois доменное имя зарегистрированно в Tucows Domains Inc 07-16-2022:
При обращении к virustotal.com видим:
Глядя на исходный код, мы замечаем, что boomerang.min.js — это библиотека пользовательского интерфейса, которая использовалась Premint:
js находится под доменным именем s3-redwood-labs.premint.xyz, поэтому мы предполагаем:
- что существует уязвимость в интерфейсе загрузки файлов, которая позволяет загрузить любой файл на любой Path (распространенная веб-уязвимость).
- хакеры смогли внедрить вредоносный код после получения доступа к Amazon S3.
- эта библиотека стороннего производителя была повреждена в результате цепной атаки
Загружая код boomerang.min.jjs, мы замечаем, что фронт-энд отображает нормальную кодировку, однако в конце имеется зашифрованный слой кода:
Это код, отвечающий за внедрение кода s3-redwood-labs-premint-xyz.com/cdn.min.js на страницу:
Вредоносный код — cdn.min.js
По содержимому кода видно, что активы NFT пользователя были запрошены путем вызова интерфейса dappradar.com (в прошлом мы также видели, как вредоносные веб-сайты запрашивали пользовательские активы через Debank, Opensea API и т. д.). ).
Вот что происходит, если пользователи владеют соответствующими NFT:
Пользователей обманом заставляли одобрять вредоносные контракты под предлогом двухэтапной проверки кошелька. Нажав «одобрить», пользователи инициируют setApprovalForAll и авторизуют пользователей на адрес, возвращенный их внутренним интерфейсом (злоумышленники обычно делают это, чтобы увеличить стоимость блоков, они в основном перенаправляют и контролируют каждый адрес в течение 200 транзакций).
Как только кто-то одобрит функцию, злоумышленник также вызовет код мониторинга, чтобы сообщить себе, что кто-то одобрил функцию:
Если у пользователя нет NFT, он попытается напрямую инициировать запрос токена и перевести любой ETH, который может быть в кошельке:
В дополнение ко всему этому, этот метод шифрования имени переменной кода, начинающегося с _0xd289 _0x, был замечен на других фишинговых веб-сайтах, таких как play-otherside.org и thesaudisnfts.xyz.
Инициация setApprovalForAll будет передавать ETH напрямую на основе активов пользователей и запрещает пользователям использовать инструменты разработчика для устранения этих проблем:
Предохраняемся
Итак, как это может быть предотвращено для обычного пользователя? На текущем этапе предупреждение о риске для MetaMask ERC 721 «setApprovalForAll» уступает ERC20.
Даже если пользователи не могут осознать риск такого поведения, обычному пользователю все равно важно быть осторожным при взаимодействии с любыми неизвестными контрактами, особенно при просмотре транзакций, которые включают «Утверждение». Также важно проверить, не содержат ли недавние транзакции этих адресов какие-либо ненормальные действия (например, «safeTransferFrom»). Всегда дважды проверяйте перед авторизацией любые транзакции!
Этот тип атаки был похож на тот, когда Coinzilla использовала рекламу для внедрения вредоносных атак на Etherscan, поэтому мы задаемся вопросом, можно ли это предотвратить?
Например, поведение и характеристики некоторого известного вредоносного js-кода:
- Метод шифрования, используемый в коде
- Любые характеристики ключа кода, которые являются вредоносными
- Отладка кода
- Использование вызовов opensea, debank, dappradar и других API для запроса пользовательских активов.
Основываясь на методологии поведения этих вредоносных кодов, мы можем попытаться определить, содержит ли страница код с какими-либо известными вредоносными функциями, прежде чем пользователь инициирует транзакцию. Или просто настройте механизм внесения веб-сайтов в белый список. Также будьте осторожны с сайтами, которые автоматически инициируют авторизацию без каких-либо предупреждений или рисков.
Переведено специяльно для xss.pro
Камнями кидать в Jolah Milovski

Детали атаки
Открыв страницу проекта на Premint, мы видим, что на страницу внедрен cd.min.js. Не стек вызовов, а js, созданный [boomerang.min.js](https://s3-redwood-labs.premint.xyz/ theme/js/boomerang.min.js), где доменное имя s3-redwood-labs-premint-xyz.com перестало парситься и не могло нормально работать.
При запросе Whois доменное имя зарегистрированно в Tucows Domains Inc 07-16-2022:
При обращении к virustotal.com видим:
Глядя на исходный код, мы замечаем, что boomerang.min.js — это библиотека пользовательского интерфейса, которая использовалась Premint:
js находится под доменным именем s3-redwood-labs.premint.xyz, поэтому мы предполагаем:
- что существует уязвимость в интерфейсе загрузки файлов, которая позволяет загрузить любой файл на любой Path (распространенная веб-уязвимость).
- хакеры смогли внедрить вредоносный код после получения доступа к Amazon S3.
- эта библиотека стороннего производителя была повреждена в результате цепной атаки
Загружая код boomerang.min.jjs, мы замечаем, что фронт-энд отображает нормальную кодировку, однако в конце имеется зашифрованный слой кода:
Это код, отвечающий за внедрение кода s3-redwood-labs-premint-xyz.com/cdn.min.js на страницу:
Вредоносный код — cdn.min.js
По содержимому кода видно, что активы NFT пользователя были запрошены путем вызова интерфейса dappradar.com (в прошлом мы также видели, как вредоносные веб-сайты запрашивали пользовательские активы через Debank, Opensea API и т. д.). ).
Вот что происходит, если пользователи владеют соответствующими NFT:
Пользователей обманом заставляли одобрять вредоносные контракты под предлогом двухэтапной проверки кошелька. Нажав «одобрить», пользователи инициируют setApprovalForAll и авторизуют пользователей на адрес, возвращенный их внутренним интерфейсом (злоумышленники обычно делают это, чтобы увеличить стоимость блоков, они в основном перенаправляют и контролируют каждый адрес в течение 200 транзакций).
Как только кто-то одобрит функцию, злоумышленник также вызовет код мониторинга, чтобы сообщить себе, что кто-то одобрил функцию:
Если у пользователя нет NFT, он попытается напрямую инициировать запрос токена и перевести любой ETH, который может быть в кошельке:
В дополнение ко всему этому, этот метод шифрования имени переменной кода, начинающегося с _0xd289 _0x, был замечен на других фишинговых веб-сайтах, таких как play-otherside.org и thesaudisnfts.xyz.
Инициация setApprovalForAll будет передавать ETH напрямую на основе активов пользователей и запрещает пользователям использовать инструменты разработчика для устранения этих проблем:
Предохраняемся
Итак, как это может быть предотвращено для обычного пользователя? На текущем этапе предупреждение о риске для MetaMask ERC 721 «setApprovalForAll» уступает ERC20.
Даже если пользователи не могут осознать риск такого поведения, обычному пользователю все равно важно быть осторожным при взаимодействии с любыми неизвестными контрактами, особенно при просмотре транзакций, которые включают «Утверждение». Также важно проверить, не содержат ли недавние транзакции этих адресов какие-либо ненормальные действия (например, «safeTransferFrom»). Всегда дважды проверяйте перед авторизацией любые транзакции!
Этот тип атаки был похож на тот, когда Coinzilla использовала рекламу для внедрения вредоносных атак на Etherscan, поэтому мы задаемся вопросом, можно ли это предотвратить?
Например, поведение и характеристики некоторого известного вредоносного js-кода:
- Метод шифрования, используемый в коде
- Любые характеристики ключа кода, которые являются вредоносными
- Отладка кода
- Использование вызовов opensea, debank, dappradar и других API для запроса пользовательских активов.
Основываясь на методологии поведения этих вредоносных кодов, мы можем попытаться определить, содержит ли страница код с какими-либо известными вредоносными функциями, прежде чем пользователь инициирует транзакцию. Или просто настройте механизм внесения веб-сайтов в белый список. Также будьте осторожны с сайтами, которые автоматически инициируют авторизацию без каких-либо предупреждений или рисков.