type
status
date
slug
summary
tags
category
icon
password

HTTP Header 概述

HTTP工作原理

notion image

HTTP报文类型

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

HTTP请求报文组成

notion image

HTTP请求的方法

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

HTTP请求报文实例

notion image

HTTP响应报文组成

notion image

HTTP响应消息状态码

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

HTTP响应报文实例

notion image

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字段进行获取,以验证客户端的身份
notion image

Referer注入

  • 常见场合:服务器记录referer字段用于统计网上的点击量
notion image

User-Agent注入

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

XFF注入

  • 常见场合:一些网站的防注入功能会记录客户端真实IP地址并写入数据库
notion image
 
SQL注入漏洞形成的原因SQL注入过程
Loading...