[{"data":1,"prerenderedAt":21},["ShallowReactive",2],{"blog-detail:movectf-2024-guide":3},{"category":4,"article":5},null,{"slug":6,"category":7,"categoryLabel":8,"subcategoryLabel":9,"authorName":10,"title":11,"excerpt":12,"contentHtml":13,"coverUrl":14,"seoTitle":11,"seoDescription":15,"seoImageUrl":14,"publishedAt":16,"updatedAt":17,"readTime":18,"cover":14,"hasCover":19,"coverAlt":20},"movectf-2024-guide","research","Research","Industry Research","MoveBit","MoveCTF 2024 Guide","Welcome to MoveCTF 2024, an online security competition set to be a part of the 2024 Move Developer Conference. Organized by MoveBit, one of the earliest contributors to the Move ecosystem, in partnership with ChainFlag, MoveFuns, and OpenBuild, and exclusively sponsored and supported by the Sui Foundation, this event offers an immersive narrative experience for Move ecosystem developers.","\u003Cp>\u003Cimg src=\"\u002Fmedia\u002Fmovebit\u002F2024\u002F01\u002F38537085ba7fd8263ae3ac282a322b56.png\" alt=\"movectf-website\" title=\"MoveCTF Homepage\">\u003C\u002Fp>\n\u003Cp>Welcome to MoveCTF 2024, an online security competition set to be a part of the 2024 Move Developer Conference. Organized by MoveBit, one of the earliest contributors to the Move ecosystem, in partnership with ChainFlag, MoveFuns, and OpenBuild, and exclusively sponsored and supported by the Sui Foundation, this event offers an immersive narrative experience for Move ecosystem developers.\u003C\u002Fp>\n\u003Cp>The competition kicks off from January 12th to 14th, 2024, and will last for a gripping 48 hours, held entirely online. This guide provides a comprehensive walkthrough of the MoveCTF 2024, ensuring a thorough understanding for participants. Get ready for an all-encompassing tutorial on joining and navigating through this exciting challenge!\u003C\u002Fp>\n\u003Ch2 id=\"1-Register-for-a-MoveCTF-account-and-log-in\">1. Register for a MoveCTF account and log in.\u003C\u002Fh2>\n\u003Cp>Open the MoveCTF website link \u003Ca target=\"_blank\" rel=\"noopener\" href=\"https:\u002F\u002Fmovectf2024.movebit.xyz\u002F\">MoveCTF 2024 (movebit.xyz)\u003C\u002Fa>, then click the registration button in the top right corner.\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"\u002Fmedia\u002Fmovebit\u002F2024\u002F01\u002F9fe98d8120e378f4fa733f02a44f93fa.png\" alt=\"movectf-website\" title=\"MoveCTF Homepage\">\u003C\u002Fp>\n\u003Cp>Then, complete the registration process according to the requirements in the following image. Please use your real email address for registration\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"\u002Fmedia\u002Fmovebit\u002F2024\u002F01\u002F80811903ca5ecd46dda89ff016d0f1ae.png\" alt=\"movectf-register\" title=\"MoveCTF Register\">\u003C\u002Fp>\n\u003Cp>After completing the registration, a verification email will be sent to your inbox. Click on the link in the email to complete the verification process. Then, you can use this account to log in.\u003C\u002Fp>\n\u003Ch2 id=\"2-Create-Join-a-team\">2. Create (Join) a team\u003C\u002Fh2>\n\u003Cp>As this competition allows team participation, participants can join an existing team or create their own (as shown in the following image).\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"\u002Fmedia\u002Fmovebit\u002F2024\u002F01\u002F1799cac22a4b8a4fdd2f16fcc80a3e79.png\" alt=\"movectf_team\" title=\"MoveCTF Team\">\u003C\u002Fp>\n\u003Cp>If you don’t want to join a team immediately after registration, you can also click the ‘Teams’ button in the top right corner of the website to proceed later.\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"\u002Fmedia\u002Fmovebit\u002F2024\u002F01\u002F0d4bfde51dc64a103f094d5b76ff8f26.png\" alt=\"movectf_edit-team\" title=\"MoveCTF Edit Team\">\u003C\u002Fp>\n\u003Cp>(1) To join a team, you need to enter the correct team name and team password. Each team can have a maximum of two players.\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"\u002Fmedia\u002Fmovebit\u002F2024\u002F01\u002F8cdfec53a1267b86ad756dd4fcda4ea9.png\" alt=\"movectf_join_team\" title=\"MoveCTF Join Team\">\u003C\u002Fp>\n\u003Cp>(2) To create a team, set the team name and team password. Share this information with your teammates so they can join your team.\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"\u002Fmedia\u002Fmovebit\u002F2024\u002F01\u002Fadd1cf941d78e6a695b6918e8a568dfb.png\" alt=\"movectf_create_team\" title=\"MoveCTF Create Team\">\u003C\u002Fp>\n\u003Cp>After joining or creating a team, you can see the team members and their scores\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"\u002Fmedia\u002Fmovebit\u002F2024\u002F01\u002Fc6a74d4c195b29229f8b15193b9d338b.png\" alt=\"movectf_check_team\" title=\"MoveCTF Check Team\">\u003C\u002Fp>\n\u003Cp>The four buttons in the following image can be used to edit team information, select a team leader, obtain a team-sharing link, and delete the team.\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"\u002Fmedia\u002Fmovebit\u002F2024\u002F01\u002F7a7d861bcdd8349bcdb8ae091f6698eb.png\" alt=\"movectf_team_buttons\" title=\"MoveCTF Team Buttons\">\u003C\u002Fp>\n\u003Cp>Note that once you have earned points, you cannot disband the team on your own. If you need to disband the team, please contact the staff.\u003C\u002Fp>\n\u003Ch2 id=\"3-Click-on-the-‘Challenges’-button-to-enter-the-challenges-page\">3. Click on the ‘Challenges’ button to enter the challenges page\u003C\u002Fh2>\n\u003Cp>\u003Cimg src=\"\u002Fmedia\u002Fmovebit\u002F2024\u002F01\u002F23b6df6157bde2356a9f88c14a1cf973.png\" alt=\"movectf_challenges\" title=\"MoveCTF Challenges\">\u003C\u002Fp>\n\u003Ch2 id=\"4-Start-solving-the-challenges\">4. Start solving the challenges.\u003C\u002Fh2>\n\u003Cp>Participants can use various development tools to complete challenges, such as SUI Console\u002FExplorer, git, editors, etc. You can click on the ‘checkin’ to start the challenge.\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"\u002Fmedia\u002Fmovebit\u002F2024\u002F01\u002F10de8f3b3bf11013551feb12019c42ac.png\" alt=\"movectf_checkin\" title=\"MoveCTF Checkin\">\u003C\u002Fp>\n\u003Ch2 id=\"5-Read-the-challenge-introduction-switch-to-the-network-environment-participants-invoke-the-curl-command-to-obtain-test-tokens-for-their-accounts-then-click-on-the-link-below-to-open-a-new-session-window-for-more-detailed-information-about-the-question\">5. Read the challenge introduction, switch to the network environment, participants invoke the curl command to obtain test tokens for their accounts, then click on the link below to open a new session window for more detailed information about the question.\u003C\u002Fh2>\n\u003Cp>Here is a brief demonstration of how to obtain test coins through the command line. For detailed explanations of the following operations, you can refer to the \u003Ca target=\"_blank\" rel=\"noopener\" href=\"https:\u002F\u002Fdocs.sui.io\u002Freferences\">References Overview | Sui Documentation\u003C\u002Fa> section in the Sui Documentation, specifically under the ‘sui API’ and ‘sui CLI’ sections.\u003C\u002Fp>\n\u003Cp>(1) Switch the current environment to the devnet environment.\u003C\u002Fp>\n\u003Cpre class=\"line-numbers language-none\">\u003Ccode class=\"language-none\">\nsui client switch --env devnet\n\u003C\u002Fcode>\u003C\u002Fpre>\n\n\u003Cp>(2) View the current account\u003C\u002Fp>\n\u003Cpre class=\"line-numbers language-none\">\u003Ccode class=\"language-none\">\nsui client active-address\n\u003C\u002Fcode>\u003C\u002Fpre>\n\n\n\u003Cp>(3) We use the curl command to send an RPC request to the devnet faucet to obtain test tokens. Replace ‘&lt;–YOUR_ACCOUNT_ADDRESS–&gt;’ with your account address. Then, execute this command in the command line to get test tokens.\u003C\u002Fp>\n\u003Cp>This command is also mentioned in the official SUI documentation: \u003Ca target=\"_blank\" rel=\"noopener\" href=\"https:\u002F\u002Fdocs.sui.io\u002Fguides\u002Fdeveloper\u002Fgetting-started\u002Fget-coins#request-test-tokens-through-curl\">Get SUI Tokens | Sui Documentation\u003C\u002Fa>\u003C\u002Fp>\n\u003Cpre class=\"line-numbers language-none\">\u003Ccode class=\"language-none\">\ncurl --location --request POST \"https:\u002F\u002Ffaucet.devnet.sui.io\u002Fgas\" --header\n\"Content-Type:application\u002Fjson\" --data-raw\n\"{\"FixedAmountRequest\":{\"recipient\":\"&lt;--YOUR_ACCOUNT_ADDRESS--&gt;\"}}\"\n\u003C\u002Fcode>\u003C\u002Fpre>\n\n\n\u003Cp>A successful invocation will return a series of transaction details (as shown in the following image)\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"\u002Fmedia\u002Fmovebit\u002F2024\u002F01\u002F99569c74bcb3be38a529d01f10f22b24.png\" alt=\"movectf_checkin_1\" title=\"MoveCTF Checkin 1\">\u003C\u002Fp>\n\u003Cp>Then, click the link to proceed to the next step\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"\u002Fmedia\u002Fmovebit\u002F2024\u002F01\u002Ff2b3cd4355182d98f02c6119c317a591.png\" alt=\"movectf_checkin_2\" title=\"MoveCTF Checkin 2\">\u003C\u002Fp>\n\u003Ch2 id=\"6-In-a-new-session-window-following-the-instructions-provided-in-the-question-click-on-the-‘Deploy’-button-at-the-bottom-to-create-a-new-account-and-automatically-deploy-a-challenge-contract\">6. In a new session window, following the instructions provided in the question, click on the ‘Deploy’ button at the bottom to create a new account and automatically deploy a challenge contract.\u003C\u002Fh2>\n\u003Cp>After clicking ‘Deploy,’ the transaction hash for deploying the contract and the packageId will appear below (as shown in the following image).\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"\u002Fmedia\u002Fmovebit\u002F2024\u002F01\u002Fb1e06a08a2512858803f071bbb46236b.png\" alt=\"movectf_checkin_3\" title=\"MoveCTF Checkin 3\">\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"\u002Fmedia\u002Fmovebit\u002F2024\u002F01\u002F1cf2ecce9a91f65d30e05ce45fc30ae6.png\" alt=\"movectf_checkin_4\" title=\"MoveCTF Checkin 4\">\u003C\u002Fp>\n\u003Ch2 id=\"7-Step-Two-Participants-begin-solving-challenges\">7. Step Two: Participants begin solving challenges\u003C\u002Fh2>\n\u003Cp>If participants want to view transaction information, they can use the curl command to directly call the ‘sui_getTransactionBlock’ method of the SUI API. Provide the transaction hash as a parameter, as shown in the following image.\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"\u002Fmedia\u002Fmovebit\u002F2024\u002F01\u002F10ae45668fa2c4eb27ee4c85646494db.png\" alt=\"movectf_checkin_5\" title=\"MoveCTF Checkin 5\">\u003C\u002Fp>\n\u003Cp>For a more detailed introduction to the SUI API, you can visit the following link:\u003C\u002Fp>\n\u003Cp>\u003Ca target=\"_blank\" rel=\"noopener\" href=\"https:\u002F\u002Fdocs.sui.io\u002Fsui-api-ref#suix_getallcoins\">Sui API Reference | Sui Documentation | Sui Documentation\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>Alternatively, participants can directly use ‘sui explore’ to select the devnet network and view detailed information by providing the transaction hash\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"\u002Fmedia\u002Fmovebit\u002F2024\u002F01\u002F0d0f49d8e3896dfe7f0d474da682ffd4.png\" alt=\"movectf_checkin_6\" title=\"MoveCTF Checkin 6\">\u003C\u002Fp>\n\u003Cp>In the Description, we have provided the GitHub link for the challenge contract. Participants can open the link to view the contract information.\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"\u002Fmedia\u002Fmovebit\u002F2024\u002F01\u002F0f71fccfeb493012bdc05dc5e0db2b59.png\" alt=\"movectf_checkin_7\" title=\"MoveCTF Checkin 7\">\u003C\u002Fp>\n\u003Cp>In the ‘checkIn’ challenge, you can directly call the ‘get_flag()’ function. You can interact with the deployed contract using the SUI CLI.\u003C\u002Fp>\n\u003Cp>You can find more commands in the official SUI documentation or by using ‘sui client –help’ in the console.\u003C\u002Fp>\n\u003Cp>Run the following command in the console:\u003C\u002Fp>\n\u003Cpre class=\"line-numbers language-none\">\u003Ccode class=\"language-none\">\nsui client call --function get_flag\n--package &lt;The packageId generated in the previous step&gt; --module\ncheckin --gas-budget 10000000\n\u003C\u002Fcode>\u003C\u002Fpre>\n\n\u003Cp>\u003Cimg src=\"\u002Fmedia\u002Fmovebit\u002F2024\u002F01\u002F88ece51d7019412f0c1e36239e07dc37.png\" alt=\"movectf_checkin_8\" title=\"MoveCTF Checkin 8\">\u003C\u002Fp>\n\u003Cp>Successfully invoking the ‘get_flag()’ function in the contract triggers the Flag event. Then, submit the transaction hash for this operation to obtain the flag.\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"\u002Fmedia\u002Fmovebit\u002F2024\u002F01\u002Ffa9fc91c435382839f401d8cbd2c7434.png\" alt=\"movectf_flag\" title=\"MoveCTF Flag\">\u003C\u002Fp>\n\u003Ch2 id=\"8-Step-Three-Obtain-the-flag\">8. Step Three: Obtain the flag\u003C\u002Fh2>\n\u003Cp>\u003Cimg src=\"\u002Fmedia\u002Fmovebit\u002F2024\u002F01\u002Ff2b3cd4355182d98f02c6119c317a591.png\" alt=\"movectf_obtain_flag\" title=\"MoveCTF Obtain Flag\">\u003C\u002Fp>\n\u003Ch2 id=\"9-The-final-step-is-to-submit-the-flag-only-successful-submissions-will-earn-a-point\">9. The final step is to submit the flag, only successful submissions will earn a point\u003C\u002Fh2>\n\u003Cp>\u003Cimg src=\"\u002Fmedia\u002Fmovebit\u002F2024\u002F01\u002F1643d34675b6cdd7a0bef4feb68007aa.png\" alt=\"movectf-point\" title=\"MoveCTF Get Point\">\u003C\u002Fp>\n\u003Ch2 id=\"10-Proceed-to-solve-the-next-challenge\">10. Proceed to solve the next challenge.\u003C\u002Fh2>\n\u003Cp>For the subsequent challenges, you can continue to refer to the steps mentioned above to solve them.\u003C\u002Fp>\n\u003Ch1 id=\"About-MoveBit\">About MoveBit\u003C\u002Fh1>\n\u003Cp>MoveBit is a blockchain security company that specializes in the Move Ecosystem. We are at the forefront of utilizing cutting-edge Formal Verification techniques. The team comprises security professionals with extensive experience in both academia and enterprise. As one of the earliest contributors to the Move ecosystem, we have collaborated closely with Move developers to establish security standards for secure Move applications, making it the most secure Web3 destination.\u003C\u002Fp>\n\u003Cp>\u003Ca target=\"_blank\" rel=\"noopener\" href=\"https:\u002F\u002Fwww.movebit.xyz\u002F?type=getAudit\">Requests a quote\u003C\u002Fa>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Website: \u003Ca target=\"_blank\" rel=\"noopener\" href=\"https:\u002F\u002Fwww.movebit.xyz\u002F\">https:\u002F\u002Fwww.movebit.xyz\u002F\u003C\u002Fa>\n\u003C\u002Fli>\n\u003Cli>Twitter: \u003Ca target=\"_blank\" rel=\"noopener\" href=\"https:\u002F\u002Ftwitter.com\u002Fmovebit_\">https:\u002F\u002Ftwitter.com\u002Fmovebit_\u003C\u002Fa>\n\u003C\u002Fli>\n\u003C\u002Ful>","\u002Fmedia\u002Fmovebit\u002F2024\u002F01\u002F38537085ba7fd8263ae3ac282a322b56.png","Welcome to MoveCTF 2024, an online security competition set to be a part of the 2024 Move Developer Conference. Organized by MoveBit, one of the earliest contributors to the Move ecosystem, in partnership with ChainFlag, MoveFuns, and OpenBuild, and exclusively sponsored and supported by the Sui Foundation, this event ","2024-01-09T03:15:00Z","2026-08-11T17:56:38Z","5 min read",true,"MoveCTF 2024 Guide cover image",1792635794961]