我通过传递在Start函数中传递的相同字符串来调用https://etherscan.io/address/0x0c63bf5f9c1b31bd98eb2995e8ab5ba33fe31d22合同的Try函数。我检查了hex。有人能帮助我为什么尝试函数调用https://etherscan.io/tx/0x096a060d64d833c55fd83b2ea4ec209578dc3316d863de3a3de63692e8476628未启动余额转移。有没有什么东西,我错过了
Quiz是一个诈骗合同
作者通常使用一组相似的名称([a-z]{2}_quiz
),但其中大多数包含相同的代码,并充当蜜罐骗局。
详细阅读:
- https://medium.com/coinmonks/do-not-be-fooled-by-crypto-quiz-games-f38f72a53c78
- https://ethereum.stackexchange.com/questions/62815/trying-to-figure-out-this-2-eth-smart-contract-quiz
骗局如何运作:
攻击者使用来自另一个合约的内部调用(该合约没有出现在蜜罐"事务"中)。或者"内部调用">调用New()
函数并将哈希值设置为一些垃圾值。
这个垃圾值不是在Start()
函数中传递的字符串的哈希值,很可能甚至不是任何字符串的哈希值。
然后公开调用Start()
函数(参见事务),这样看起来他们正在设置哈希,但由于这个条件,它没有设置:
if(responseHash==0x0){ // it's not 0x0 anymore
responseHash = keccak256(abi.encode(_response));
question = _question;
}