HTTP 请求方法, HTTP/1.1协议中共定义了八种方法(也叫动作)来以不同方式操作指定的资源。
HTTP Method is GET
Use CTF**B Method, I will give you flag.
Hint: If you got 「HTTP Method Not Allowed」 Error, you should request index.php.
目前的方式是GET,提示用“CTF**B”方式进行链接跳转,因此,采用curl工具来使用特定http方法访问某个url。
已知测试环境:
http://challenge-dc2c8b83bb9a1e30.sandbox.ctfhub.com:10800/index.php
则采用如下语法:
curl -v -X CTFHUB http://challenge-dc2c8b83bb9a1e30.sandbox.ctfhub.com:10800/index.php
* Trying 47.98.148.7...
* TCP_NODELAY set
* Connected to challenge-dc2c8b83bb9a1e30.sandbox.ctfhub.com (47.98.148.7) port 10800 (#0)
> CTFHUB /index.php HTTP/1.1
> Host: challenge-dc2c8b83bb9a1e30.sandbox.ctfhub.com:10800
> User-Agent: curl/7.55.1
> Accept: /
>
< HTTP/1.1 200 OK
< Server: openresty/1.19.3.2
< < Date: Sun, 17 Dec 2023 09:22:10 GMT
< Content-Type: text/html; charset=UTF-8
< Transfer-Encoding: chunked
< Connection: keep-alive
< X-Powered-By: PHP/5.6.40
< Access-Control-Allow-Origin: *
< Access-Control-Allow-Headers: X-Requested-With
< Access-Control-Allow-Methods: *
<
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8"/>
<title>CTFHub HTTP Method
</head>
<body>
good job! ctfhub{xxxxxxxxxxx}
</body>
</html>
* Connection #0 to host challenge-beb8bdebb0d332be.sandbox.ctfhub.com left intact
curl 的选项以一或两个破折号开头,即 - 或 --,许多选项后面都需要附加值。
-d, --data <data>
主要是针对 http 协议的 post 请求指定要在消息体中发送的数据。
-i, --include
显示包含 http 消息头返回的信息输出。
-I, --header
只获取 http 协议的消息头信息,若是作用在 FTP 协议时,只获取文件大小和最后一次修改时间信息。
-H, --header <header>
主要是针对 http 协议的消息头进行设置,常用的有 -H "Content-Type:application/json"。
-o, --output <file>
将服务器的响应保存成文件,等同于 wget 命令。
-X, --request <command>
指定 http 协议的请求方式,默认为 GET 请求。
-v 参数可以显示一次 http 通信的整个过程,包括端口连接和 http request 头信息