国赛分区赛出题thoughts

这次国赛,我们队也是混过了初赛打进了分区赛,有一个 Build 环节要求出题,从没有过相关经历的👴和卓哥一起出了一道简单的水题

题目地址:http://47.95.113.140/

我们出题的思路是介样:出 PHP 的代码审计题,设置三个关卡,一关一关过(因为感觉这样应该最容易出QAQ)

考点:

首先是个简单的信息收集,Hint 在 Network 中 Lemon: Just try to find something familiar but strange, I think the lucky number is 62. Oh, just try the cookie I just cooked.,检查一下 cookie,可以发现设置了 sweetCookie = riiIja6j7ZCtDaDkVeDhktWAX8SzZypb,观察其特性及题目中的 62 的暗示可以得到 cookie 是 Base62 编码,我们解码一下可以得到 POST GIMME'HELLO=DUIDUI',即要求传入值为 DUIDUI 的 POST参数 HELLO

在传入之后会将 index.php 的源码高亮显示,然后一关一关过

Level1:要求传俩 GET 参数,值不同但经过 md5 函数之后弱类型比较相同,并且要求正确的 passwd,通过 strcmp 判断是否相同,都是烂大街的考点了,简单的数组绕过而已

Level2:题目注释中 Hint 已经很明显了,switch-case 的绕过,以及 key 的 secret 也就是注释中给出的 jwt 使用 jwtcrack 得到的 secret,数字后接字母即可绕过

Level3:这里也没啥难点,Fuzz 到胃了也就出了,od 在,? 在,. 在,空格绕过没啥异议,那就没啥好说的了嘛,直接出了

最后的 payload:

此处贴上获取 flag 的 exp 脚本:

检查 exp 是否利用成功的 check 脚本:

 

From 2020.9.8