然后我们SINE安全这边给大家具体的大概的分析一下,大家到时候可以自己实现操作一下,这是一个攻击合约。这是构造函数初始化合约,所有者地址保存在一个存在漏洞合约的地址,就后面我会用。这个是就代码编写这块,大家解释清楚,开始攻击合约就这个 start开始攻击合约。这块是想合约中存入 eth从合约中取出存入的,eth是考所以会调用for。这两人是个for函数,最重要的也是在这里,就是如果说他那个那块调用过来,这里是个for函数的话,就可以从合约中取出etc,然后继续调用方法相当于递归。可以再看一下上面覆盖函数。
如果说这块判断了当前合约中存存入的一体数,大于要取出一帖数,那么就会向用户地址发送etc这里拷贝,向用户发送了BTC。注意这一步这一步,如果说存入存在这种重入漏洞,这一步永远不会执行。知道用户的BB就是合约中的BB取光,看一下攻击者思路。首先攻击者合约,保存了被攻击者合约地址之后,调用被攻击者合约的 this post给pass的,函数在合约中存入etC值,攻击者合约从被攻击者合约,经过条件判断,从中取出存入的et值。
由于合约地址、接收到只是未指定的其他有效函数,我们就会默认调用和语种做法,也就说是。我们可以看上面这一条,for all函数中,当外部账户或者其他合约调用,该合约是一个不存在的函数,是会被调用。就是说如果调用一个不存在函数,函数就毁掉了,就说攻击这个发a函数,那么攻击方案好就会调用这一块接下来开始执行攻击合约的for经过条件判断后,攻击合约继续进行区别操作。而攻击合约在那在被攻击合约中的余额并未减少,就会不断循环的给公积制转变。
那我们现在看一下,看一下它具体操作,流程贡献一下桌面。这那么是刚才的一个攻击合约,一个存在漏洞的合约,攻击合约,还有攻击考虑,现在运行现在我们用这个地址,用这个地址和 DD这个例子,前三个,第一种先不用请部署漏洞合约,执行这样成功。这我们将跟大家说一下,这个我们将攻击合约,就是存在漏洞的合约和这个攻击者合约,放在一款真实的链上,它是不可以放在一块。
这里我们只是在这个模拟的环境里,它是可以的,也为了给大家说明一下这个细节,暂时我们先部署一下,又不是成功传入,,刚才二位属于其实之前成功可以看到这个这个是74。没问题。