Sui MoveCTF 攻防

官网

Git: https://github.com/shanxuanchen/MoveCTF

题目1

第一题是check in题,需要用户准备好环境即可。触发合约,然后提交对应的签名即可。

题目2

这道题其实稍微有点难~~~~

我们先看一下get flag的条件:

  1. 要拿到Treasury Box

  2. 随机数要刚好达到0

我们知道其实随机数达到0的概率非常小,其实此时几乎可以确定此题的最大考点:

**随机数攻击**

get flag
get flag

1. 拿到Treasure Box

从slay_boar_king的方法里可以看到,当满足d100 == 0时(随机数的结果为0),sender就可以拿到box资源。当然,我们前提是要能打赢怪物boar。打赢怪物boar纯属就是一个简单的循环逻辑了,只要攻击力和防御力有一定就可以了。

所以,我们需要循环100多次slay_boar。然后积累一定的经验值,然后升级即可。

2. 随机数要刚好达到0

本题的两个随机数重要变量是:

  1. tx hash

  2. ids_created(这个是object new出来之后的自增ID)

我们采取的攻击方法很简单:

**固定tx Hash,然后模拟随机数的生成,然后遍历ids_created**。

next zero rand u64 range
next zero rand u64 range

最难的部分是自己手动组装seed,这里直接放答案:

题目3

这套我是AC了的。这道题有很大的漏洞,因为create_lend是一个public方法。通过创建一个0债务的新的资源,然后提交flag即可。

题目4

这道题其实就是考move的循环题,基本功的题目,两次循环结果就能出来了。

参考链接:

Subscribe to shaneson.eth
Receive the latest updates directly to your inbox.
Mint this entry as an NFT to add it to your collection.
Verification
This entry has been permanently stored onchain and signed by its creator.