麻豆国内精品欧美在线-麻豆国内精品久久久久久-麻豆国产在线观看一区二区-麻豆国产在线观看免费-麻豆国产原创-麻豆国产一区二区在线观看

WF曲速未來 安全課堂| Solidity安全之delegatecall 的濫用問題區塊鏈

曲速未來安全區 2018-08-09 21:25
分享到:
導讀

WF曲速未來:Soildity作為編寫智能合約的語言,已經被廣泛的應用。但同時,開發者和用戶也得到了慘痛的教訓,智能合約的安全問題層出不窮。因此,我們總結了一些常見的Solidity安全問題。前車之鑒,后車之師,希望后來者能有所警惕。

區塊鏈安全公司WF曲速未來 安全開課:

Soildity 作為編寫智能合約的語言,已經被廣泛的應用。但同時,開發者和用戶也得到了慘痛的教訓,智能合約的安全問題層出不窮。因此,我們總結了一些常見的Solidity安全問題。前車之鑒,后車之師,希望后來者能有所警惕。

delegatecall 「濫用」問題

在 Solidity 中提供了delegatecall函數來實現合約之間相互調用及交互。各種調用,導致了delegatecall函數被合約開發者“濫用”,甚至“肆無忌憚”提供任意調用“功能”,導致了各種安全漏洞及風險。

Delegatecall是一種常用的調用函數,它的特點是調用后內置變量 msg 的值不會修改為調用者,但執行環境為調用者的運行環境。

代碼分析

在智能合約的開發過程中,合約的相互調用是經常發生的。開發者為了實現某些功能會調用另一個合約的函數。比如下面的例子,調用一個合約 A 的 test() 函數,這是一個正常安全的調用。

但是在實際開發過程中,開發者為了兼顧代碼的靈活性,往往會有下面這種寫法:

這將引起任意 public 函數調用的問題:合約中的 delegatecall 的調用地址和調用的字符序列都由用戶傳入,那么完全可以調用任意地址的函數。

相關事件

7 月 19 日,Parity發布安全警報,警告其錢包軟件1. 5 版本及之后的版本存在一個漏洞。據該公司的報告,確認有153,000ETH(大約價值 3000 萬美元)被盜。

因為initWallet函數是公開函數( public function) , 攻擊者調用initWallet,重新初始化錢包會把之前合約錢包所有者覆蓋, 即可改變錢包所有者。 

漏洞代碼:

攻擊過程技術分析還原:

第一步:成為合約的owner

通過往這個合約地址轉賬一個value = 0 ,msg.data.length > 0 的交易, 執行到_walletLibrary.delegatecall的分支,該函數能無條件的調用合約內的任何一個函數,黑客調用了一個叫做 initWallet的函數:

這個函數再次調用initMultiowned函數:

不幸的是,initWallet沒有檢查以防止攻擊者在合同初始化后調用到initMultiowned, 這個函數使得這個合約的所有者被改為攻擊者,相當于從unix中獲得了root權限。

第二步: 轉賬, 剩下的事情就很清晰了,通過調用execute函數轉賬到黑客的地址:

第一個參數: address to= 0xb3764761e297d6f121e79c32a65829cd1ddb4d32, 轉賬額度116779808c03e4140000是為以Wei為單位的的eth,即 82189000000000000000000,可以通過如下的代碼獲得具體數值。

區塊鏈安全公司WF曲速未來 表示:

作為已經有過被利用先例的漏洞,開發者在智能合約在部署前必須通過嚴格的審計和測試,在編寫時使用delegatecall要更加小心。

調用 合約 函數 安全 開發者
分享到:

1.TMT觀察網遵循行業規范,任何轉載的稿件都會明確標注作者和來源;
2.TMT觀察網的原創文章,請轉載時務必注明文章作者和"來源:TMT觀察網",不尊重原創的行為TMT觀察網或將追究責任;
3.作者投稿可能會經TMT觀察網編輯修改或補充。


專題報道

主站蜘蛛池模板: 福利国产片 | 香艳69xxxxx有声小说 | 亚洲午夜精品久久久久久抢 | 男人天堂影院 | 禁忌4中文| 久久国产精品永久免费网站 | 欧美人做人爱a全程免费 | 白丝h视频 | 色花堂国产精品首页第一页 | 国产精品久久久久jk制服 | 青青在线视频观看 | 欧美性高清另类videosex死尸 | 百合互慰吃奶互揉漫画 | 清纯唯美 亚洲 | 国产高清露脸学生在线观看 | 99久久精品无码一区二区毛片 | 成人另类视频 | 国产日韩一区二区三区在线播放 | 亚州精品永久观看视频 | 午夜精品在线视频 | 俺去俺也在线www色官网 | 操美女骚b | 国产成人久视频免费 | 亚洲第一区在线观看 | 欧美成人精品第一区二区三区 | 青青青国产在线 | 日本无吗免费一二区 | 把美女屁股眼扒开图片 | 欧美腐剧mm在线观看 | 成人国产精品视频 | 欧美日韩视频在线第一区二区三区 | 国产精品特黄毛片 | 香蕉免费看一区二区三区 | 国产精品制服丝袜白丝www | 日韩精品一区二区三区视频 | 骚虎网站在线观看 | 欧美日韩一区二区三区在线视频 | 国产清纯白嫩大学生正在播放 | 亚洲AV久久无码精品九号 | 91aaa免费免费国产在线观看 | 青青草原国产在线 |