Geth以太币短地址进攻剖析

做为一个区块链技术的新手,一直想复现短地址进攻。可是在网络上参照了许多大佬们的文章内容,发觉许多文章内容都仅仅简易详细介绍了这类进攻的基本原理,可是实际的复现,简易带过,像我这类菜...

做为一个区块链技术的新手,一直想复现短地址进攻。可是在网络上参照了许多大佬们的文章内容,发觉许多文章内容都仅仅简易详细介绍了这类进攻的基本原理,可是实际的复现,简易带过,像我这类菜狗要想跟随复现還是难以的。因此 从开始科学研究到复现,确实踩了许多坑,今日就将我复现期内的一些关键点写出去,共享给大伙儿。

自然环境提前准备

我还在Centos上复现的:

必须安装:nodejs、 git、wget、,vim、gcc-c 、ntp、 epel、cmake3.x: (智能合约必须cmake3.x版本号才能够编译程序)、golang、go-ethereum、keythereum、web3.js、ethereumjs-tx

必须安装的物品有点儿多,为确保文章内容并不是很多篇数都是在讲安装(尽管我许多時间都消耗在了安装上),我不写详尽的安装流程了,强烈推荐两个我安装时参照的文章内容:

沒有牵涉到的,那麼基础应用npm就可以安装。

安装时假如碰到出错:能够试着应用淘宝网源安装、或是是特定版本号安装。说多了全是泪,尽管也没有彻底把每个手机软件都装好,可是凑合能够进行复现。

系统漏洞复现

自然环境安装好以后,就可以逐渐系统漏洞的复现了。

1. 先撰写我们自己的以太币独享链创世区块链的json文档,內容以下,在其中chainId的值能够任意,可是应当超过0,超过0表明便是独享链:

在该途径下复位一下(“geth init genesis.json”):

复位以后,就可以打开大家的独享链的,3d贴图中框中是独享链建立以后运作期内的文档储存途径,包含区块链信息,信息等。假如第一次复现不成功,再度进到控制面板时发觉没法挖币,或是挖不上矿,能够考虑到简易暴力行为的方法,把这种文档删除,再次复位环境变量。

2. 应用指令打开终端设备:

由于立即应用“geth console”打开终端设备得话,其日志这些一些信息会持续的更新,比较严重危害大家键入指令,因此 大家应用“geth –networkid 1000 console 2>>geth.log”将日志信息輸出到本途径下geth.log文件中, –network主要参数特定大家所要联接的独享链的ID,即大家以前在genesis.json文档中的“chainId”

3. 刚建立独享链时,是没有一个账户的,大家应用“personal.newAccount(“123′)”指令生成新的账户。数次生成账户,直至生成大家必须的账户详细地址(详细地址结尾有两个0,现阶段猜想是务必如果2的倍数,由于我应用一个0的开展检测,沒有取得成功,可是3个或之上的详细地址确实是很难生成了,全运气好,因此 就没检测)特别注意的是,我一开始的情况下登陆密码应用的是“1”而不是“123”,可是生成了接近200个账户也没有末尾是2个0的账户(很数次试着,也消耗了许多時间),在网上有的人说理论上生成256个账户,便会有一个末尾为“00”的。我试着了应用登陆密码“123”后,很数次全是在10个账户之内或是稍多一些就生成了“00”末尾的账户,不清楚到底是怎么回事。终究是风水玄学。

personal.newAccount("123")

4. 大家必须把详细地址梳理一下,由于私链默认设置的挖币账户是第一个生成的账户,大家都不多此一举去改动它,就用它来布署合同,因此 大家必须保存的便是第一个账户详细地址和生成的“吉祥号码”详细地址:

5. 下面便是布署合同了,可是布署合同以前必须挖币,由于如今每一个账户都没钱,而布署合同是必须掏钱的。因此 应用“miner.start()”逐渐挖币,为保证挖币一切正常开展,应用“eth.blockNumber”查询区块链的总数是不是变多,还可以应用“eth.getBalance(addr1)”来查询账户中是不是有以太坊,企业wei。“miner.stop()”终止挖币。

6. 撰写智能合约,这儿效仿了某巨头的编码,我可以取得成功复现这一系统漏洞,巨头的文章内容真是便是指路人(可是我复现的全部全过程也是应用了巨头的构思,由于作用简易,立即转帐就可以了。实际上自身撰写也就那般,一个转帐涵数一个查看涵数,终究是在cmd互动页面运作,能简易就简易,不必这些储蓄啦哪些的骚操作了。

7. 将编码在Remix中编译程序进行,在“Details”里将WEB三维EPLOY拷贝:

  • 发表于 2021-04-03 11:35
  • 阅读 ( 352 )
  • 分类:互联网

0 条评论

请先 登录 后评论
王云斌
王云斌

670 篇文章

你可能感兴趣的文章

相关问题