HgameCTF2024-week1-web/misc题复盘
本应该在假期写的复盘博客,结果由于懒加上练车就完全没写,这个比赛我也只在week1做的时间比较多,之后的几周基本都没怎么做,全在玩了(无奈.jpg)。但是假期就是要狠狠玩!开学了,开始补之前的落下的复盘。
一、web部分
先从简单到难逐渐复盘:
1.ezHTTP
根据题目也可以发现是简单的考察一些http协议具体内容,用burpsuite抓包,点开之后发现提示:请从vidar.club访问这个页面
所以用Referer头即可,如下:
用于模仿来源的http头一共有两个,分别是Origin与Referer,但是Origin只用在CORS跨域请求中,普通的请求用不到,所以本题用到了Referer。
可以看到回复如下,所以就简单的更改一下user-agent即可
回复如下,需要从本地访问,
下面这些都是可以当做本地访问的头,其中重要的三个我已经标出来了,挨个试即可,这题是用到了X-Real-IP才可以通过的
1 | ** Client-IP:127.0.0.1 |
最后是给了一个bearer编码的flag,这还是第一次遇到,挺新奇的,找一个解码网址最后得到flag
得到flag
2.Bypass it
这题的提示是:This page requires javascript to be enabled :)显示js已经开启
而进入网页之后发现是一个登录页面,刚进来肯定是没有账户的,需要注册,但是点击注册js弹框显示不让注册,结合题目提示,猜测是需要禁用js,这就很简单了
直接在控制台禁用js,然后点击注册,发现成功进入网址,然后就是注册即可
注册完登录即可拿到flag
3.Select Courses
根据题目名字也可以知道这需要我们将课程全部选上才会有flag,但是会发现全是已满的课程,如下这时候
最开始我做的时候是直接在前端页面改成未满然后点点点的选,发现没用,之后在前端js代码一个生成课的函数,然后我就把之前收到的所有课程的选包里面的full改成0然后用函数发过去会发现又多了四个相同的未满课,但是此时选课还是不行,后来我就随便的点点点发现突然选上一个课,我以为我这种方法是对的。然后就不断发包然后点,最后也都做完了。但是不知道啥原理。直到看到了题解才发现原来是爆破。。。
当我们选课的时候是通过给后端发包实现,如下
后端也会返回你一个错误信息以及满的信息。
既然是爆破那就写一个脚本就可以通过了
1 | import requests |
上述代码有部分参考了题解,当出现所有课程的id之后就选完了,如下提交即可获得flag
啊啊啊平台关了,我太拖延了,其他的web题都复现不了了。