04月11日凌晨00:17,PeckShield態勢感知平臺監測到TCX1Cay…開頭的黑客,創建了名為BTTx,tokenid為1002278的TRC10token,并于凌晨00:25至01:00之間向多個地址轉入4,000萬個BTTx代幣,這多個地址對TXHFhq…開頭的BTTBank理財類合約實施攻擊。
原文標題:《波場假幣攻擊全過程:BTTBank理財合約遭黑客假BTT攻擊》
BTTBank項目介紹
BTTBank又名TronBankBTT,是屬于TronBank旗下的一款專屬于BitTorrent(BTT)-ThetokenthatwillenableblockchainmassadoptionBTTtoken的投資產品,根據官網TronBank介紹:
TronBankBTT的智能合約將為您產生每天3.6-6.6%的投資收益(取決于你購買的產品計劃),自動發放到你的收益余額中。舉例,購買4.6%收益計劃,21天你即可獲得超過100%收益。收益每秒都會計算,你甚至每秒都可以提取收益或重新投資。當您重新投資收益時,投資金額會增加,可以更快的獲得更多收益。
PeckShield:Wintermute攻擊者地址持有總供應量51.8%的3CRV代幣:金色財經報道,據PeckShieldAlert監測,社區貢獻者檢測到標記為Wintermute攻擊者的地址持有超過一半的3CRV代幣 (總供應量的51.8%)。
Wintermute在2022年9月遭受攻擊,損失1.6億美元,攻擊者向Curve存入了高達1.14億美元的資金。[2023/8/11 16:20:56]
其產品界面如下:
其理財過程大致如下:
1、用戶根據收益率和投資期限購買相應的理財產品;2、投資期限到期之后,用戶提現理財產品到自己的錢包。
使用上,和當前的各類P2P理財產品類似,用戶的使用門檻僅在于一個TRON錢包,但從產品收益率來看,這個資產回報率還是相當可觀的。
攻擊回溯
攻擊事件簡述
去年年底,波場孫宇晨發起12號提議,即符合波場TRC10規范的Nativetoken的名字將不再唯一,涉及到TRC10token的轉賬等操作將使用ID來代替。這使得波場創建token的流程變得簡單易上手,然而卻帶來一個潛在的威脅,一旦合約疏于檢查tokenid的匹配性,就會存在假幣攻擊的可能。簡而言之,本次BTTBank遭受攻擊正是因為缺乏tokenid的一致性驗證造成的。
ApeCoin DAO社區關于推出.ape域名服務的提案開啟投票:5月19日消息,ApeCoin DAO社區新提案AIP-224開啟投票,該提案旨在擴展Ape協議推出“.ape”域名服務,投票將于5月25日結束。根據提案內容,“.ape”域名服務主要基礎設施包括DApp、域名解析器和協議邏輯,實施步驟包括創建DApp并對其進行Beta測試、測試版、對Yuga Labs NFT ID開放鑄造、對APE持有者開放鑄造、對所有人開放,基礎設施總成本為67900APE。[2023/5/19 15:13:30]
背景知識
TRON中的token分為幾種規范:
TRXTRC20TRC10其中,TRX為TRON的平臺幣,類似于Ethereum中的ETH。
而TRC20是與EthereumERC20兼容的token,實質是一種可編程的智能合約,由用戶通過智能合約創建token之后,其token的轉賬、發送等操作均在智能合約內部完成,對于一般的小白用戶來說,ERC20/TRC20使用過于復雜,不便于上手使用。
ApeCoin新提案擬為以太坊社區提供100萬美元捐贈:4月16日消息,ApeCoin社區發起新提案AIP-230,旨在為以太坊社區提供100萬美元捐贈,其中包括向ETH Global捐贈30萬美元,以及向11場ApeCoin黑客松和至少5項公益活動贊助70萬美元。[2023/4/16 14:07:00]
故此,TRON中引入了TRC10token,這是一種可以由用戶直接操控的token,每一個自然用戶支付1024TRX便可創建一個TRC10token,同時一個用戶只能創建一個TRC10token。每一個TRC10token在創建之后,由系統分配一個唯一ID,這是一個從1,000,001開始往后自增的整數,一個tokenId標識一個唯一的token,當前TRON平臺上共有1850個TRC10。
為了提高TRC10的流動性和使用價值,TRON平臺在Odyssey3.2版本之后,使能了在智能合約內部轉賬TRC10token的功能,參考TRC10TransferinSmartContracts,其示例代碼如下所示:
PeckShield:BAYC #4587被竊:金色財經報道,據PeckShield在社交媒體披露,“無聊猿”BAYC #4587已被“0x43C9”開頭地址的黑客竊取,該NFT在289天前被出售,當時銷售價格為89.9 ETH (約合147,535.79美元)。[2023/2/23 12:24:16]
上述代碼簡單解釋如下:
1、transferTokenTest()接口內部用于轉賬TRC10token,接口調用方可以通過address.transferToken(uint256tokenValue,trcTokentokenId)往address轉賬數量為tokenValue的tokenid為tokenid的TRC10token;2、msgTokenValueAndTokenIdTest()接口表明,調用者可以直接在發送的message中加入tokenid和tokenvalue字段,這也說明了TRC10是TRON平臺上的一等公民,屬于內置類型,與TRC20通過函數參數的形式來表征token價值是完全不同的;3、getTokenBalanceTest()通過tokenid獲取賬號的余額。
PeckShield:“zed-run.info”是網絡釣魚站點,可能會竊取用戶私鑰:5月27日消息,據PeckShield監測顯示, “zed-run.info”是一個網絡釣魚站點,可能會竊取用戶私鑰,提醒用戶不要點擊該站點。[2022/5/27 3:46:00]
由此可知,TRC10token可以在智能合約內部通過tokenid完成轉賬,TRC10token作為價值承載者,在智能合約內部即反映在tokenid的差異上。
因此,合約開發者在處理TRC10轉賬相關邏輯時,需要特別注意tokenId的有效性和真實性。
攻擊事件
PeckShield安全人員在分析BTTBank合約時,發現其合約源碼實現中存在致命漏洞,可導致項目方資金受損。
下圖為黑客攻擊的原過程:
1、黑客先行創建一個名為BTTx的TRC10token;2、黑客往一批自己控制的賬號中轉入4,000萬個BTTxtoken;3、通過控制的賬號往BTTBank合約發起數次攻擊;4、最后順序將BTT提取到控制的賬號中。
下文從BTTBank投資及贖回的過程還原本次BTT假幣攻擊的全過程。
投資
投資的核心代碼如下:
public接口的invest()提取msg.tokenvalue,并調用private的invest()函數完成投資的過程,invest()內部計算并保存用戶這一次的投資數量、時間等信息到合約的內部資產賬單上。值得注意的是,這里invest()只提取了msg.tokenvalue,這里并沒有提取msg.tokenid,也沒有驗證msg.tokenid是否屬于BTTToken的tokenid(為1002000)。
前面我們提到BTTBank是一款投資理財類DApp,用戶存入BTTtoken,資產到期之后,再贖回投資的BTT和對應的利息,在這里并沒有檢查是否是真正的BTT,也就是不論你投資的阿貓阿狗幣,都被認為是BTTtoken。
提現
提現的核心代碼如下:
贖回的過程比較簡單,先從合約的內部投資賬單上計算用戶已經到期的投資金額,并將這一部分投資金額轉回給用戶,注意:msg.sender.transferToken(withdrawalAmount,BTT_ID)中是固定的BTT_ID即1002000.
至此,用戶投入BTT,收獲BTT;而黑客投入BTTx,收獲BTT,一個完美的『貍貓換太子』過程。
防御策略
PeckShield安全人員在此提醒廣大開發者,雖然TRC10/TRC20都是token,但兩者在TRON平臺上有著本質的差異性,若要在智能合約內部轉賬TRC10,一定要檢查所轉移的TRC10對應的tokenid是否為預期值。針對上例,可將投資代碼增強如下:
另外,PeckShield安全人員根據上述的代碼樣式分析TRON平臺上其它類BTTBank合約時,也發現了相似的問題。在此,PeckShield安全人員提醒在進行智能合約開發的時候,雖然復用現有代碼可能會帶來開發功能上面的便利,但也須注意可能帶來的安全風險。
來源鏈接:mp.weixin.qq.com
本文來源于非小號媒體平臺:
PeckShield
現已在非小號資訊平臺發布1篇作品,
非小號開放平臺歡迎幣圈作者入駐
入駐指南:
/apply_guide/
本文網址:
/news/3627176.html
免責聲明:
1.資訊內容不構成投資建議,投資者應獨立決策并自行承擔風險
2.本文版權歸屬原作所有,僅代表作者本人觀點,不代表非小號的觀點或立場
上一篇:
波場DApp再遭手!游戲TronWow變提款機,Peckshield深度講解黑客手法
下一篇:
少寫一行代碼的教訓:TronBank1.7億BTT僅3小時就被洗劫一空
Tags:TOKEKENTOKTOKENZorro Tokenitoken官網hntokenEarthcrypt Token
文章系金色財經專欄作者供稿,發表言論僅代表其個人觀點,僅供學習交流!金色盤面不會主動提供任何交易指導,亦不會收取任何費用指導交易,請讀者仔細甄別,謹防上當.
1900/1/1 0:00:00如果你認為自己的窮人,那我希望你不要炒幣。前證監會主席郭樹清說過一句話:“窮人”不適合炒股,建議散戶離場。放到幣圈,這句話就變成:“窮人”,不適合炒幣.
1900/1/1 0:00:00隨著近期BOS生態及社區熱度的上升,越來越多有著區塊鏈技術背景的開發者開始關注BOS生態,為了讓BOS生態更安全、更豐富,從技術全面和技術保障上最大程度的幫助BOS開發者組織資源.
1900/1/1 0:00:00根據推特用戶planB最近的民意調查,在2500名參與者中,61%的人預計BTC價格會出現大幅上漲。由于挖礦獎勵將減半,流通中發行的比特幣將減少,這將使比特幣比現在更加稀缺,因此價格應該會上漲.
1900/1/1 0:00:00作者|王也 近日,數字貨幣交易所Bitfinex及其旗下交易平臺Ethfinex宣布推出新的IEO交易平臺Tokinex.
1900/1/1 0:00:00珠江時報訊禪城區居家養老服務中心將探索“區塊鏈+養老服務“,打造養老服務新模式。昨日上午,佛山市禪城區政協副主席羅振帶領約20名政協委員開展養老服務工作視察.
1900/1/1 0:00:00