空手套白狼 —— YIEDL 被黑分析
2024-4-29 11:47:50 Author: www.freebuf.com(查看原文) 阅读量:1 收藏

freeBuf

主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

By: Sissice

​2024 年 4 月 24 日,据慢雾安全团队情报,BSC 链上的 YIEDL 项目遭攻击,攻击者获利约 30 万美元。慢雾安全团队对该攻击事件展开分析并将结果分享如下:

1714362020705463.jpg

(https://twitter.com/SlowMist_Team/status/1782962346039898473)

攻击者地址:

0x322696471792440499b1979e0a440491e870667a

被攻击合约地址:

0x4edda16ab4f4cc46b160abc42763ba63885862a4

部分攻击交易:

1714362269_662f179d693fd89b90c15.png!small

本次事件的攻击核心是利用合约处理 redeem 函数调用时未能充分验证用户输入的外部参数。该参数是控制资产兑换的关键数据,通常包含特定的交易指令或路由信息。攻击者通过恶意构造这一外部参数,实现了未授权的资产转移。

攻击者多次调用 redeem 函数,申请赎回数量为 0 的资产,此行为本身看似无害,因为赎回数量为零时通常不会触发任何实际的资金流动:

1714362020816504.jpg

但是跟进 redeem 函数可以发现,该函数会遍历合约允许的资产列表,并在当前资产不为用户希望接收的资产时,会根据传入的 dataList 参数解析并外部调用 1inch Router 中对应的函数来执行资产兑换操作。

1714362020948338.jpg

而由于此处传入的 dataList 并未经过检查和验证,使得攻击者可以构造恶意的值去执行 1inch Router 合约的 unoswapTo 函数来进行任意可控的兑换代币操作。

1714362021022715.jpg

结果,Yiedl BULL 合约中的 WBNB-ADA Token 被兑换为 BNB 至攻击者的地址。

1714362021081924.jpg

通过这种方式,攻击者无需实际拥有任何赎回份额,即可触发由 dataList 参数控制的代币兑换操作,在不消耗自身资产的情况下,多次调动合约资金,获利离场。

本次攻击的核心在于函数未能充分验证用户输入的 dataList 参数,导致攻击者可以构造恶意的外部数据并利用 1inch 套走合约中的代币。慢雾安全团队建议项目方在开发中实施严格的参数验证机制,尤其是在涉及合约中的资金操作时,要确保所有外部调用均符合预期的行为规范,并对合约的逻辑进行彻底的安全审计,避免类似事件再次发生。

已在FreeBuf发表 0 篇文章

本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022


文章来源: https://www.freebuf.com/articles/blockchain-articles/399728.html
如有侵权请联系:admin#unsafe.sh