知识点汇集-web
1.http请求头各字段含义及作用:
常见的 HTTP 请求头字段包括:
Host、User-Agent、Accept、Accept-Encoding、Accept-Language、Connection、Cookie、Referer、Content-Type、Content-Length、Authorization、Cache-Control、Pragma、Upgrade-Insecure-Requests 等。
各请求字段的作用及含义是什么
以下是常见 HTTP 请求头字段的作用及含义,按功能分类说明:
- 标识目标服务器
Host
作用:指定请求的服务器域名(或 IP)和端口号。
含义:HTTP/1.1 强制要求,用于在同一服务器上托管多个域名(虚拟主机)时,区分目标网站。
示例:Host: www.example.com 或 Host: api.example.com:8080 - 客户端信息与偏好
User-Agent
作用:标识发起请求的客户端(浏览器、爬虫、程序等)信息。
含义:服务器可根据该字段返回适配客户端的内容(如移动端 / PC 端页面)。
示例:User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) Chrome/114.0.0.0 Safari/537.36(Chrome 浏览器)
Accept
作用:告知服务器客户端能接受的 媒体类型(数据格式)。
含义:服务器根据此字段返回最合适的格式(如 HTML、JSON 等),优先级用 q 参数表示(0~1,默认 1)。
示例:Accept: text/html, application/json; q=0.8(优先 HTML,其次 JSON)
Accept-Encoding
作用:指定客户端支持的 数据压缩算法。
含义:服务器可对响应内容压缩(如 gzip),减少传输带宽。
示例:Accept-Encoding: gzip, deflate, br(支持 gzip、deflate、brotli 压缩)
Accept-Language
作用:告知服务器客户端能接受的 自然语言(如中文、英文)。
含义:服务器可返回对应语言的内容(如多语言网站的本地化)。
示例:Accept-Language: zh-CN, zh; q=0.9, en; q=0.8(优先简体中文,其次中文、英文) - 连接与缓存控制
Connection
作用:控制请求连接的状态(持久连接或关闭)。
含义:keep-alive 表示保持连接(HTTP/1.1 默认),可复用连接发送多个请求;close 表示请求后关闭连接。
示例:Connection: keep-alive
Cache-Control
作用:指定客户端的 缓存策略,控制响应内容的缓存行为。
含义:常见值包括 no-cache(不缓存,需验证)、max-age=3600(缓存 3600 秒)、no-store(完全不缓存)。
示例:Cache-Control: max-age=86400(缓存 1 天)
Pragma
作用:HTTP/1.0 遗留字段,主要用于兼容旧版本的缓存控制。
含义:最常用 Pragma: no-cache,效果类似 Cache-Control: no-cache(不缓存,需向服务器验证)。 - 身份与会话管理
Cookie
作用:客户端向服务器发送之前存储的 Cookie 数据。
含义:用于身份认证、会话跟踪(如登录状态)、个性化设置等,数据由服务器通过 Set-Cookie 响应头设置。
示例:Cookie: sessionid=abc123; user=admin
Authorization
作用:携带身份验证信息,用于访问受保护的资源。
含义:常见认证方式:
Basic :用户名密码经 Base64 编码(明文风险,不推荐);
Bearer :携带 JWT 等令牌(OAuth2.0 常用)。
示例:Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9… - 请求体相关(POST/PUT 等方法)
Content-Type
作用:说明请求体(body)的 数据格式。
含义:服务器根据此字段解析请求体,常见类型:
application/x-www-form-urlencoded:表单默认格式(键值对);
multipart/form-data:用于文件上传(需配合 boundary 分隔符);
application/json:JSON 格式数据;
text/plain:纯文本。
示例:Content-Type: application/json
Content-Length
作用:指定请求体的 字节长度。
含义:服务器通过该字段判断请求体是否完整接收(适用于非分块传输)。
示例:Content-Length: 1024(请求体大小为 1024 字节) - 其他常用字段
Referer
作用:指示当前请求的 来源页面 URL。
含义:服务器可用于统计流量来源(如用户从哪个页面跳转)、防盗链(限制非白名单来源的请求)。
示例:Referer: https://www.google.com/search?q=example
Upgrade-Insecure-Requests
作用:客户端(通常是浏览器)请求服务器将 HTTP 链接升级为 HTTPS。
含义:值为 1 时,服务器会优先返回 HTTPS 资源,减少不安全的 HTTP 请求。
示例:Upgrade-Insecure-Requests: 1
7.x-forwarded-for:记录客户端的原始 IP 地址,以及请求经过的各级代理服务器的 IP 地址
2…htaccess 是 Apache 服务器上的一个分布式配置文件,用于实现目录级别的配置管理。它可以在不修改服务器主配置文件(httpd.conf)的情况下,对特定目录(及子目录)的服务器行为进行设置,非常适合虚拟主机、共享主机等无法直接修改主配置的场景。请求中配置
.htaccess文件是php的解析文件,根据文件写的规则,会把相应的东西当作php来执行
<FilesMatch “haha”>
SetHandler application/x-httpd-php
所有文件名中包含“haha”字样的文件都当作php来执行 (先传.htaccess,)再传h.haha等
3.tee 是 Linux/Unix 系统中一个常用的命令行工具,主要功能是 从标准输入读取数据,同时将数据输出到标准输出(屏幕)和一个或多个文件。它的名字源自管道中的 “T 型接头”,形象地表示 “一分二” 的数据流处理方式。
4.tac 是 Linux/Unix 系统中一个按行倒序输出文件内容的命令,是 cat 命令的 “反向操作”(名字反过来就是 cat),主要用于逆序查看文本文件(如日志、配置文件等)。
5.PseudoProtocols 中文可译为 “伪协议”,指的是在特定环境(如编程语言、框架或软件)中定义的非标准协议,用于访问或处理特定类型的资源(如文件、数据流、内存数据等),但并非真正意义上的网络传输协议(如 HTTP、FTP 等)。
伪协议的核心特点是:
不依赖网络传输,主要用于本地资源访问或数据处理;
通常由特定语言、工具或系统自定义,仅在其环境内生效;
功能上类似 “协议”(通过特定格式标识资源),但不遵循网络协议的标准规范。
伪协议的核心是利用特定环境的资源访问规则,实现文件读取、代码执行、内网探测等功能。在安全领域,伪协议常被用于漏洞利用(如文件包含、SSRF),但合法场景下也可简化资源处理(如浏览器 data:// 嵌入图片)。使用时需注意环境限制(如 PHP 配置、服务器权限),并警惕恶意滥用。
6.file_get_contents 是 PHP 中一个非常常用的内置函数,主要用于读取文件或各种资源的内容,并以字符串形式返回。它的功能灵活,支持本地文件、网络资源、PHP 伪协议等多种类型的资源读取,是处理文件和数据流的核心工具之一。
核心作用:从指定的资源中读取内容,返回读取到的字符串(读取失败时返回 false)。
这里的 “资源” 可以是:
本地文件(如 /etc/passwd、./test.txt);
网络资源(如 http://example.com、ftp://ftp.example.com/file.txt);
PHP 伪协议(如 php://input、data://、php://filter 等,常用于 Web 安全场景)。
file_get_contents 是 PHP 中处理资源读取的高效工具,既能读取本地文件和网络内容,也能结合伪协议实现灵活的数据流处理。但在使用时需注意配置限制、权限和安全风险,尤其当参数来自用户输入时,必须进行严格校验,避免被恶意利用。
7.绕过方法:
用变量替代空格(无需 \ 转义):
Linux 中的 IFS(内部字段分隔符)可直接替代空格,且无需转义。示例:catIFS(内部字段分隔符)可直接替代空格,且无需转义。
示例:catIFS(内部字段分隔符)可直接替代空格,且无需转义。示例:catIFSflag.txt(等价于 cat flag.txt)
进阶:IFS、{IFS}、IFS、IFS$1(增加混淆,避免被规则匹配)。
用引号包裹特殊字符(无需 \ 转义):
若 ;、| 等被过滤,但引号(’ 或 “)未被禁,可用引号包裹绕过。
示例:cat flag.txt”|"whoami(用双引号包裹 |,等价于 cat flag.txt|whoami)。
利用编码绕过:
将特殊字符转为 URL 编码或十六进制,若后端会自动解码,则可绕过 \ 过滤。
示例:空格的 URL 编码为 %20,则 cat%20flag.txt 等价于 cat flag.txt。
常用的空格绕过方法
$IFS $IFS$6 ——后面的数字6换成其他数字也行${IFS} <<>{cat,flag.php} ——这里把,替换成了空格键%20 ——代表space键%09 ——代表Tab键
8.在 SQL 注入中,“闭合方式” 指的是通过注入特殊符号(如引号、括号等),闭合原 SQL 语句中包裹参数的符号,从而将用户输入的恶意 SQL 代码拼接进原语句并执行。核心是破坏原语句的语法结构,使其执行注入的逻辑。
核心原则
判断闭合类型:通过输入 '、"、) 等符号,观察是否出现 SQL 语法错误(如 You have an error in your SQL syntax),从而确定原语句的包裹符号。
注释多余内容:闭合后需用注释符(–+、#、/* / 等)忽略原语句后续的符号(如剩余的引号、括号),避免语法错误。
适配数据库:不同数据库注释符可能不同(如 Oracle 不支持 #,需用 – 或 / */),需灵活调整。
通过以上方式,可将恶意 SQL 代码注入原语句,实现查询敏感数据、修改数据甚至控制数据库等操作(仅限授权测试)。
9.or 对应的16进制:276f7227
ffifdyop字符串,MD5加密之后会变成276f7227 36c95d99e921722cf9ed621c
字符串前几位刚好是 ‘ or ‘6
10.“0e 绕过” 是 Web 安全中常见的一种绕过技巧,主要利用了 PHP 等语言中弱类型比较的特性,核心与 “0e” 开头的字符串在数值上下文的解析规则有关。
以下字符串经过md5函数后以’0e’开头:
QNKCDZO
240610708
s878926199a
s155964671a
s1091221200a
s1665632922a
11.在 Web 安全中,“数组绕过” 是一种利用服务器对输入类型处理不当(尤其是未严格校验参数是否为数组)而实现的绕过技巧,常见于 PHP 等弱类型语言的应用中。其核心原理是:当服务器预期接收字符串 / 数值类型的参数时,若攻击者传入数组类型,可能导致某些校验函数失效或返回非预期结果,从而绕过验证逻辑。