TMT观察网_独特视角观察TMT行业

WF曲速未來揭秘:God.Game被盜事件具體分析區(qū)塊鏈

區(qū)塊鏈安全檔案 2018-08-29 21:21
分享到:
導讀

WF曲速未來對該攻擊進行詳細了解,簡稱God合約。時隔一天攻擊者就盜取了該合約的243個以太幣,價值超過6萬美元。該項目方籌備兩個月游戲在運營不久后迅速夭折。

8月19日,God.Game在以太坊區(qū)塊鏈上部署了自己的智能合約(地址位于https://etherscan.io/token/0xca6378fcdf24ef34b4062dda9f1862ea59bafd4d,簡稱God合約),時隔一天攻擊者就盜取了該合約的243個以太幣,價值超過6萬美元。WF曲速未來對該攻擊進行詳細了解,簡稱God合約。時隔一天攻擊者就盜取了該合約的243個以太幣,價值超過6萬美元。該項目方籌備兩個月游戲在運營不久后迅速夭折。

簡單介紹

God.Game是一個基于以太坊網(wǎng)絡的博彩類區(qū)塊鏈游戲平臺,獨立運行在智能合約上,一切由機器人自動執(zhí)行,一旦運行,人無法對它進行干預和操控,達到一個去中心化的目的。God.Game還打出這樣的口號:高分紅、全透明、防止作弊,打造全球最安全的智能合約游戲平臺。此外,God.Game還設有GOD股份機制。用戶通過購買GOD股份(GOD代幣)來獲得分紅。并且,如果擁有了100個GOD 股份,用戶即可以成為超級節(jié)點,激活邀請系統(tǒng)。

漏洞定位

經(jīng)過對源代碼進行漏洞排查后發(fā)現(xiàn)漏洞原因為dividends變量異常:

首先看一下dividends的計算邏輯:

return (uint256) ((int256)(profitPerShare_*tokenBalanceLedger_[_customerAddress]) - payoutsTo_[_customerAddress]) / magnitude;

每當一個地址token增加或減少操作時,都會對該地址的payoutsTo這個變量進行操作,

購買token增加payoutsTo變量:

賣出或轉賬token減少payoutsTo變量:

這些都很容易理解。

但是在轉賬邏輯我們卻發(fā)現(xiàn),對于合約地址,是沒有payoutsTo的,這個疑點先記在小本本上。

這是源碼的轉賬部分

轉賬:

我們再仔細查看一下withdraw函數(shù)里面:

我們驚訝的發(fā)現(xiàn)在withdraw函數(shù)中,會對payoutsTo進行一個賦值操作,賦值為dividends*magnitude;這里magnitude=2**64;

從上面dividends的邏輯的(profitPerShare_*tokenBalanceLedger_[_customerAddress])部分可以看出,只要有賬戶有token那dividends就一定有值的,dividends有值我們就可以進行withdraw操作。

攻擊流程推理

對照攻擊者交易明細,我們來復現(xiàn)攻擊流程。我們假設token對應紅利是1:1,便于解釋。

1.部署攻擊合約

tx:1.部署合約攻擊者部署合約,準備攻擊。合約地址:0x7F325efC3521088a225de98F82E6dd7D4d2D02f8

2.購買token

tx:2. 購買token攻擊者購買一定量token,準備攻擊。

3.向攻擊合約轉賬token

tx:3.transfer(attacker->attack-contract)攻擊者本身購買了少量token,使用游戲合約中的transfer(),向攻擊合約轉賬。

4.攻擊合約withdraw()

tx:4.withdraw()攻擊合約調用了God的withdraw(),攻擊合約因此獲得了紅利對應以太幣不重要

5.攻擊合約transfer()

tx:5.transfer(attack-contract->attacker)將token轉回,攻擊合約token不變,紅利溢出。

6.攻擊合約reinvest()

tx:6.reinvest()再投資,將紅利買token,可以大量購買token。

7.攻擊合約sell()

tx:7.sell()賣出一部分token,因為發(fā)行的token過多,會導致token價值太低,提取以太幣較少。

8.攻擊合約transfer()

tx:8.transfer(attack-contract -> 受益者)把智能合約賬戶的token轉給受益者(0xc30e)一部分。

9.受益者sell() withdraw()

受益者(0xc30e)賣掉token,并withdraw()紅利,得到以太幣。

攻擊流程總結

(1) 創(chuàng)建一個攻擊合約,可以調用God合約并且向該合約轉入幾個God token

(2) 攻擊合約調用God合約withdraw的函數(shù),觸發(fā)payouts[address]值增加

(3) 調用攻擊合約將攻擊合約中的God token全部轉出,使合約token=0,攻擊合約地址的dividends出現(xiàn)異常;

(4) 調用reinvest()可以使用異常devidends購買大量token,因為合約token總量增加,分紅增加,token價格上漲,此時任何人都可以賣出少量token來獲取到大量的eth蛛絲馬跡

我們查看游戲合約異常的dividends證據(jù):

紅框內“00000000ffffffffff”的類似結構代表其為負數(shù)

由此證明dividends確實出現(xiàn)了類型轉換異常的情況。

攻擊者通過攻擊合約調用God合約的reinvest()函數(shù),使用異常的dividends購買了大量God代幣,總量約為300億,此時代幣價格迅速攀升,最后,攻擊者只賣出了0.9個token就已經(jīng)將合約中的200多以太坊轉走。

復現(xiàn)步驟:

1.部署God合約在測試鏈上,God地址: 0x92cbCBc31f6bb209f2C4F6cbd0596ba22D71979d

2.普通用戶支付1 ETH購買代幣

3. 攻擊者支付0.1 ETH購買代幣

4. 攻擊者部署攻擊合約PWN,PWN合約地址:     0x88DF1483Db9d3720378d2CB6859c8487e4412ac7攻擊合約代碼地址:https://ropsten.etherscan.io/address/0x88DF1483Db9d3720378d2CB6859c8487e4412ac7#code

5. 攻擊者向PWN合約轉4 GOD代幣

6. 攻擊通過PWN合約調用God合約的withdraw函數(shù),使PWN合約的payoutsTo_變?yōu)椋?/span>

