慢霧:TitanoFinance 被黑簡析
據慢霧區情報,2022 年 2 月 14 日,BSC 鏈上的 TitanoFinance 項目遭受攻擊。
1. 在 2022-02-10 18:48:04 (UTC),攻擊者創建了相關的攻擊合約 (0x1866207c355d4c6e0b03b4dc0bf9c658f4d13f8a)
2. 在 2022-02-14 4:36:21 (UTC),攻擊者調用第一步中的 0x186620 合約中的 createMultipleWinnersFromExistingPrizeStrategy 函數創建了惡意的 prizeStrategy 合約 0x49D078d25b08f2731cBf5AF8e8CDF1eA3E0a2046
3. 在 2022-02-14 4:39:12 (UTC),StakePrizePool 合約 (0x4d7f0a96967dce1e36dd2fbb131625bbd9106442) 中,owner (0xc8abdb16fd6040c76dfd9b5186abfdc3b96df4b8) 調用了 setPrizeStrategy 函數 ( 該函數僅 owner 可以調用 ),使得 _prizeStrategy 被改成了 0x49D078d25b08f2731cBf5AF8e8CDF1eA3E0a2046
4. 在 2022-02-14 4:41:51 (UTC),接着攻擊者調用了所創建的惡意的 prizeStrategy 合約 (0x49D078) 中的 _awardTickets 函數,該函數調用了 prizePool 合約中 (0x4d7f0a) 的 award 函數,該函數需要滿足 onlyPrizeStrategy 修飾器條件 (_msgSender() == address(prizeStrategy)),該函數會給指定的 to 地址 mint 指定數量的 ticket 代幣 (Ticket Titano (TickTitano)
此時 prizePool 合約中的 _prizeStrategy 已經在上一步被修改成 0x49D078,滿足 onlyPrizeStrategy 的條件,於是 StakePrizePool 合約給攻擊者 mint 了 32,000,000 個 ticket 代幣
5. 在 2022-02-14 4:43:18 (UTC),StakePrizePool 合約 (0x4d7f0a) 中,owner 再次調用了 setPrizeStrategy 函數,將 _prizeStrategy 改回 0x5739f9F8C9Fc9854a5B6f3667a6fB14144DC40A7
6. 最後攻擊者調用 StakePrizePool 合約 (0x4d7f0a) 中的 withdrawInstantlyFrom 函數將 ticket 代幣換成 Titano 代幣,然後在 pancake 池子中把 Titano 換成 BNB,攻擊者重復了這個過程 8 次, 最後共獲利 4,828.7 BNB,約 1900w 美元
據慢霧 MistTrack 分析,攻擊者最初的獲利地址為 0xad9217e427ed9df8a89e582601a8614fd4f74563,目前被黑資金已被攻擊者轉移到其他 23 個錢包。
總結:此次主要由於 owner 角色可以任意設置 setPrizeStrategy 函數,導致了池子被設置成惡意的 PrizeStrategy 合約造成後續利用。慢霧安全團隊建議:對於敏感的函數操作,建議採用多籤錢包的角色來操作,或者把 owner 角色權限移交給社區管理。
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。
下周必關注|xAI預計將完成60億美元融資;Magic Eden將公布代幣經濟模型(11.18-11.24)
下周重點預告 11 月 18 日 Magic Eden:ME 代幣經濟模型將於 11 月 18 日...
Metrics Ventures市場觀察|本次新高後的時局和理解——比特幣新資產周期
作者:Will,Metrics Ventures 值此比特幣再次新高,史詩級 6 個月高位盤整眼看...