Sui MoveCTF 攻防
官网
Git: https://github.com/shanxuanchen/MoveCTF
题目1
第一题是check in题,需要用户准备好环境即可。触发合约,然后提交对应的签名即可。
题目2
这道题其实稍微有点难~~~~
我们先看一下get flag的条件:
-
要拿到Treasury Box
-
随机数要刚好达到0
我们知道其实随机数达到0的概率非常小,其实此时几乎可以确定此题的最大考点:
**随机数攻击**
1. 拿到Treasure Box
从slay_boar_king的方法里可以看到,当满足d100 == 0时(随机数的结果为0),sender就可以拿到box资源。当然,我们前提是要能打赢怪物boar。打赢怪物boar纯属就是一个简单的循环逻辑了,只要攻击力和防御力有一定就可以了。
所以,我们需要循环100多次slay_boar。然后积累一定的经验值,然后升级即可。
2. 随机数要刚好达到0
本题的两个随机数重要变量是:
-
tx hash
-
ids_created(这个是object new出来之后的自增ID)
我们采取的攻击方法很简单:
**固定tx Hash,然后模拟随机数的生成,然后遍历ids_created**。
最难的部分是自己手动组装seed,这里直接放答案:
题目3
这套我是AC了的。这道题有很大的漏洞,因为create_lend是一个public方法。通过创建一个0债务的新的资源,然后提交flag即可。
题目4
这道题其实就是考move的循环题,基本功的题目,两次循环结果就能出来了。
参考链接:
https://mp.weixin.qq.com/s/-OFe_E_XTzdRgBB0ilu9aw
来源:bress