T573673 【CTF】Web
题目背景
本题模拟一个包含账户系统的服务器。
对 Linux 和 MacOS 用户:不必担心,本题实际上并不需要运行程序。运行程序只是为了更直观地模拟。
[](修完题之后还在交旧版答案的那些什么成分不用多说了/oh)
题目描述
### 一句话题意
注册为管理员即可通过。
### 完整题意
我们提供了一个基于 Windows 的服务器的代码。你的目标是:注册一个管理员账户。
请在附件中下载代码文件,编译运行(请链接 `ws2_32` 库)。或者也可以直接下载编译好的程序运行。
该程序将会在 `localhost:4080` 运行一个服务器。这个服务器提供的是题目背景里的注册服务。
你可以在浏览器中访问 `localhost:4080/register/user` 来注册用户 `user`。
之后,服务器会根据用户名赋予权限——符合条件的用户将获得管理员身份。
注册完成之后,服务器会给这个账户返回一个整数,表示用户 ID。
为了方便查看,访问 `localhost:4080/info/uid` 查询 ID 为 `uid` 的用户的信息。
输入格式
无
输出格式
无
说明/提示
再次简述您要做的事情:
- 在附件中下载源码编译(或直接下载成品 exe 文件),执行。
- 程序将会启动一个用于模拟的服务器。您需要“黑”掉这个模拟服务器。
- 接着您可以在浏览器中访问这个模拟服务器,尝试与这个模拟服务器互动。
- 当您找到了某个能够“黑”掉模拟服务器的 URL(即网址)——也就是通过访问这个 URL,你可以注册成为管理员用户——提交这个 URL 到本题。
服务器接受 GBK 格式的编码,而不是 UTF-8。
您不必理会部分源代码,它们并不是考察的范围:
- 开头(从 12 行到 231 行)的命名空间 `MD5`。它实现的是标准 MD5 哈希算法。
- 末尾(从 414 行到 465 行)的两个函数 `handle_request` 和 `start_server`。它们用于开启端口并处理请求。