Fomo3D代码分析以及漏洞攻击演示

Fomo3D过去的一周内赚足了噱头,一场光明正大的“庞氏”游戏疯狂吸金,在链得得此前的报道中提到“Fomo3D的开发者,是对生态有深刻理解的现实主义者。Fomo3D鼓励黑客去黑掉智能合约,来证明以太坊有多脆弱。”Fomo3D核心成员Justo直指v神:“我已经发现了可以毁灭以太坊虚拟机(EVM)的‘核武器漏洞’。”详情请见《【链得得独家】庞氏游戏”Fomo3D的真实意图:黑掉脆弱以太坊》。

开发者虽然狂妄,但是却被看作是足够聪明的人。不过,以太坊基金会的核心成员peter szilagyi在twitter上表示,Fomo3D的空投机制要被智能合约自身存在的漏洞戏弄了。

来源:peter szilagyi的twitter

链得得注:Fomo3D玩家购买的key金额高于0.1ETH时,有机会获得空投。例如,文字显示:“下次购买0.1ETH时有5%的机会获得一个ETH !”空投的ETH直接打入你的投注地址。接收空投的机会从0%开始,每一笔超过0.1ETH总额的Key订单会增加0.1%的几率。。

但是由于智能合约本身的漏洞,羊毛党可以准确捕捉到这个“随机数”,从而在投入很小的前提下获得将近100%的空投。PeckShield研发总监吴家志告诉链得得作者,这是一个成功薅羊毛的案例。世界上是做不到完全随机的,通常是利用时间当作种子计算出一个相对随机数,但是在区块链中可以预测到这个“相对随机数”。

吴家志说:“每一个智能合约的运作必然发生在某一个块中,块的时间可以运算出,加上FoMo3D计算种子里使用的钱包地址,可以被伪造成可预测的合约地址,所以可以把小概率事件变得很大。”

Fomo3D在合约的最初设定中把“投注者的钱包地址”放到监测名单,他们知道地址可以生成很多,但是攻击者不可能用不同的地址去测试、押注空投的奖池,这是一个成本非常大的事情。而这个事件中最核心就是Fomo3D在判断钱包地址中存在的差错,这也是Peter关注到的地方。

Peter作为跟随V神多年的以太坊核心成员,他十分了解以太坊的技术架构。攻击者可以通过把钱包地址当作随机计算的部分来避开Fomo3D的判断。吴家志告诉链得得作者,设计Fomo3D的人没有想到,在其合约的airdrop函数中,产生随机数的种子是通过当前块信息(例如,第1416行的timestamp、第1417行的difficulty等)和msg.sender一起计算出来的(随机变得不随机),攻击者可以在攻击airdrop函数之前在合约中预先计算出结果(必然会开奖)。

如果能够得到一个针对当前airDropTracker_的可用种子,攻击者总是可以使airdrop函数返回true(第1424行),从而在正确时间点实施“薅羊毛”行动。(合约地址可以不停尝试新的合约地址,试到可以时便可进行精准投注,这样就会确保一定能得到空投,其随机性就遭到抑制,所以就会变得很像挖矿)。如下图:

Fomo 3D的airdrop函数

PeckShield研究人员观察到,攻击者通过利用Fomo3D的空投机制在两天时间内薅了近60个ETH。这种获利能力,可以比拟1000台以上GPU显卡矿机的挖矿能力。最关键的是这个行为没法制止,如果有好的编程能力,这是一个比挖矿还容易的“赚钱”方式。

事实上,在Fomo3D推出之后,市面上顿时出现大量的以FOMO Short、FOMO Lightning和RatScam等为代表复制版Fomo3D。他们也仅是对Fomo3D的合约进行了复制,所以都会存在这样的问题。

攻击者发起的事务

但这种漏洞既然存在,为什么无法停下来?PeckShield吴家志告诉链得得作者,基于智能合约的游戏一旦运转起来就无法更改,除非有一天没人继续玩了,游戏会按照合约设定停下来。不过,Fomo3D游戏现在炙手火热,很多玩家投注不少在其中,且奖励池金额不断刷新,在巨额奖励诱惑下,每个人都在争抢做最后一名投注者,所以暂时还看不到停下来的可能。

原文地址:https://www.cnblogs.com/xiaocongcong888/p/9460877.html

时间: 2024-08-29 02:54:39

Fomo3D代码分析以及漏洞攻击演示的相关文章

ProFTPd Local pr_ctrls_connect Vulnerability - ftpdctl 漏洞及攻击代码分析

攻击代码网址:http://www.exploit-db.com/exploits/394/ 1.执行环境: 1.ProFTPD 1.3.0/1.3.0a 2.编译ProFTPD时.--enable-ctrls选项必须打开 ./configure --enable-ctrls 2.执行參数: [email protected]:~# gcc 394.c -o 394 [email protected]:~# ./394 –s <option> [-p <option_path>]

恶意代码分析实战

