尝试爆破NFT奖励时间限制(一)

2022-02-22 18:16:11 浏览数 (1)

本文作者:auok007[1]

开始

发几天文章,网站上突然有人找我,问题如下:你好,我有几个账户有领取某个 nft 的权限,但是网站活动结束了,我可以求助你写一个 claim 函数直接从智能合约领取吗?[2]本着助人为乐,不让人失望的原则,做了一些尝试,做下记录。

这个朋友是看了我在没有 abi 文件的情况下调用智能合约方法,web3py 实现[3]这篇的情况下,觉得通过调用他的智能合约,就可以领取活动奖励。

情况分析

根据他提供的网页,了解情况,网页差异:Shadowy Super Coder Pack by Galaxy Space | Project Galaxy[4]已经结束的:

没有结束的:

通过对网站的观察,发现网站是 vue 写的,

观察网站流程,用正常的操作一次,发现调用的函数:

点日志就可以看到调用的函数。

另外还观察了 ethscanEthereum Transaction Hash (Txhash) Details | Etherscan[5]

参数挺多,不是那么好搞。

确定方案

初步确定从网页入手,网页连接显示,活动结束,没有按钮点,没有按钮不说明,不能调用函数发起请求嘛。网站的的 vue sourcemap 还是完整,没有这个要麻烦很多。确定要入手的函数,点击浏览器 console 信息,跳转源码:

确定,这个网站就是靠调用这个函数领奖励的。所以想办法,在那个活动结束的网页,能调用这个函数就可以(如果他没做防护的话,找我这个朋友给我说,别人一直都在领到)

大家都知道,vue 的网站,网页里的函数,是不能直接调用的。虽然有办法使用,document.querySelector('button')获取按钮,再通过按钮发起点击事件,但是这个网页,claim 这个按钮都没有。使用得用其他方式 大家都知道,写 js,js 函数的 this,进入了类的函数,你就能使用 this,在网页发起有 this 调用的时候,你断住,这个时候 console 是可以使用 this 的,有了 this,你就可以使用一切的 vue 种的函数,资源,所以这就是关键。再次观察网页。CampaignTemplate.vue 网页就是重点。确定两个断点:

回到刚才那个结束的页面,断点打好,重新刷新,见证奇迹吧!输入 this.claimDrop()

16440500791.png

效果怎么样

浏览器点继续,领取 claim 就开始了。很遗憾没有成功。

16440503001.png

流程开始了,但是没有成功,发起了一个这样的 Gql 请求,截图是回复内容。

他的网页还是有防护的,不是不能点按钮发请求就可以,服务器对请求是有验证的。

关于网页爆破的内容,到此为止。后面还有一系列的办法,涉及到 claim 函数爆破下一篇[6]再写。

参考资料

[1]

auok007: https://learnblockchain.cn/people/6025

[2]

你好,我有几个账户有领取某个nft的权限,但是网站活动结束了,我可以求助你写一个claim函数直接从智能合约领取吗?: https://learnblockchain.cn/question/3051

[3]

在没有abi文件的情况下调用智能合约方法,web3py实现: https://learnblockchain.cn/article/3506

[4]

Shadowy Super Coder Pack by Galaxy Space | Project Galaxy: https://galaxy.eco/galaxy/campaign/GCxMoUUmZu

[5]

Ethereum Transaction Hash (Txhash) Details | Etherscan: https://etherscan.io/tx/0x38ac1fa8e7a0d1ef42fe14423b977343acdf1afd1374affc4f95b84b6996ec45

[6]

下一篇: https://learnblockchain.cn/article/3518

0 人点赞