火星链 火星链
Ctrl+D收藏火星链

CROS:Crosswise攻击事件分析:“一两拨千金”

作者:

时间:1900/1/1 0:00:00

前言

2022年1月18日,知道创宇区块链安全实验室?监测到BSC上Crosswise遭遇攻击,此次攻击导致协议损失87.9万美元。

攻击者仅用1个CRSStoken便获取CrosswiseMasterChef池中价值87.9万美元的692K个CRSS。实验室将对本次事件深入跟踪并进行分析。

基础信息

攻击交易哈希:

0xd02e444d0ef7ff063e3c2cecceba67eae832acf3f9cf817733af9139145f479b

攻击者地址:

0x748346113B6d61870Aa0961C6D3FB38742fc5089

Crosswise:已修复sCRSS Vault APR等问题,将向受影响用户发放补偿:7月16日消息,跨链DEX Crosswise发推称,团队已经修复了以下问题:1. sCRSS Vault APR和收到奖励已恢复正常;2. Autocompound功能已修复。以下更新将很快添加:1. 限价订单,2. 订单簿。

此外,团队正在向所有遇到问题的用户发放补偿。[2023/7/16 10:58:32]

攻击合约:

0x530B338261F8686e49403D1b5264E7a1E169F06b

MasterChef:

0x70873211CB64c1D4EC027Ea63A399A7d07c4085B

Multichain暂停从Cronos、OKC、KCC、HECO、Gatechain、BTTC的部分资产提现:11月11日消息,Multichain将暂停从Cronos、OKC、KCC、HECO、Gatechain、BTTC的部分资产提现功能,充值功能正常。[2022/11/11 12:52:33]

CrosswiseRouter:

0x8B6e0Aa1E9363765Ea106fa42Fc665C691443b63

CRSS:

0x99FEFBC5cA74cc740395D65D384EDD52Cb3088Bb

攻击核心

此次攻击的核心在于,Crosswise中的MasterChef合约Owner地址设置即transferOwnership函数能够被攻击者绕过,使得攻击者能够成为新的Owner并对MasterChef池子进行攻击利用。我们将本次攻击过程分为两个阶段进行分析:获取Owner权限攻击和MasterChef池攻击。

MicroStrategy首席财务官:尽管市场暴跌,MicroStrategy仍将继续购买比特币:1月25日消息,MicroStrategy首席财务官Phong Le表示,我们对比特币的策略是买入并持有,所以如果我们有多余的现金流或我们找到其他筹集资金的方式,我们会继续将其投入比特币。MicroStrategy 今年将继续购买比特币,但目前尚不清楚它是否会比去年购买更多;该公司没有出售该资产的计划。MicroStrategy还考虑在未来一两年内,如果市场变得更具流动性,购买比特币支持的债券。该公司计划于2月1日发布第四季度财报。(WSJ)[2022/1/25 9:12:07]

获取Owner权限攻击

1.由于在MasterChef合约中setTrustedForwarder?函数为公开可见性且未作权限设置,攻击者先将自己的地址设置为TrustedForwarde地址。

两笔共10亿枚XRP从Ripple?Escrow钱包解锁 价值约4.16亿美元:Whale Alert数据显示,北京时间3月1日08:00,两笔共10亿枚XRP从Ripple?Escrow钱包解锁,价值约4.16亿美元,交易哈希分别为5D81B5C346FBCC6DDE06F30810BA01B1D1141A1198B7F84E58C836645CDE83D6和17DD3E166702B1D7A2206DDAA31372870EA5F8A5A7D0F4FA2AC12B995A9CE08E。注:按照惯例,Ripple 会在每个月的第一天解锁10亿枚XRP。但这些资金中的大部分通常会在同一天的晚些时候重新锁定在托管钱包中。[2021/3/1 18:02:07]

2.Crosswisefi项目方对MasterChef的_msgSender()函数并未采取openzepplin的标准写法且存在漏洞,导致攻击者能够通过构造恶意的calldata实现绕过onlyOwner限制完成合约Owner的获取。

下图为攻击者绕过onlyOwner权限构造的恶意payload:

MasterChef池攻击

1.攻击者在CrosswiseRouter中用0.01个WBNB兑换出3.71个CRSS

