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

以太坊蜜罐智能合約之神奇的邏輯漏洞區塊鏈

曲速未來安全區 2018-07-19 04:35
分享到:
導讀

細數在以太合約里的神奇邏輯漏洞

神奇的邏輯漏洞

該類蜜罐合約用2012年春晚小品《天網恢恢》中這么一段表現是及其合適的:

送餐員: 外賣一共 30 元 

騙子 B: 沒零的,100! 

送餐員: 行,我找你 ......70!(送餐員掏出 70 給騙子 B)

騙子 A: 哎,等會兒等會兒,我這有零的,30 是吧,把那 100 給我吧!給,30!(騙子 A 拿走了 B 給送餐員的 100 元,又給了送餐員 30 元) 

送餐員: 30 元正好,再見 !該類漏洞也是如此,在看起來正常的邏輯下,總藏著這樣那樣的陷阱。

1.天上掉下的餡餅:Gift_1_ETH

合約關鍵代碼如下:

三個關鍵函數功能如下:

SetPass(): 在轉賬大于 1ether 并且 passHasBeenSet 為 false (默認值就是 false), 就可以設置密碼 hashPass。

GetGift(): 在輸入的密碼加密后與 hashPass 相等的情況下,就可以取走合約里所有的以太幣。

PassHasBeenSet():如果輸入的 hash 與 hashPass 相等,則 passHasBeenSet 將會被設置成 true

如果我們想取走合約里所有的以太幣,只需要按照如下流程進行操作:

推特用戶 Alexey Pertsev 還為此寫了一個獲取禮物的 EXP。

但實際場景中,受害者轉入一個以太幣后并沒有獲取到整個智能合約的余額,這是為什么呢?

這是因為在合約創立之后,任何人都可以對合約進行操作,包括合約的創建者:

合約創建者在合約 被攻擊 前,設置一個只有創建者知道的密碼并將 passHasBeenSet 置為 True,將只有合約創建者可以取出智能合約中的以太幣。與之類似的智能合約還有 NEW_YEARS_GIFT:

2.合約永遠比你有錢

合約關鍵代碼如下:

對于 multiplicate() 而言,只要你轉賬的金額大于賬戶余額,就可以把 賬戶余額 和 你本次轉賬的金額 都轉給一個可控的地址。在這里我們需要知道:在調用 multiplicate() 時,賬戶余額 = 之前的賬戶余額 本次轉賬的金額。所以 msg.value >= this.balance 只有在原余額為 0,轉賬數量為 0 的時候才會成立。也就意味著,賬戶余額永遠不會比轉賬金額小。

3.誰是合約主人:TestBank

關鍵代碼如下:

根據關鍵代碼的內容,如果我們可以通過 useEmergencyCode() 中的判斷,那就可以將 owner 設置為我們的地址,然后通過 withdraw() 函數就可以取出合約中的以太幣。

如果你也有了上述的分析,那么就需要學習一下 Solidity 中繼承的相關知識:Solidity 的繼承原理是代碼拷貝,因此換句話說,繼承的寫法總是能夠寫成一個單獨的合約。

 情況五:子類父類有相同名字的變量。 父類 A 的 test1 操縱父類中的 variable,子類 B 中的 test2 操縱子類中的 variable,父類中的 test2 因為沒被調用所以不存在。 解釋:對 EVM 來說,每個 storage variable 都會有一個唯一標識的 slot id。在下面的例子說,雖然都叫做 variable,但是從 bytecode 角度來看,他們是由不同的 slot id 來確定的,因此也和變量叫什么沒有關系。

根據樣例中的代碼,我們將合約的核心代碼修改如下:

變量 owner1 是父類 Owner 中的 owner 變量,而 owner2 是子類 TestBank 中的變量。useEmergencyCode() 函數只會修改 owner2,而非 owner1,自然無法調用 withdraw()。 由于調用 useEmergencyCode() 時需要轉作者設置的 evalue wei 的以太幣,所以只會造成以太幣白白丟失。

合約 中的 代碼 設置 需要
分享到:

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


專題報道

