如何伪造IP(转)
要明白伪装IP的原理,首先要回顾一下TCP的三次握手。
总所周知在链接初始化的阶段,
需要一次三次握手来建立链接,
之后客户端和服务端会依据初始的这个IP地址来通信。
从这个角度上来说,
想真正的伪装一个IP地址是不可能的。
因为即使从链路层把IP地址改了,
后续发出去的请求也回不来,
除非你只是想用来作为DDOS攻击,要不没什么意义。
所以要另辟蹊径。
代理转发规则
用过代理吧?
不管是VPN,还是局域网代理,
都是通过代理服务器转发客户端的消息到服务端。
这里就引出主角,一个在 Header里的字段
X-Forwarded-For,
很多地方简称 XFF。
XFF不是一个标准的HTTP协议,
但是它被广泛接受用作于标识代理转发的规则。
通常一个 XFF字段会像下面这样,
javascript
X-Forwarded-For: 127.0.0.1, IP2, ..., IP N
从左到右,
依次记录的是距离服务器距离远的代理服务器的IP。
通过这个字段,
服务端就能知道这个请求是通过哪些代理转发过来的了。
而有些服务端的bug在于,
他们不再关心这个请求的原始地址,而只关心最后那个转发给他的 IP N的代理。
正常来说,
应该把三次握手的 IP 作为 Remote IP记录,
以这个为客户端的唯一 IP,这样才是准确的。
实现
说了那么多理论,
下面来看看如何使用这个 XFF字段。
首先我们用 postman 模拟一个 HTTP 请求,看看返回的字段里携带的客户端信息是怎样的。
这里随意找了个服务器发了个模拟请求,
下面的 device字段不仅包含了 IP 地址,也包括了经纬度。
然后我们再人为的添加上 XFF 字段,
看看 device信息变成了什么。
看到了吗,
现在已经变成了一个假的位置。
伪造IP的技术实现方案
假设说你想伪造的是自己的app,
那么就简单的多了,只要在每个 http 请求的header里加上 XFF字段就可以。
如果是第三方app,
或者是你不想用侵入式的方法去修改 header的话,
可以考虑用 Xposed 框架来做这件事情。
---------------------
原文:https://blog.csdn.net/weixin_42063726/article/details/80402207
如何伪造IP(转)的更多相关文章
- PHP用curl伪造IP和来源
以前没有这么搞过. 今天群里一个朋友在问这个问题. 查了下,CURL确实很强悍的可以伪造IP和来源. 1.php 请求 2.php . 1.php代码: $ch = curl_init(); curl ...
- 【转】php curl 伪造IP来源的实例代码
curl发出请求的文件fake_ip.php: 代码 复制代码 代码如下: <?php $ch = curl_init(); $url = "http://localhost/targ ...
- php curl 伪造IP来源的代码分享
php curl 可以模仿用户登录,还可以模仿用户IP地址.伪造IP来源. 1,curl发出请求的文件fake_ip.php: <?php $ch = curl_init(); $url = & ...
- PHP用CURL或fsockopen伪造IP和来路(referer)
URL是一个利用URL语法规定来传输文件和数据的工具,支持很多协议,如HTTP.FTP.TELNET等.最爽的是,PHP也支持 CURL库. 我们可以用CURL来伪造IP和来路,例子:1.php 请求 ...
- 实验吧 貌似有点难 伪造ip
解题链接: http://ctf5.shiyanbar.com/phpaudit/ 解答: 点击View the source code —>代码显示IP为1.1.1.1即可得到KEY—> ...
- php curl 伪造IP来源的实例代码
来源:http://www.jb51.net/article/31694.htm curl 它不但可以模仿用户登录,还可以模仿用户IP地址哦,为伪造IP来源,本实例仅供参考哦 //伪造ip ; $i ...
- PHP获取IP地址的方法,防止伪造IP地址注入攻击
PHP获取IP地址的方法 /** * 获取客户端IP地址 * <br />来源:ThinkPHP * <br />"X-FORWARDED-FOR" 是代理 ...
- C# 用HttpWebRequest模拟一个虚假的IP伪造ip
有人会说:IP验证是在TCP层完成的,不是HTTP层完成的,如果伪造IP的话可能连TCP的三次握手都完不成.我这里说的不是完全意义的伪造.如果你使用透明代理上网,那么在透明代理发送给服务器端的HTTP ...
- [浪风推荐]CURL伪造IP和来源
给“刷票”的朋友提供了很好的换IP的方案,查了下,CURL确实很强悍的可以伪造IP和来源. 1.php 请求 2.php . 1.php代码: $ch = curl_init(); curl_seto ...
随机推荐
- DAL分页
using System;using System.Collections.Generic;using LModel.DTO;using Newtonsoft.Json;using System.Da ...
- Captcha服务(后续2)— 改造Captcha服务之Asp.Net Core项目中如何集成TypeScript
环境准备 .Net Core 版本:下载安装.Net Core SDK,安装完成之后查看sdk版本 ,查看命令dotnet --version,我的版本是2.2.101 IDE: Visual Stu ...
- 4. 带有延迟时间的Queue(DelayQueue)
package com.gf.conn013; import java.util.concurrent.DelayQueue; /** * DelayQueue: 带有延迟时间的Queue,其中的元素 ...
- SQL中# 与$ 的区别
区别: (1)#将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号.如:order by #user_id#,如果传入的值是id,则解析成的sql为order by "id&quo ...
- 搞懂 JavaScript 继承原理
在理解继承之前,需要知道 js 的三个东西: 什么是 JS 原型链 this 的值到底是什么 JS 的 new 到底是干什么的 1. 什么是 JS 原型链? 我们知道 JS 有对象,比如 var ob ...
- 如何打开iPhone 中的heic格式照片
苹果手机拍出来的heic照片相比常见的格式占存更小,但是在安卓和电脑上这种格式无法直接查看,那怎么在电脑上查看呢,需要将其转换格式就可以查看,关于如何打开iPhone 中的heic格式照片,下面即将为 ...
- Android为TV端助力 关于4.0之后不能直接获取SD卡外部存储路径的问题
Environment.getExternalStorageDirectory()是Android 2.x时代的产物,那时Android主流设备只有很小的内置存储器,然后都会外置一张sd卡,那时这个方 ...
- 自定义Progress小控件
progress各种各样的都有,自定义大多数也是简单的,根据业务需求来自己定义,记录一下,先上效果图 本来想找个第三方改改就上的,不过自己的业务需求有点不搭,一下子没找到合适的,也没这么多时间去找了, ...
- 探究高级的Kotlin Coroutines知识
要说程序如何从简单走向复杂, 线程的引入必然功不可没, 当我们期望利用线程来提升程序效能的过程中, 处理线程的方式也发生了从原始时代向科技时代发生了一步一步的进化, 正如我们的Elisha大神所著文章 ...
- Spring Ioc工作机制 初步
Spring IoC工作原理 Spring 启动时读取应用程序提供的Bean配置信息,并在Spring容器中生成一份相应的Bean配置注册表,然后根据这张注册表实例化Bean,装配好Bean之间的依赖 ...