慢霧: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 角色權限移交給社區管理。
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。
Uniswap公告Unichain主網明年初上線!首測路線圖兩功能,UNI強彈17%
去 中心化交易所(DEX)龍頭 Uniswap 於 10 月宣佈推出專為 DeFi 設計的 Lay...
下周必關注|LayerZero決定是否开啓“費用开關”;Aligned空投注冊結束(12.23-12.29)
下周重點預告 12 月 23 日 Aligned 將向 891322 個地址空投 26% 的 AL...
空投周報 | OpenSea基金會官推上线;Azuki、Doodles疑似即將發幣(12.16-12.22)
@OdailyChina @web3_golem Odaily星球日報盤點了 12 月 16 日至...
資金費率的演變:從2021年黃金時代,到2024-2025年套利復興
資金費率起源 資金費率起源於加密貨幣衍生品市場,特別是從永續期貨合約中發展而來。它作為一種機制,用...