title | author | difficulty | category | image | port | writeup_author | tags | reference | |
---|---|---|---|---|---|---|---|---|---|
Method |
13m0nde |
Easy |
Web |
ghcr.io/svuctf/svuctf-helloworld-2024/method:latest |
80 |
13m0n4de |
|
这是一道关于 HTTP 请求方法的题目。flag 被分成了多个部分,需要使用不同的 HTTP 方法(包括一个自定义方法)来获取每个部分。
HTTP 请求方法是 HTTP 协议的基础组成部分,用于表明客户端希望对服务器上的资源执行什么样的操作。
每种方法都有其特定的语义,详细信息可以参考 HTTP 请求方法。
常见的 HTTP 方法包括:
- GET:获取资源
- POST:提交资源
- PUT:上传或更新资源
- DELETE:删除资源
- OPTIONS:获取服务器支持的 HTTP 方法列表
- HEAD:获取资源的元信息
- PATCH:对资源进行部分修改
- TRACE:追踪请求-响应的传输路径
(如果你还不清楚如何发送 HTTP 请求,可以查看 Param 题解 中对于 HTTP 请求和相关工具的介绍)
发送 GET 请求:
$ curl "http://<IP>:<PORT>/"
发送 POST 请求:
$ curl "http://<IP>:<PORT>/" -X POST
发送 PUT 请求:
$ curl "http://<IP>:<PORT>/" -X PUT
发送 DELETE 请求:
$ curl "http://<IP>:<PORT>/" -X DELETE
发送 OPTIONS 请求:
$ curl "http://<IP>:<PORT>/" -X OPTIONS
OPTIONS 的返回头中,会给出所有允许的请求方法,返回头内容可以使用 -v
参数显示:
$ curl "http://<IP>:<PORT>/" -X OPTIONS -v
* Request completely sent off
< HTTP/1.1 200 OK
< Server: gunicorn
< Date: Fri, 01 Nov 2024 21:12:08 GMT
< Connection: close
< Content-Type: text/html; charset=utf-8
< Content-Length: 34
< Allow: GET, POST, PUT, DELETE, OPTIONS, SVUCTF
得知自定义方法为 SVUCTF
。
发送 SVUCTF 请求:
$ curl "http://<IP>:<PORT>/" -X SVUCTF