主站蜘蛛池模板: 压片机_高速_单冲_双层_花篮式_多功能旋转压片机-上海天九压片机厂家 | 煤棒机_增碳剂颗粒机_活性炭颗粒机_木炭粉成型机-巩义市老城振华机械厂 | 筒瓦厂家-仿古瓦-寺庙-古建琉璃瓦-宜兴市古典园林建筑陶瓷厂有限公司 | 冷凝水循环试验箱-冷凝水试验箱-可编程高低温试验箱厂家-上海巨为(www.juweigroup.com) | 铸钢件厂家-铸钢齿轮-减速机厂家-淄博凯振机械有限公司 | 泰国专线_泰国物流专线_广州到泰国物流公司-泰廊曼国际 | 焊管生产线_焊管机组_轧辊模具_焊管设备_焊管设备厂家_石家庄翔昱机械 | 活性氧化铝|无烟煤滤料|活性氧化铝厂家|锰砂滤料厂家-河南新泰净水材料有限公司 | 深圳希玛林顺潮眼科医院(官网)│深圳眼科医院│医保定点│香港希玛林顺潮眼科中心连锁品牌 | 机械立体车库租赁_立体停车设备出租_智能停车场厂家_春华起重 | 钢木实验台-全钢实验台-化验室通风柜-实验室装修厂家-杭州博扬实验设备 | 100_150_200_250_300_350_400公斤压力空气压缩机-舰艇航天配套厂家 | 东莞螺丝|东莞螺丝厂|东莞不锈钢螺丝|东莞组合螺丝|东莞精密螺丝厂家-东莞利浩五金专业紧固件厂家 | 高温链条油|高温润滑脂|轴承润滑脂|机器人保养用油|干膜润滑剂-东莞卓越化学 | 旋转气浴恒温振荡器-往复式水浴恒温振荡器-金怡百科 | 膏剂灌装旋盖机-眼药水灌装生产线-西林瓶粉剂分装机-南通博琅机械科技 | hdpe土工膜-防渗膜-复合土工膜-长丝土工布价格-厂家直销「恒阳新材料」-山东恒阳新材料有限公司 ETFE膜结构_PTFE膜结构_空间钢结构_膜结构_张拉膜_浙江萬豪空间结构集团有限公司 | 锂电池生产厂家-电动自行车航模无人机锂电池定制-世豹新能源 | 华东师范大学在职研究生招生网_在职研究生招生联展网 | 压力控制器,差压控制器,温度控制器,防爆压力控制器,防爆温度控制器,防爆差压控制器-常州天利智能控制股份有限公司 | 北京中创汇安科贸有限公司| 丽陂特官网_手机信号屏蔽器_Wifi信号干扰器厂家_学校考场工厂会议室屏蔽仪 | SOUNDWELL 编码器|电位器|旋转编码器|可调电位器|编码开关厂家-广东升威电子制品有限公司 | 乳化沥青设备_改性沥青设备_沥青加温罐_德州市昊通路桥工程有限公司 | 自动检重秤-动态称重机-重量分选秤-苏州金钻称重设备系统开发有限公司 | 钣金加工厂家-钣金加工-佛山钣金厂-月汇好 | 新能源汽车电机定转子合装机 - 电机维修设备 - 睿望达 | 水成膜泡沫灭火剂_氟蛋白泡沫液_河南新乡骏华消防科技厂家 | 会议会展活动拍摄_年会庆典演出跟拍_摄影摄像直播-艾木传媒 | 报警器_家用防盗报警器_烟雾报警器_燃气报警器_防盗报警系统厂家-深圳市刻锐智能科技有限公司 | 除尘器布袋骨架,除尘器滤袋,除尘器骨架,电磁脉冲阀膜片,卸灰阀,螺旋输送机-泊头市天润环保机械设备有限公司 | 臻知网大型互动问答社区-你的问题将在这里得到解答!-无锡据风网络科技有限公司 | 优考试_免费在线考试系统_培训考试系统_题库系统_组卷答题系统_匡优考试 | 工业机械三维动画制作 环保设备原理三维演示动画 自动化装配产线三维动画制作公司-南京燃动数字 聚合氯化铝_喷雾聚氯化铝_聚合氯化铝铁厂家_郑州亿升化工有限公司 | 电采暖锅炉_超低温空气源热泵_空气源热水器-鑫鲁禹电锅炉空气能热泵厂家 | 企典软件一站式企业管理平台,可私有、本地化部署!在线CRM客户关系管理系统|移动办公OA管理系统|HR人事管理系统|人力 | 德国UST优斯特氢气检漏仪-德国舒赐乙烷检测仪-北京泽钏 | Copeland/谷轮压缩机,谷轮半封闭压缩机,谷轮涡旋压缩机,型号规格,技术参数,尺寸图片,价格经销商 CTP磁天平|小电容测量仪|阴阳极极化_双液系沸点测定仪|dsj电渗实验装置-南京桑力电子设备厂 | 次氯酸钠厂家,涉水级次氯酸钠,三氯化铁生产厂家-淄博吉灿化工 | 万家财经_财经新闻_在线财经资讯网 | 无压烧结银_有压烧结银_导电银胶_导电油墨_导电胶-善仁(浙江)新材料 |