type
status
date
slug
summary
tags
category
icon
password
HTTP Header 概述
HTTP工作原理

HTTP报文类型
- 请求报文(HTTP Request):由客户端发给服务器的消息,其组成包括请求行(Request-Line),请求头域(Header-Field)和请求体(Entity-Body)
- 响应报文(HTTP Response):由服务器回复给客户端的消息,其组成包括状态行(Status-Line),响应头域(Header-Field)和响应体(Entity-Body)
HTTP请求报文组成

HTTP请求的方法
方法 | 描述 |
GET | 请求指定的页面信息,并返回实体主体 |
HEAD | 类似于GET请求,只不过返回的响应中没有具体的内容,用于获取报头 |
POST | 向指定资源提交数据进行处理请求(例如提交表单或上传文件)数据被包含在请求体中,POST请求可能回导致新的资源的建立或已有资源的修改 |
PUT | 从客户端向服务器传送的数据取代指定的文档的内容 |
DELETE | 请求服务器删除指定的页面 |
CONNECT | HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器 |
OPTIONS | 允许客户端 查看服务器的性能 |
TRACE | 回显服务器收到的请求,主要用于测试或诊断 |
PATCH | 是对PUT方法的补充,用来对已知资源进行局部更新 |
HTTP请求报文实例

HTTP响应报文组成

HTTP响应消息状态码
状态码 | 类别 | 原因短语 |
1XX | 信息性 | 请求正在处理 |
2XX | 成功 | 请求正常处理完毕 |
3XX | 重定向 | 需要进行附加操作以完成请求 |
4XX | 客户端错误 | 服务器无法处理请求 |
5XX | 服务器错误 | 服务器处理请求错误 |
HTTP响应报文实例

HTTP Header内容
- User-Agent:使服务器能够识别客户端使用的操作系统,浏览器版本等(很多数据量大的网站中会记录客户使用的操作系统或浏览器版本等存入数据库中)、
- Cookie:网站为了辨别用户身份,进行session跟踪而储存在用户本地终端上的数据(通常经过加密)
- Host:客户端指定自己想访问的Web服务器的域名/IP地址和端口号
- X-Forwarded-For:简称XFF头,它代表客户端(即HTTP的请求端)真实的IP(通常一些网站的防注入功能会记录请求端真实IP地址并写入数据库或某文件,通过修改XFF头可以实现伪造IP)
- Client-IP:同上
- Referer:浏览器向Web服务器表明自己是从哪个页面链接过来的
HTTP Header注入
有时候,后台开发人员为了验证客户端HTTP Header(比如常用的Cookie验证等)或者通过HTTP Header头信息获取客户端的一些信息(比如User-Agent,Accept字段等)会对客户端HTTP Header进行获取并使用SQL语句进行处理,如果此时没有足够的安全考虑,就可能导致基于HTTP Header的注入漏洞。
HTTP Header 注入的前提条件
- 能够对请求头消息进行修改
- 修改的请求头信息能够带入数据库执行
- 数据库没有对输入的请求头做过滤
常见的HTTP Header注入类型
Cookie注入
- 常见场合:服务器对cookie字段进行获取,以验证客户端的身份

Referer注入
- 常见场合:服务器记录referer字段用于统计网上的点击量

User-Agent注入
常见场合
- 服务器记录访问者的信息,如浏览器版本,操作系统版本等
- 服务器根据User-Agent提供的信息来给客户端推送不同的网页

XFF注入
- 常见场合:一些网站的防注入功能会记录客户端真实IP地址并写入数据库

- Author:KingCode
- URL:https://kingcode.dpdns.org/article/303044e4-f9d8-4ad2-a4bb-198fddfbd0d8
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!