2.攻击者调用deposit将1个CRSS质押到CrosswiseMasterChef

3.由于上一阶段攻击者已经获取到MasterChef的Owner权限,此时攻击者调用set函数对MasterChef的pid为0的池子重新部署了一个未开源的策略合约:0xccddce9f0e241a5ea0e76465c59e9f0c41727003

4.攻击者调用MasterChef的withdraw函数从池子中获取692K的CRSS

5.最后攻击者把692K的CRSS通过CrosswiseRouter合约swap兑换出547个BNB完成攻击,获利超87.9万美元。

策略合约

猜想

由于攻击者部署的策略合约并未开源,我们只能反向推导猜想策略合约的主要逻辑:

1.根据下图第18行代码可以推断出合约中lockedAmount应该是一个极大值才能支撑攻击者692k的代币转出;又根据第7-11行可以推导出攻击者部署的strategy合约的LockeTotal()函数返回值极大、sharesTotal()返回值极小。

2.在上图代码23行当_amount>0时,会先计算出user的shareRemoved,然后在执行user.amount=user.amount.sub(shareRemoved);,此时若shareRemoved大于user.amount则代码执行不会通过,可以推导出26行的shareRemoved值很小,又shareRemoved是调用攻击者部署strategy合约中withdraw获取,所以此时的strategy合约中withdraw的返回值会很小,小于之前质押的1个CRSS数量;再结合链上数据可推导攻击者部署strategy合约中的withdraw调用返回值为0。

反编译

为了证实我们的猜想是否正确,我们将攻击者部署的策略合约进行反编译。

反编译后我们可以发现存在一个极大值和一个较小值的常量,即对应猜想1中LockeTotal和sharesTotal值,猜想1正确。

对于猜想2,经过反编译后我们可以看到策略合约的withdraw最后的返回值为0,猜想2正确

总结

这次攻击产生的主要原因是项目方使用错误的方法去获取msgSender,导致合约的Owner权限更改能被绕过。知道创宇区块链安全实验室?在此提醒,任何有关合约权限问题的操作都需要慎重考虑,合约审计、风控措施、应急计划等都有必要切实落实。

标签:CROCROSROSTERCRO币CROSSCHAINNEUROS币terra币和luna币关系

比特币价格今日行情热门资讯
OLA:幣安全倉槓桿新增PYR、QNT、SUN資產,逐倉槓桿新增BTTC、LOKA資產

親愛的用戶:幣安全倉槓桿新增PYR、QNT、SUN資產,逐倉槓桿新增BTTC、LOKA資產,並開放以下交易對:全倉槓桿交易對:PYR/BTC、PYR/BUSD、PYR/USDT、QNT/BTC、.

1900/1/1 0:00:00
Gate.io:Gate.io 首發上線Startup項目Metan Chain(METAN)及免費認購規則公告(免費瓜分 1,000,000個METAN

關於Gate.ioStartup免費空投計劃爲回饋平臺用戶,Gate.io上線“免費空投計劃”,在Startup區不定期進行區塊鏈項目的免費空投計劃.

1900/1/1 0:00:00
Gate.io Startup:Tap Fantasy (TAP) Initial Sale Result & Listing Schedule

1TapFantasy(TAP)TokenSaleResultTheGate.ioStartupTapFantasy(TAP)saleresultisasfollows:TAPStartupSa.

1900/1/1 0:00:00
NFT:一次只能买一个NFT?教你如何用聚合NFT平台批量扫地板

原文标题:《HowtosweepNFTfloors》原文作者:WilliamM.Peaster,Bankless原文编译:TechFlow亲爱的BanklessNation.

1900/1/1 0:00:00
SAN:XT.COM關於部分ETF產品觸發份額合並的公告

尊敬的XT.COM用戶:由於杠桿ETF產品MASK5L,DYDX5L,SAND5L,KSM3L,MASK3L,COMP3L,YGG5L,DOT3L,VET3L,BZZ3L.

1900/1/1 0:00:00
SOL:取代以太坊,竞争者们都有何杀手锏?

“以太坊作为第一个拥有智能合约的区块链,凭借先发优势已经建立了相对完整的生态并沉淀了足够多的用户,但在Gas费、处理速度和可扩展性方面饱受诟病.

1900/1/1 0:00:00