来自 SHCTF 2023 的区块链签到题

[WEEK2]blockchain signin

如果你是第一次做区块链,请先做好以下准备

准备部分:

记一个 Blockchain 签到题目

具体参考本文,这里只做操作演示

用 metamask 开一个账户测试水龙头

RPC 填题目给的,链 ID 先随便填然后会报错给正确的再填,其余随意填

把账户地址给水龙头可以拿到测试币(下图所示)

浏览器直接连接水龙头

https://remix.ethereum.org/

Remix 在线地址,我这里和 metamask 一起放在 Chrome 上

Remix 和 metamask 绑定

第四栏选择 Injected Provider - MetaMask,网页会自动弹出连接

连接即可

操作部分:

nc连地址,选1
得到:
token:v4.local.swG1Vyhm-j-8tm30R4uf2wWcEWoPl1bHhLwi-OUS6qeoNMmXxZm5c8XFTcr2ElZXtCD18iLQBeGD-XmOsQq98cLOYdTsD3WwcwxMkjKLgIDCf6TIBv2ltRbBpJgZAmzgvf_9-yGLyGHAGtmbpnfNeSnBSTjf3H5B_pcWIr3olxS3yQ.R3JlZXRlcg

账户:0xD1c924fc5D72b9c6346921f37E596cE2cB859404


账户给水龙头拿个测试币


再次nc,这次选择2


拿到:
contract address: 0x40C6BC645879BF27b6Fb1F5EC3503Ebd935bD8FF

transaction hash: 0xfc54f73720aa6b348495a17cfff45db2794873ab8362e06f43023296fc456f39

然后再选4,拿到题目源码:


remix,在default_workspace 里创建一个新文件


把源码放进去并作细微修改(适应版本)


调到第三栏选好对应版本 compile一下


把contract address放到地址那里,然后点下at Address 按钮,打开下面的窗口


根据代码提示,我们发起一个问候,内容为"welC0meToSHCTF2023"
在setGreeting里添加并运行


刚才得到的测试币在这里派上用场,用于缴费gas

然后回到nc环境,选3就可以得到flag了

SHCTF{1T_Ls_a_ESS3N7Iais_8IOCkCh4IN_ChaLLEn6E_Are_you_Ready_7O_DIve_In}