Анализ уязвимости безопасности Poly Network: как злоумышленники используют уязвимость контракта для изменения прав
В последнее время межсетевой протокол Poly Network столкнулся с серьезным инцидентом безопасности, что вызвало широкий интерес в отрасли. По анализу экспертов по безопасности, данная атака произошла не из-за утечки приватного ключа, а в результате того, что злоумышленники искусно использовали уязвимость в смарт-контракте.
Суть события заключается в том, что в контракте EthCrossChainManager есть недостаток проектирования в функции verifyHeaderAndExecuteTx. Эта функция может выполнять указанные пользователем кросс-цепочные транзакции через внутреннюю функцию _executeCrossChainTx. Атакующий воспользовался этим, создав определенные данные, которые заставили функцию _executeCrossChainTx вызвать функцию putCurEpochConPubKeyBytes контракта EthCrossChainData, тем самым изменив роль хранителя на адрес, контролируемый атакующим.
Конкретный процесс атаки следующий:
Нападающий сначала вызывает функцию verifyHeaderAndExecuteTx контракта EthCrossChainManager, передавая тщательно подготовленные данные.
Внутри этой функции выполняется _executeCrossChainTx, который затем вызывает функцию putCurEpochConPubKeyBytes контракта EthCrossChainData.
Функция putCurEpochConPubKeyBytes выполняется, изменяя адрес роли keeper на адрес, указанный атакующим.
После замены keeper, злоумышленник получил права на выполнение операций и может произвольно конструировать транзакции для извлечения средств из контракта.
После завершения атаки, из-за изменения keeper, нормальные транзакции других пользователей начинают отклоняться.
Этот метод атаки был использован как на BSC, так и на блокчейне Ethereum. Ключ к атаке заключается в том, что keeper контракта EthCrossChainData может быть изменён контрактом EthCrossChainManager, который, в свою очередь, позволяет выполнять произвольные данные, переданные пользователем. Эта конструкция имеет серьезные проблемы с безопасностью, предоставляя нападающим возможность для атаки.
!
Это событие еще раз подчеркивает, что безопасность смарт-контрактов имеет решающее значение. Команда разработчиков должна тщательно учитывать различные сценарии атак при проектировании контрактов, строго ограничивать права доступа к ключевым функциям и проводить всесторонний аудит безопасности. В то же время децентрализованные проекты также должны установить более совершенные механизмы управления для реагирования на чрезвычайные ситуации.
Посмотреть Оригинал
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
17 Лайков
Награда
17
8
Поделиться
комментарий
0/400
FomoAnxiety
· 07-21 14:29
天天 Будут играть для лохов
Посмотреть ОригиналОтветить0
airdrop_whisperer
· 07-20 03:50
Снова уязвимость смарт-контрактов
Посмотреть ОригиналОтветить0
blocksnark
· 07-18 15:43
Снова это вина смарт-контрактов
Посмотреть ОригиналОтветить0
NFT_Therapy
· 07-18 15:40
典中典, еще один сбой смарт-контрактов
Посмотреть ОригиналОтветить0
BTCRetirementFund
· 07-18 15:37
Снова видите, что контракт был взломан?
Посмотреть ОригиналОтветить0
MemeKingNFT
· 07-18 15:33
Снова день, когда нас посетил хитрый вор, мир как большой поток песка, посмотрим, чьи контракты все еще имеют дыры.
Анализ уязвимостей смарт-контрактов Poly Network: как злоумышленники могут изменить роль keeper для получения средств
Анализ уязвимости безопасности Poly Network: как злоумышленники используют уязвимость контракта для изменения прав
В последнее время межсетевой протокол Poly Network столкнулся с серьезным инцидентом безопасности, что вызвало широкий интерес в отрасли. По анализу экспертов по безопасности, данная атака произошла не из-за утечки приватного ключа, а в результате того, что злоумышленники искусно использовали уязвимость в смарт-контракте.
Суть события заключается в том, что в контракте EthCrossChainManager есть недостаток проектирования в функции verifyHeaderAndExecuteTx. Эта функция может выполнять указанные пользователем кросс-цепочные транзакции через внутреннюю функцию _executeCrossChainTx. Атакующий воспользовался этим, создав определенные данные, которые заставили функцию _executeCrossChainTx вызвать функцию putCurEpochConPubKeyBytes контракта EthCrossChainData, тем самым изменив роль хранителя на адрес, контролируемый атакующим.
Конкретный процесс атаки следующий:
Нападающий сначала вызывает функцию verifyHeaderAndExecuteTx контракта EthCrossChainManager, передавая тщательно подготовленные данные.
Внутри этой функции выполняется _executeCrossChainTx, который затем вызывает функцию putCurEpochConPubKeyBytes контракта EthCrossChainData.
Функция putCurEpochConPubKeyBytes выполняется, изменяя адрес роли keeper на адрес, указанный атакующим.
После замены keeper, злоумышленник получил права на выполнение операций и может произвольно конструировать транзакции для извлечения средств из контракта.
После завершения атаки, из-за изменения keeper, нормальные транзакции других пользователей начинают отклоняться.
Этот метод атаки был использован как на BSC, так и на блокчейне Ethereum. Ключ к атаке заключается в том, что keeper контракта EthCrossChainData может быть изменён контрактом EthCrossChainManager, который, в свою очередь, позволяет выполнять произвольные данные, переданные пользователем. Эта конструкция имеет серьезные проблемы с безопасностью, предоставляя нападающим возможность для атаки.
!
Это событие еще раз подчеркивает, что безопасность смарт-контрактов имеет решающее значение. Команда разработчиков должна тщательно учитывать различные сценарии атак при проектировании контрактов, строго ограничивать права доступа к ключевым функциям и проводить всесторонний аудит безопасности. В то же время децентрализованные проекты также должны установить более совершенные механизмы управления для реагирования на чрезвычайные ситуации.