shaneson.eth

Posted on Sep 04, 2022Read on Mirror.xyz

合约攻防比赛--- PARADIGM CTF 2022 环境准备篇

PARADIGM CTF 2022

合约安全对于一个合约工程师来说是最重要的一门课,也是鉴别高级,还是初级的一道关键门槛。我个人是很喜欢在比赛中锻炼自己的能力(例如打算法比赛),PARADIGM CTF是全球难度最高的合约安全比赛,吸引了全球很多顶尖的区块链安全人员参加。虽然已经结束了,但是研究他的题目对于提升个人能力来说非常有意义。这篇是环境准备篇的科普文,分为比赛中,和比赛后。

CTF的官网是:

https://ctf.paradigm.xyz/challenges

进入官网了之后,注册成功了之后,点击任何一道题目,点击Resource的第二条连接(这里坑得我有点惨)

点击下载了之后,就可以看到源文件了。

比赛中

如果是比赛中的话,可以用官方提供的docker环境来编写合约,和测试即可。这里介绍一下:

docker build -t .
docker run -t xxxxx (image name)

通过build和run就可以启动一个本地的节点(fork 主网),通过访问本地的rpc就可以进行合约交互了。

每一道题都有一个Access,例如otter-word这道题,获得X-Auth-key的命令就是(X-Auth-key用来提交比赛结果的)

nc 34.72.24.70 8080

当需要提交flag的时候,选3,如果是launch new instance选1。

比赛后

emmm,比赛后就相对来说比较麻烦了。为了方便学习和研究,我开源了测试/考试的源码环境,通过fork主网了之后,就可以运行脚本和测试结果了。

https://github.com/shanxuanchen/ParadigmCTF2022

题目都在contracts目录下,目前还没完全完善,我会继续补充的,题目的部署在script/deploy里,解决方案在script/solve。

有了本地环境就可以做题来提升自己合约攻防的能力啦!!

接下来会根据每一道题,出一篇writeUp,记录自己学习的心得。