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貨幣。這一過程被同樣被記錄在了以太坊的交易記錄中,如下圖最後兩條記錄所示,而後續發生的交易則是攻擊者向其他錢包進行錢幣轉移的操作。
攻擊者賬戶交易資訊
相關文章
- 智慧合約安全之整型溢位
- 堆溢位學習筆記筆記
- CVE-2010-3333-office RTF棧溢位漏洞分析
- [二進位制漏洞]棧(Stack)溢位漏洞 Linux篇Linux
- CVE-2010-2883-CoolType.dll緩衝區溢位漏洞分析
- Windbg下使用dump分析記憶體溢位記憶體溢位
- Linux堆溢位漏洞利用之unlinkLinux
- 棧溢位漏洞利用(繞過ASLR)
- 阿里大佬講解Java記憶體溢位示例(堆溢位、棧溢位)阿里Java記憶體溢位
- Java棧溢位|記憶體洩漏|記憶體溢位Java記憶體溢位
- CSS 小結筆記之文字溢位處理CSS筆記
- 記憶體溢位記憶體溢位
- 二進位制漏洞挖掘之整數溢位
- DLink 815路由器棧溢位漏洞分析與復現路由器
- Java記憶體溢位Java記憶體溢位
- 以太坊智慧合約 Hexagon 存在溢位漏洞Go
- 從CVE復現看棧溢位漏洞利用
- 緩衝區溢位小程式分析
- 記一次 .NET 醫院CIS系統 記憶體溢位分析記憶體溢位
- 溢位、上溢、下溢
- MS15-002 telnet服務緩衝區溢位漏洞分析與POC構造
- 記一次網頁記憶體溢位分析及解決實踐網頁記憶體溢位
- 記一次 .NET 某婦產醫院 WPF記憶體溢位分析記憶體溢位
- 緩衝區溢位漏洞的原理及其利用實戰
- 緩衝區溢位漏洞那些事:C -gets函式函式
- 記憶體溢位和記憶體洩露記憶體溢位記憶體洩露
- return new物件造成溢位記憶體物件記憶體
- mybatis-plus getOne 記憶體溢位MyBatis記憶體溢位
- ERC20 智慧合約整數溢位系列漏洞披露
- CVE 2015-0235: GNU glibc gethostbyname 緩衝區溢位漏洞
- 從零開始復現 DIR-815 棧溢位漏洞
- 踏入IOT安全世界:DIR-815路由器多次溢位漏洞分析復現路由器
- 【記憶體洩漏和記憶體溢位】JavaScript之深入淺出理解記憶體洩漏和記憶體溢位記憶體溢位JavaScript
- JVM——記憶體洩漏與記憶體溢位JVM記憶體溢位
- 關於 PHP 記憶體溢位的思考PHP記憶體溢位
- 記憶體和棧溢位問題定位記憶體
- php記憶體溢位了怎麼辦?PHP記憶體溢位
- Redis 報”OutOfDirectMemoryError“(堆外記憶體溢位)RedisError記憶體溢位