HGAME Week1
HGAME
出于一些机缘巧合,暑假里加入了Vidar-Team的新生群,逐渐开始了解CTF,八月打了一段时间的hgame-mini,一度(指大佬还没来的时候)排到了第一页
虽然加入vidar基本没有可能,但也有幸认识了一些成员,这里特别要感谢Answer和eking的无私奉献对我帮助非常大,也很感谢baimeow和potato带我加入了DN11,对计网有了点更深入的了解
开学后各种事情以及开发任务逐渐增加,同时也很难找到队友,甚至于参加省赛时三个人的队伍剩下两个人一道题都没做出来,我只能选择放弃了安全这个方向。杭电的学长们一直在提的HGAME这会儿开始了,也就在寒假里抽空随便做点吧,应该是根本不存在的生涯中最后一赛了
MISC
签到
1 | hgame{welc0m3_t0_HGAME_2024} |
到此一游
SignIn
![try_another_way_to_see.png]
传到手机上从不同方向看
1 | hgame{WOW_GREAT_YOU_SEE_IT_WONDERFUL} |
Web
ezHTTP
前半段貌似hgame-mini同款
访问靶机,返回请从vidar.club访问这个页面
设置请求Headers
1 | Referer: vidar.club |
返回请通过Mozilla/5.0 (Vidar; VidarOS x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36 Edg/121.0.0.0访问此页面
,接着改Headers
1 | User-Agent: Mozilla/5.0 (Vidar; VidarOS x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36 Edg/121.0.0.0 |
返回请从本地访问这个页面
,设置X-Forwarded-For: 127.0.0.1
,发现返回值没有变化,仔细一看返回Headers里有个Hint: Not XFF
略加思索~~(指ChatGPT)~~,把XFF改成了X-Real-IP
,返回值变成了Ok, the flag has been given to you ^-^
返回Headers里有Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJGMTRnIjoiaGdhbWV7SFRUUF8hc18xbVAwclQ0bnR9In0.VKMdRQllG61JTReFhmbcfIdq7MvJDncYpjaT7zttEDc
,一眼JWT的格式,base64解码之后得到flag
1 | hgame{HTTP_!s_1mP0rT4nt} |
Bypass it
访问靶机,弹窗提示欢迎使用用户管理系统,请先登陆
,点击确定后跳转到/login.html
点击注册按钮后跳转到register_page.php
,虽然会弹窗很抱歉,当前不允许注册
开始还以为题目名字的意思是SQL注入,试了好久也没成功,后来无意中发现注册页面可以看到元素
1 | <li> |
根据表单构造请求,返回数据
1 | <script language='javascript' defer> |
正常登录即可获取到flag
1 | hgame{b5619c116a434cda50308d84f381ea85124d1b2e} |
Select Courses
打开靶机,啊这正方教务的UI……
所有课都显示已满,点击有弹窗提示课程已满!
打开开发者工具,发现点击选课按钮的时候会POST请求/api/courses
,payload为{"id":1}
,返回{"full":1,"message":"课程已满"}
点右上选完了按钮会请求/api/ok
并返回{message: "呜呜呜,还没选上课呢!"}
查看源码还可以发现课程列表来自GET请求/api/courses
然后……最近项目有点多,只能腾出这半小时,没时间研究了,就这样吧(
后来看wp,原来是思路完全错了,要轮询抢课
HGAME Week1