7. 攻擊者轉出PWN合約下的God代幣,使得tokenBalanceLedger_為零,此時計算PWN合約的dividendsOf 值所需參數(shù)的值為:profitPerShare_ = 8997439772575371tokenBalanceLedger_[PWN] = 0payoutsTo_[PWN] = 0x254197237940000000000000000

執(zhí)行dividendsOf函數(shù),得到PWN合約地址的分紅為dividendsOf = uint(-0x25419723794),此處在由int轉化為uint中出現(xiàn)錯誤:

8. 攻擊者通過PWN合約調用GOD合約reinvest函數(shù),利用超大的dividendsOf 值購買代幣,獲得了大量代幣,使得profitPerShare提升到極大值,進而破壞了God 與ETH之間的匯率

異常的profitPerShare值

PWN購買的God代幣數(shù)

9. God合約的代幣數(shù)量與主鏈上數(shù)量相近,復現(xiàn)成功

測試God合約代幣總量300億

真實God合約代幣總量330億

總結

經(jīng)由以上推理與證據(jù)的理論驗證,以及復現(xiàn)與真實的數(shù)據(jù)驗證,我們確定此次攻擊手段定義為類型轉換漏洞攻擊。

攻擊者巧妙利用God合約的設計漏洞,在計算dividends時,未考慮int類型的負值轉化為uint時的情況,導致合約被攻擊。

從Etherscan上查到的信息來看,部署攻擊合約為8月20日04:42:27 PM,卷走ETH為04:57:26 PM。黑客僅僅用了15分鐘完成上述所有操作。

