GET or POST / HTTP/1.1
Host:
Cache-Control:
Upgrade-Insecure-Requests:
User-Agent: //一般这个地方也需要改,看题目给的啥提示来改.
//UA的后面接上请求的浏览器 操作系统的信息等.
Accept:
Accept-Encoding:
Accept-Language:
Connection:
X-Forwarded-For://如果提示只能由本地访问,这里内容必须改为127.0.0.1如果给了其他ip,那就改为其他IP地址.
Referer://这地方也需要改,看看题目给的提示,看给哪个url。
Cookie://如果提示只能由管理员访问,就必须把Cookie的内容改为admin。
以上为HTTP请求.
一般的HTTP题目都需要补全以上缺的东西才能拿到flag.
一般来说,有关http的题目都是改上面的内容。
状态码
状态码表明资源的请求结果状态,由三位十进制数组成,第一位代表基本的类别:
- 1xx,提供信息
- 2xx,请求成功提交
- 3xx,客户端重定向其他资源
- 4xx,请求包含错误
- 5xx,服务端执行遇到错误
常见的状态码及短语如下所示:
状态码 | 短语 | 描述 |
---|---|---|
100 | Continue | 服务端已收到请求并要求客户端继续发送主体 |
200 | Ok | 已成功提交,且响应主体中包含请求结果 |
201 | Created | PUT 请求方法的返回状态,请求成功提交 |
301 | Moved Permanently | 请求永久重定向 |
302 | Found | 暂时重定向 |
304 | Not Modified | 指示浏览器使用缓存中的资源副本 |
400 | Bad Request | 客户端提交请求无效 |
401 | Unauthorized | 服务端要求身份验证 |
403 | Forbidden | 禁止访问被请求资源 |
404 | Not Found | 所请求的资源不存在 |
405 | Method Not Allowed | 请求方法不支持 |
413 | Request Entity Too Large | 请求主体过长 |
414 | Request URI Too Long | 请求URL过长 |
500 | Internal Server Error | 服务器执行请求时遇到错误 |
503 | Service Unavailable | Web 服务器正常,但请求无法被响应 |
401 状态支持的 HTTP 身份认证:
- Basic,以 Base64 编码的方式发送证书
- NTLM,一种质询-响应机制
- Digest,一种质询-响应机制,随同证书一起使用一个随机的 MD5 校验和
host 和 Referer的差别是 host是部分网址,Referer是全部网址
简单来说就是host不带http头,Referer带http头。
X-Forwarded-For 是一个 HTTP 扩展头部。HTTP/1.1(RFC 2616)协议并没有对它的定义,它最开始是由 Squid 这个缓存代理软件引入,用来表示 HTTP 请求端真实 IP。如今它已经成为事实上的标准,被各大 HTTP 代理、负载均衡等转发服务广泛使用,并被写入 RFC 7239(Forwarded HTTP Extension)标准之中。
一般的ctf题对 X-Forwarded-For 的考点是 只能由本地访问,就会用到 X-Forwarded-For。
就必须在HTTP请求里加上
X-Forwarded-For: 127.0.0.1
或者题目给了其他IP地址,说只能从该ip访问就可以修改 X-Forwarded-For后面的ip地址。
给了个提示 有个秘密网站在syclover.查看源码。
盲猜Referer请求。打开bp进行抓包。
这里是个特殊点,Referer必须得在Connection上方,在其他位置无法发送成功请求。
这里提示要Syclover browser 所以得把UA换成Syclover.
这里说得本地才能访问,所以就用到了X-Forwarded-For
最后拿到flag。