Cover image
Blog iconBox ⛩️
Jun 25

简单CTF:BetToken,链上随机数

起源今天早上有个群友发了这题目,简单的提供了一下思路。晚上来重新看了一下这题目,虽然是简单题目,考察的知识点也不多,主要考验是否能串联思路的能力。 关键代码如下。对未来准备踏入web3的朋友可以尝试分析一下这段代码的可攻击性和出问题的点。 补充信息:分析1,这段代码最核心的问题其中 rand 值的生成,这种纯链上随机数生成是100%会被攻击的,无论用什么方式,都无法解决这个问题,只不过有不同的复杂度和攻击收益权衡利弊。 2,可以看到代码中 // not contract 部分,这里是一种有漏洞的EOA检测方式。合约地址中的特点是extcodesize不为0,但是在合约部署时,这个值会返回0。正确的检测方式应该为 tx.origin == msg.sender 3,lasttime在执行过一次bet后,会被设定为当前时间,也就是说,一个区块中只能执行一次这个调用。因为这个现在的存在,让这道题有了一个小小的难点。 4,在计算rand的时候,需要知道nonce值,但是合约中nonce为private无法直接读取,这里其实是考察storageLayout的小知识点。解题思路第一问首先是第...

Box ⛩️

Written by
Box ⛩️

专注ETH链上工具开发与MEV。

Subscribe

2025 Paragraph Technologies Inc

PopularTrendingPrivacyTermsHome
Search...Ctrl+K

Box ⛩️

Subscribe