伪造HTTP请求IP地址
侧边栏壁纸
  • 累计撰写 57 篇文章
  • 累计收到 1 条评论

伪造HTTP请求IP地址

admin
2021-11-05 / 0 评论 / 14 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2022年08月30日,已超过279天没有更新,若内容或图片失效,请留言反馈。

注意:伪造Http请求IP地址一般为非推荐使用手段

一般使用:简单投票网站重复投票,黑别人网站

在项目开发中(web项目),需要调其它系统接口,并且该系统需要获取客户端(浏览器访问端)的IP地址

正常流程:浏览器---访问PC系统----PC系统需要调第三方系统,此时默认情况下,PC发起的request请求IP地址是PC所在服务器的IP地址,而不是请求浏览器端的IP地址

所以,就想着是否能把request里的IP地址给修改了,因为在PC系统里是能获取到请求IP地址的,结果是修改不了

最后了解到:可以在http请求头里,追加一个头信息(名称:x-forwarded-for),它会位于原始IP地址之前,所以当第三方系统获取地址时,就获取到了真实的浏览器访问地址IP了

X-Forwarded-For:简称XFF头,它代表客户端,也就是HTTP的请求端真实的IP,只有在通过了HTTP 代理或者负载均衡服务器时才会添加该项。

httpPost.addHeader("x-forwarded-for",ip);

概念

  • X-Forwarded-For
    X-Forwarded-For 是一个扩展头。HTTP/1.1(RFC 2616)协议并没有对它的定义,它最开始是由 Squid 这个缓存代理软件引入,用来表示 HTTP 请求端真实 IP,现在已经成为事实上的标准,被各大 HTTP 代理、负载均衡等转发服务广泛使用,并被写入 RFC 7239(Forwarded HTTP Extension)标准之中.
  • $remote_addr
    是nginx与客户端进行TCP连接过程中,获得的客户端真实地址. Remote Address 无法伪造,因为建立 TCP 连接需要三次握手,如果伪造了源 IP,无法建立 TCP 连接,更不会有后面的 HTTP 请求
  • $X-Real-IP
    是一个自定义头。X-Real-Ip 通常被 HTTP 代理用来表示与它产生 TCP 连接的设备 IP,这个设备可能是其他代理,也可能是真正的请求端。需要注意的是,X-Real-Ip 目前并不属于任何标准,代理和 Web 应用之间可以约定用任何自定义头来传递这个信息

分析

网络请求通常是浏览器(或其他客户端)发出请求,通过层层网络设备的转发,最终到达服务端。那么每一个环节收到请求中的remote_addr必定是上游环节的真实IP,这个无法伪造。那从全链路来看,如果需要最终请求的来源,则通过X-Forwarded-For来进行追踪,每一环节的ip(remote_addr)都添加到X-Forwarded-For字段之后,这样X-Forwarded-For就能串联全链路了。

X-Forwarded-For: client_ip, proxy1_ip, proxy2_ip
以Nginx为例,添加X-Forwarded-For的配置方式为:

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
如果用户在请求时候伪造的话,那么会出现上面案例的client1前面,出现伪造的ip:

X-Forwarded-For: 伪造ip1, 伪造ip2, client_ip, proxy1_ip, proxy2_ip
这样的话,需要取真实的client_ip,则需要取proxy1_ip前一个ip值;

如果想要过滤掉或覆盖伪造的ip的话,则需要第一层代理(proxy1)用remote_addr来覆盖X-Forwarded-For:

proxy_set_header X-Forwarded-For $remote_addr;

各个请求头

x-forwarded-for
client_ip
remote-addr
X-Real-IP
HTTP_CLIENT_IP
HTTP_X_FORWARDED_FOR
X-Remote-IP
X-Remote-Addr
X-Client-IP
HTTP_VIA
X-Originating-IP
Proxy-Client-IP
WL-Proxy-Client-IP
X-Forwarded-For
X-Originating-IP
X-Remote-IP
X-Remote-Addr

参考
https://zhuanlan.zhihu.com/p/134618410
https://zhuanlan.zhihu.com/p/64821617
https://www.jianshu.com/p/15f3498a7fad
https://www.cnblogs.com/luxiaojun/p/10451860.html

1

打赏

海报

正在生成.....

评论 (0)

取消