荆州哪有做网站的公司,深圳公司开发网站,微盟集团官网,网上做效果图网站有哪些原理
常见的存在HTTP头注入的参数 User-Agent#xff1a;使得服务器能够识别客户使用的操作系统#xff0c;浏览器版本等.#xff08;很多数据量大的网站中会记录客户使用的操作系统或浏览器版本等存入数据库中#xff09;
Cookie#xff1a;网站为了辨别用户身份进行se…原理
常见的存在HTTP头注入的参数 User-Agent使得服务器能够识别客户使用的操作系统浏览器版本等.很多数据量大的网站中会记录客户使用的操作系统或浏览器版本等存入数据库中
Cookie网站为了辨别用户身份进行session跟踪并储存在用户本地终端上的数据通常经过加密
X-Forwarded-For简称XFF头代表了HTTP的请求端真实的IP。它被认为是客户端通过HTTP代理或者负载均衡器连接到web服务端获取源ip地址的一个标准通常一些网站的防注入功能会记录请求端真实IP地址并写入数据库或某文件[通过修改XXF头可以实现伪造IP]。
Rerferer浏览器向 WEB 服务器表明自己的页面来源。
Host客户端指定自己想访问的WEB服务器的域名/IP 地址和端口号。
XFF注入概念
X-Forwarded-For 是一个 HTTP 扩展头部。HTTP/1.1RFC 2616协议并没有对它的定义它最开始是由 Squid 这个缓存代理软件引入用来表示 HTTP 请求端真实 IP。如今它已经成为事实上的标准被各大 HTTP 代理、负载均衡等转发服务广泛使用并被写入 RFC 7239Forwarded HTTP Extension标准之中。
X-Forwarded-For 请求头格式非常简单就这样
X-Forwarded-For: client, proxy1, proxy2
可以看到XFF 的内容由「英文逗号 空格」隔开的多个部分组成最开始的是离服务端最远的设备 IP然后是每一级代理设备的 IP。
如果一个 HTTP 请求到达服务器之前经过了三个代理 Proxy1、Proxy2、Proxy3IP 分别为 IP1、IP2、IP3用户真实 IP 为 IP0那么按照 XFF 标准服务端最终会收到以下信息
X-Forwarded-For: IP0, IP1, IP2
Proxy3 直连服务器它会给 XFF 追加 IP2表示它是在帮 Proxy2 转发请求。列表中并没有 IP3IP3 可以在服务端通过 Remote Address 字段获得。我们知道 HTTP 连接基于 TCP 连接HTTP 协议中没有 IP 的概念Remote Address 来自 TCP 连接表示与服务端建立 TCP 连接的设备 IP在这个例子里就是 IP3。
Remote Address 无法伪造因为建立 TCP 连接需要三次握手如果伪造了源 IP无法建立 TCP 连接更不会有后面的 HTTP 请求。不同语言获取 Remote Address 的方式不一样例如 php 是 $_SERVER[REMOTE_ADDR]Node.js 是 req.connection.remoteAddress但原理都一样。
例题
1.打开环境发现让使用WLLM浏览器使用bp抓包然后进行修改
修改User-Agent头如下
2.访问成功在Location位置发现a.php进行访问 3.发现只有本地地址才能访问进行伪造
X-Forwarded-For: 127.0.0.1 4.在Location位置同样发现secretttt.php继续访问 得到答案