恶意代码分析实战(最权威的恶意代码分析指南,理论实践分析并重,业内人手一册的宝典) [美]Michael Sikorski(迈克尔.斯科尔斯基), Andrew Honig(安德鲁.哈尼克)著   <恶意代码分析实战>是一本内容全面的恶意代码分析技术指南,其内容兼顾理论,重在实践,从不同方面为读者讲解恶意代码分析的实用技术方法. <恶意代码分析实战>分为21章,覆盖恶意代码行为.恶意代码静态分析方法.恶意代码动态分析方法.恶意代码对抗与反对抗方法等,并包含了 shellcode分析

完整全面的Java资源库(包括构建、操作、代码分析、编译器、数据库、社区等等)

构建 这里搜集了用来构建应用程序的工具. Apache Maven:Maven使用声明进行构建并进行依赖管理,偏向于使用约定而不是配置进行构建.Maven优于Apache Ant.后者采用了一种过程化的方式进行配置,所以维护起来相当困难.Gradle:Gradle采用增量构建.Gradle通过Groovy编程而不是传统的XML声明进行配置.Gradle可以很好地配合Maven进行依赖管理,并且把Ant脚本当作头等公民.字节码操作 编程操作Java字节码的函数库. ASM:通用底层字节码操作及分析

(转载)ASP网站如何防止注入漏洞攻击

SQL注入是从正常的WWW端口访问,而且表面看起来跟一般的Web页面访问没什么区别,所以目前市面的防火墙都不会对SQL注入发出警报,如 果管理员没查看IIS日志的习惯,可能被入侵很长时间都不会发觉.但是,SQL注入的手法相当灵活,在注入的时候会碰到很多意外的情况.能不能根据具体情 况进行分析,构造巧妙的SQL语句,从而成功获取想要的数据. 据统计,网站用ASP+Access或SQLServer的占70%以 上,PHP+MySQ占L20%,其他的不足10%.在本文,以SQL-SERVER+ASP例

基于Armitage的MSF自动化漏洞攻击实践

基于Armitage的MSF自动化漏洞攻击实践 目录 实践环境 预备知识 Armitage基础配置 ms08_067_netapi:自动化漏洞溢出攻击实践 ms14_064_ole_code_execution:IE漏洞自动化攻击实践 ms17_010_eternalblue:"永恒之蓝"自动化攻击实践 office_ms17_11882:Office漏洞自动化攻击实践 John the Ripper_linux口令破解模块:Armitage下Auxiliary辅助模块应用 实践中遇到

漏洞预警 | ECShop全系列版本远程代码执行高危漏洞

2018年9月1日,阿里云态势感知发布预警,近日利用ECShop全系列版本的远程代码执行漏洞进行批量化攻击量呈上升趋势.该漏洞利用简单且危害较大,黑客可通过WEB攻击直接获得服务器权限. 漏洞原理 该漏洞产生的根本原因在于ECShop系统的user.php文件中,display函数的模板变量可控,导致注入,配合注入可达到远程代码执行的效果.使得攻击者无需登录等操作,直接可以获得服务器的权限. 首先从user.php文件入手,代码中可以看到,系统读取HTTP_REFERER传递过来的 内容赋值给$

从零学习安全测试,从XSS漏洞攻击和防御开始

WeTest 导读 本篇包含了XSS漏洞攻击及防御详细介绍,包括漏洞基础.XSS基础.编码基础.XSS Payload.XSS攻击防御. 第一部分:漏洞攻防基础知识   XSS属于漏洞攻防,我们要研究它就要了解这个领域的一些行话,这样才好沟通交流.同时我建立了一个简易的攻击模型用于XSS漏洞学习. 1. 漏洞术语 了解一些简单术语就好. VUL Vulnerability漏洞,指能对系统造成损坏或能借之攻击系统的Bug. POC Proof of Concept,漏洞证明:可以是可以证明漏洞存在

ThinkPHP v5 新漏洞攻击案例首曝光,阿里云已可告警并拦截

2018年12月10日,ThinkPHP v5系列发布安全更新,修复了一处可导致远程代码执行的严重漏洞.阿里云态势感知已捕获多起基于该漏洞的真实攻击,并对该漏洞原理以及漏洞利用方式进行分析.现在,对于云上未及时进行系统更新的用户,阿里云态势感知已提供攻击告警,WAF产品支持同步拦截,目前云上客户基本未受到影响. 此次漏洞由ThinkPHP v5框架代码问题引起,其覆盖面广,且可直接远程执行任何代码和命令.电子商务行业.金融服务行业.互联网游戏行业等网站使用该ThinkPHP框架比较多,需要格外关

20145326蔡馨熠《网络对抗》——恶意代码分析

20145326蔡馨熠<网络对抗>--恶意代码分析 1.实验后回答问题 (1)如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所以想监控下系统一天天的到底在干些什么.请设计下你想监控的操作有哪些,用什么方法来监控.. 需要监控什么? 系统中各种程序.文件的行为. 还需要注意是否会出现权限更改的行为. 注册表. 是否有可疑进程. 如果有网络连接的情况,需要注意这个过程中的IP地址与端口. 用什么来监控? 最先想到的肯定是使用wireshark抓包了,再进行进一步分析. Sysinternals