MoveCTF 2024是由Move生态最早期贡献者MoveBit联合ChainFlag 、MoveFuns、OpenBuild主办,Sui基金会独家赞助和特别支持,将作为2024 Move开发者大会的线上安全竞赛,为Move生态开发者们提供沉浸式的Move叙事体验!
本次安全竞赛将于北京时间2024年1月12–14日开启!活动将在线上举行,竞赛时间持续48小时。更多详情请阅读前文了解!
本文将向您详细地介绍MoveCTF 2024的参与流程,手把手全方位教学!
打开MOVECTF网站链接MoveCTF 2024 (movebit.xyz),然后点击右上角的注册按钮。
然后根据下图的需求完成注册,请使用您真实的邮箱进行注册,注册账号成功之后会自动登录。
由于本次比赛允许组队,所以参赛者可以选择加入别人的团队或者自己创建团队(如下图所示)
如果不想注册之后第一时间加入团队,也可以之后在网站右上角点击团队按钮继续操作
(1)选择加入团队,需要我们输入正确的团队名称以及团队密码,并且每个队伍最多两名玩家
(2)选择创建团队,设置团队名称以及团队密码,并且分享给你的队友,这样他们就可以加入你的团队
加入或者创建团队之后,可以看到团队成员以及得分
下图的四个按钮分别可以编辑团队信息,选择队长,获得团队分享链接以及删除队伍
参赛者可以使用许多开发工具完成挑战,例如 SUI 控制台/Explorer、git 和 editor 等。
我们可以通过点击 checkin 这道题目来开始挑战
这里简单演示如何通过命令行获取测试币,有关以下操作的详细解释可以去:References Overview | Sui Documentation链接下的 sui API 和 sui CLI 板块查看
(1)切换当前环境到开发环境
sui client switch - env devnet
(2)查看当前账户
sui client active-address
(3)我们通过 curl 命令向 devnet 水龙头发送 rpc 请求来获取测试代币,在←YOUR_ACCOUNT_ADDRESS →填入你的账户地址,然后命令行中调用此命令获取测试代币,这个命令 sui 官方文档中也有提及:Get SUI Tokens | Sui Documentation
curl - location - request POST "https://faucet.devnet.sui.io/gas" - header "Content-Type:application/json" - data-raw "{\"FixedAmountRequest\":{\"recipient\":\"←YOUR_ACCOUNT_ADDRESS →\"}}"
调用成功会返回一串交易信息(如下图所示)
然后点击链接进行下一步
点击 Deploy 之后,下方就会出现部署合约交易的哈希以及packageId(如下图所示)
如果参赛者想查看交易信息,可以通过 curl 命令直接调用 sui API 的 sui_getTransactionBlock 方法,传入参数为交易的哈希(如下图)
关于 sui API 更具体的介绍可以进入下面的链接查看:
Sui API Reference | Sui Documentation | Sui Documentation
或者参赛者可以直接在 sui explore 选择 devnet 网络通过交易哈希查看详细信息
在 Description 中,我们都给出了题目合约的 github 链接,参赛者可以打开链接查看合约信息
在 checkIn 这道题目中,直接调用 get_flag() 函数即可,可以使用 sui cli 来和部署的合约进行交互,更多命令可以在 sui 官方文档里查看,或者使用 sui client — help 在控制台查看。
在控制台运行以下命令:
sui client call — function get_flag — package <上一步生成的packageId> — module checkin — gas-budget 10000000
成功调用合约的 get_flag() 函数触发 Flag 事件,然后提交本次操作的交易哈希以获得 flag
后续的题目可以继续参照上面的步骤进行解题
欢迎加入本次安全竞赛官方社群(QQ & TG),如您遇到任何问题,及时联系我们。
Sui是基于第一原理重新设计和构建而成的L1公有链,旨在为创作者和开发者提供能够承载Web3中下一个十亿用户的开发平台。Sui上的应用基于Move智能合约语言,并具有水平可扩展性,让开发者能够快速且低成本支持广泛的应用开发。获取更多信息:https://linktr.ee/sui_apac