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