除此漏洞之外,我們還在合約中發(fā)現(xiàn)如下兩個“后門”,God合約的owner(在下列代碼中體現(xiàn)為Administrator)可以使用這兩個函數(shù)轉出合約地址下的所有ETH。

此處Administrator可以指定任意賬戶的代幣數(shù),然后可以將這部分代幣數(shù)兌換為ETH

此處Administrator取走項目獎勵時沒有減去已經(jīng)取走的value值,導致Administrator可以重復取出ETH。

WF曲速區(qū)提醒:總而言之,目前的游戲合約,尤其是交易屬性較重的游戲合約,安全漏洞出現(xiàn)的情況非常普遍。

不僅是God.Game,區(qū)塊鏈博彩類游戲已是漏洞重重。

8月17日,一款火爆程度堪比“Fomo3D”的區(qū)塊鏈游戲“Last Winner”首輪已經(jīng)宣告結束,最終Winner一舉斬獲了7,755個ETH,以當時行情來預估,獎金高達1500萬元。而PeckShield安全研究人員進一步跟蹤研究發(fā)現(xiàn),該獲獎賬戶正是此前發(fā)現(xiàn)的利用合約攻擊合約,提升中大獎的概率的“外掛”賬戶,同時,該外掛賬戶還在利用游戲的空投機制進行薅羊毛,總計獲利231個ETH。

而炙手可熱的Fomo3D首輪結束疑為“黑天鵝”,獲獎者投入僅0.8個ETH,回報超13,000倍,PeckShield安全人員追蹤該用戶地址發(fā)現(xiàn),該用戶于8月15日開始投注,每次投注金額約為一個Key的價錢,截至獲得大獎,共計投入了0.8個ETH,投資回報率超13,000倍,回報驚人。需要說明的是,該地址為普通賬戶并非“合約”,只不過采用了一個簡單的自動交易“腳本”,由于最后40次平均投注間隔長約183秒,頻率不算太高。

區(qū)塊鏈安全公司W(wǎng)F曲速未來提醒廣大玩家和投資者,在進入一些“一夜爆紅”的游戲之前,要擦亮眼睛,理智投資,最好是參與已經(jīng)提供審計報告的區(qū)塊鏈游戲,對于未經(jīng)過合約安全驗證的游戲不可盲從。同時,各游戲項目方也應該在游戲上線前做好對智能合約的安全審計,以保護自己的項目運營和玩家的資產(chǎn)安全。區(qū)塊鏈為游戲行業(yè)帶來變革的同時,保證游戲的安全性可能也是當務之急。

合約 攻擊 游戲 God token
分享到:

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


專題報道

