当前位置:网站首页>NFT流动性市场安全问题频发—NFT交易平台Quixotic被黑事件分析
NFT流动性市场安全问题频发—NFT交易平台Quixotic被黑事件分析
2022-07-04 15:21:00 【SharkTeam】
7月1日,Optimism生态最大NFT交易平台Quixotic智能合约出现漏洞,黑客利用该漏洞盗取了大量用户的资产
近期NFT流动性市场安全问题频发。SharkTeam第一时间对此事件进行了技术分析,并总结了安全防范手段,希望后续项目可以引以为戒,共筑区块链行业的安全防线。
一、 事件分析
攻击者地址:0x0a0805082ea0fc8bfdcc6218a986efda6704efe5,简记为0x0a08
攻击合约地址:0xbe81eabdbd437cba43e4c1c330c63022772c2520,简记为0xbe81
被攻击合约地址:0x065e8a87b8f11aed6facf9447abe5e8c5d7502b6,简记为0x065e
攻击者在创建了攻击合约后,通过攻击合约发起了大量的攻击交易,攻击了很多用户,盗取的资产以WETH和Optimism (OP)为主。以第一笔攻击交易为例进行分析,分析内容如下:
txHash: 0xfdee36012cbeb26d37a857a4bb1937ce0b30379a25198735089c75cfd3ea799a
该交易中,攻击者盗取了0.0975 WETH,调用的函数与参数如下:
交易由攻击者地址0x0a08发起,调用了被攻击合约0x065e中的fillSellOrder函数,其中参数contractAddress实际攻击合约地址0xbe81。
fillSellOrder函数如下:
validateSellerSignature函数如下:
这里_validateSellerSignature并没有校验参数sellOrder中的contractAddress,因此攻击者传入的是自定义的合约地址,即攻击合约地址
_fillSellOrder函数如下:
这里在转移NFT时,调用了参数contractAddress对应的NFT合约中的转移函数,在调用该函数前必须要用户进行授权,攻击者完全可以自定义该函数将用户授权的所有代币提取到自己的账户,包括ERC721、ERC1155、ERC20等多种类型。这里攻击者只能提取用户授权的代币。
综上所述,本次安全事件发生的根本原因在于合约本身存在漏洞,用户的过度授权给了黑客可乘之机。
二、安全建议
引发本次安全事件的根本原因是合约对于地址型参数缺少校验以及用户的过度授权。因此,我们建议无论是项目方还是用户都要提高安全意识,尽可能的避免合约漏洞。在代币授权的时候要谨慎而行,尽可能地将授权的代币种类和数量降低到最小。
三、关于我们
SharkTeam的愿景是全面保护Web3世界的安全。团队成员分布在北京、南京、苏州、硅谷,由来自世界各地的经验丰富的安全专业人士和高级研究人员组成,精通区块链和智能合约的底层理论,提供包括智能合约审计、链上分析、应急响应等服务。已与区块链生态系统各个领域的关键参与者,如Huobi Global、OKC、polygon、Polkadot、imToken、ChainIDE等建立长期合作关系。
Telegram:https://t.me/sharkteamorg
Twitter:https://twitter.com/sharkteamorg
Reddit:https://www.reddit.com/r/sharkteamorg
更多区块链安全咨询与分析,点击下方链接查看
D查查|链上风险核查 https://m.chainaegis.com
边栏推荐
- 太方便了,钉钉上就可完成代码发布审批啦!
- 对人胜率84%,DeepMind AI首次在西洋陆军棋中达到人类专家水平
- Sequence diagram data modeling and industrial chain analysis
- Hash table
- 金额计算用 BigDecimal 就万无一失了?看看这五个坑吧~~
- 表单传递时,如何隐式将值传过去
- 智慧物流園區供應鏈管理系統解决方案:數智化供應鏈賦能物流運輸行業供應鏈新模式
- GO开发:如何利用Go单例模式保障流媒体高并发的安全性?
- Market trend report, technical innovation and market forecast of taillight components in China
- 一图看懂ThreadLocal
猜你喜欢
照明行业S2B2B解决方案:高效赋能产业供应链,提升企业经济效益
How can programmers improve the speed of code writing?
Kunming Third Ring Road Closure project will pass through these places. Is there one near your home?
L1-072 scratch lottery
~88 running people practice
VMware Tools和open-vm-tools的安装与使用:解决虚拟机不全屏和无法传输文件的问题
基于wifi控制的51单片机温度报警器
Object.keys()的用法
How to implement a delay queue?
程序员怎么才能提高代码编写速度?
随机推荐
矿产行业商业供应链协同系统解决方案:构建数智化供应链平台,保障矿产资源安全供应
How to implement a delay queue?
智慧物流园区供应链管理系统解决方案:数智化供应链赋能物流运输行业供应链新模式
Research Report on market supply and demand and strategy of tetramethylpyrazine industry in China
电子元器件B2B商城系统开发:赋能企业构建进销存标准化流程实例
How can programmers improve the speed of code writing?
周大福践行「百周年承诺」,真诚服务推动绿色环保
APOC custom functions and procedures
Hair growth shampoo industry Research Report - market status analysis and development prospect forecast
Understand ThreadLocal in one picture
C # realizes FFT forward and inverse transformation and frequency domain filtering
js中的数组筛选fliter
容器环境minor gc异常频繁分析
建筑建材行业经销商协同系统解决方案:赋能企业构建核心竞争力
智慧物流園區供應鏈管理系統解决方案:數智化供應鏈賦能物流運輸行業供應鏈新模式
[acwing] 58 weeks 4489 Longest subsequence
[Chongqing Guangdong education] National Open University spring 2019 1248 public sector human resource management reference questions
How to contribute to the source code of ongdb core project
昆明三环闭合工程将经过这些地方,有在你家附近的吗?
C implementation defines a set of intermediate SQL statements that can be executed across libraries