SMT整型溢位漏洞分析筆記
此次漏洞發生的虛擬貨幣為SmartMesh(簡稱SMT),目前該貨幣以以太坊智慧合約的形式釋出,Token為0x55f93985431fc9304077687a35a1ba103dc1e081,最初觸發漏洞的交易記錄位於下圖所示的交易記錄上:
根據圖中Input Data中的資訊,定位到SMT中發生錯誤的智慧合約函式transferProxy,該函式主要用於沒有以太幣的SMT幣擁有者,將簽署過的交易資訊交由第三方節點進行釋出,而訊息的傳送節點會收到SMT幣作為酬勞。
該函式的第一行對於此次交易轉出者的餘額進行校驗。交易記錄中的0-6變數依次對應於該函式的7個引數,此處的_feeSmt + _value實際為:
0x7000000000000000000000000000000000000000000000000000000000000001 +
0x8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
運算結果會被對映為uint256型資料,因此會發生無符號整型資料的上溢,使計算結果為0,從而繞過了此處檢查。這最終將導致msg.sender(傳送交易訊息的節點)和_to
(錢幣接受者)代表的錢包在記賬時分別記入feeSmt(0x7000......)和_value
(0x8FFF......)個SMT貨幣。這一過程被同樣被記錄在了以太坊的交易記錄中,如下圖最後兩條記錄所示,而後續發生的交易則是攻擊者向其他錢包進行錢幣轉移的操作。
攻擊者賬戶交易資訊
相關文章
- 智慧合約安全之整型溢位
- 堆溢位學習筆記筆記
- 記憶體溢位的分析記憶體溢位
- 一個簡單的遠端溢位漏洞分析
- Android記憶體溢位分析Android記憶體溢位
- 堆溢位-House of orange 學習筆記筆記
- 記憶體溢位:native溢位 和 上層溢位記憶體溢位
- YoungzsoftCMailServer遠端棧溢位漏洞AIServer
- [二進位制漏洞]棧(Stack)溢位漏洞 Linux篇Linux
- 快取區溢位漏洞工具Doona快取
- 阿里大佬講解Java記憶體溢位示例(堆溢位、棧溢位)阿里Java記憶體溢位
- C進階指南(1):整型溢位和型別提升、記憶體申請和管理型別記憶體
- 二進位制漏洞挖掘之整數溢位
- CSS 小結筆記之文字溢位處理CSS筆記
- 記憶體溢位記憶體溢位
- DLink 815路由器棧溢位漏洞分析與復現路由器
- JVM 深入筆記(2)記憶體溢位場景模擬JVM筆記記憶體溢位
- CSS學習筆記:溢位文字省略(text-overflow)CSS筆記
- Java記憶體溢位Java記憶體溢位
- JBOSS記憶體溢位記憶體溢位
- CVE-2010-2883-CoolType.dll緩衝區溢位漏洞分析
- Linux堆溢位漏洞利用之unlinkLinux
- 以太坊智慧合約 Hexagon 存在溢位漏洞Go
- 從CVE復現看棧溢位漏洞利用
- JVM 深入筆記(2)記憶體區溢位場景模擬JVM筆記記憶體
- CVE-2010-3333-office RTF棧溢位漏洞分析
- WebLogic: 記憶體溢位Web記憶體溢位
- java 程式記憶體溢位Java記憶體溢位
- 記憶體溢位問題記憶體溢位
- perl格式串處理整數溢位漏洞(轉)
- IMail SMTP 緩衝區溢位漏洞 (APP,缺陷) (轉)AIAPP
- 緩衝區溢位小程式分析
- 記一次 .NET 醫院CIS系統 記憶體溢位分析記憶體溢位
- 漏洞挖掘-靜態分析實驗筆記筆記
- 緩衝區溢位漏洞那些事:C -gets函式函式
- 緩衝區溢位漏洞的原理及其利用實戰
- 一個緩衝區溢位漏洞的簡易教程
- Java記憶體溢位情況Java記憶體溢位