主站蜘蛛池模板: 冷藏车厂家|冷藏车价格|小型冷藏车|散装饲料车厂家|程力专用汽车股份有限公司销售十二分公司 | 金属抛光机-磁悬浮抛光机-磁力研磨机-磁力清洗机 - 苏州冠古科技 | 数显水浴恒温振荡器-分液漏斗萃取振荡器-常州市凯航仪器有限公司 | 济南网站建设|济南建网站|济南网站建设公司【济南腾飞网络】【荐】 | 回收二手冲床_金丰旧冲床回收_协易冲床回收 - 大鑫机械设备 | 外观设计_设备外观设计_外观设计公司_产品外观设计_机械设备外观设计_东莞工业设计公司-意品深蓝 | 行业分析:提及郑州火车站附近真有 特殊按摩 ?2025实地踩坑指南 新手如何避坑不踩雷 | 刚性-柔性防水套管-橡胶伸缩接头-波纹管补偿器-启腾供水材料有限公司 | 低温柔性试验仪-土工布淤堵-沥青车辙试验仪-莱博特(天津)试验机有限公司 | 玻璃钢格栅盖板|玻璃钢盖板|玻璃钢格栅板|树篦子-长沙川皖玻璃钢制品有限公司 | 沈阳激光机-沈阳喷码机-沈阳光纤激光打标机-沈阳co2激光打标机 | 包塑丝_高铁绑丝_地暖绑丝_涂塑丝_塑料皮铁丝_河北创筹金属丝网制品有限公司 | 高扬程排污泵_隔膜泵_磁力泵_节能自吸离心水泵厂家-【上海博洋】 | ★济南领跃标识制作公司★济南标识制作,标牌制作,山东标识制作,济南标牌厂 | 分子精馏/精馏设备生产厂家-分子蒸馏工艺实验-新诺舜尧(天津)化工设备有限公司 | 鹤壁创新仪器公司-全自动量热仪,定硫仪,煤炭测硫仪,灰熔点测定仪,快速自动测氢仪,工业分析仪,煤质化验仪器 | 实体店商新零售|微赢|波后|波后合作|微赢集团 | 曙光腾达官网-天津脚手架租赁-木板架出租-移动门式脚手架租赁「免费搭设」 | 高柔性拖链电缆_卷筒电缆_耐磨耐折聚氨酯电缆-玖泰特种电缆 | 3d可视化建模_三维展示_产品3d互动数字营销_三维动画制作_3D虚拟商城 【商迪3D】三维展示服务商 广东健伦体育发展有限公司-体育工程配套及销售运动器材的体育用品服务商 | 27PR跨境电商导航 | 专注外贸跨境电商| 耐火浇注料-喷涂料-浇注料生产厂家_郑州市元领耐火材料有限公司 耐力板-PC阳光板-PC板-PC耐力板 - 嘉兴赢创实业有限公司 | 泰国专线_泰国物流专线_广州到泰国物流公司-泰廊曼国际 | 石膏基自流平砂浆厂家-高强石膏基保温隔声自流平-轻质抹灰石膏粉砂浆批发-永康市汇利建设有限公司 | 吸污车_吸粪车_抽粪车_电动三轮吸粪车_真空吸污车_高压清洗吸污车-远大汽车制造有限公司 | 沈阳液压泵_沈阳液压阀_沈阳液压站-沈阳海德太科液压设备有限公司 | 柴油发电机组_柴油发电机_发电机组价格-江苏凯晨电力设备有限公司 | 地图标注|微信高德百度地图标注|地图标记-做地图[ZuoMap.com] | 铝合金重力铸造_铝合金翻砂铸造_铝铸件厂家-东莞市铝得旺五金制品有限公司 | 中空玻璃生产线,玻璃加工设备,全自动封胶线,铝条折弯机,双组份打胶机,丁基胶/卧式/立式全自动涂布机,玻璃设备-山东昌盛数控设备有限公司 | 双舌接地线-PC68数字式高阻计-ZC36|苏海百科 | 洛阳防爆合格证办理-洛阳防爆认证机构-洛阳申请国家防爆合格证-洛阳本安防爆认证代办-洛阳沪南抚防爆电气技术服务有限公司 | 乐之康护 - 专业护工服务平台,提供医院陪护-居家照护-居家康复 | 二氧化碳/活性炭投加系统,次氯酸钠发生器,紫外线消毒设备|广州新奥 | 立刷【微电签pos机】-嘉联支付立刷运营中心 | OLChemim试剂-ABsciex耗材-广州市自力色谱科仪有限公司 | 广州展览制作工厂—[优简]直营展台制作工厂_展会搭建资质齐全 | 上海洗地机-洗地机厂家-全自动洗地机-手推式洗地机-上海滢皓洗地机 | 珠海白蚁防治_珠海灭鼠_珠海杀虫灭鼠_珠海灭蟑螂_珠海酒店消杀_珠海工厂杀虫灭鼠_立净虫控防治服务有限公司 | 焊接烟尘净化器__焊烟除尘设备_打磨工作台_喷漆废气治理设备 -催化燃烧设备 _天津路博蓝天环保科技有限公司 | 全自动端子机|刺破式端子压接机|全自动双头沾锡机|全自动插胶壳端子机-东莞市傅氏兄弟机械设备有限公司 |