简介burpFakeIP-master.zip 面向从事 Web 安全测试与渗透测试的安全研究员提供一款基于 Burp Suite 的 IP 伪装插件用于在发起请求时模拟不同源 IP从而隐藏真实身份、验证基于 IP 的访问控制策略或模拟多地区用户访问。资源包共 12 个文件以 9 张 png 界面与配置截图、1 个 py 脚本、1 个 txt 测试文件及 1 个 md 说明文档为主压缩包约 1.09MB体积轻量便于快速解压查阅。目前已有 413 人学习下载。借助截图可直观了解插件在 Burp Suite 中的加载与参数配置过程py 脚本与说明文档则帮助理解其实现思路与使用方式适合希望扩展 Burp 插件能力、研究请求源地址改写机制的安全从业者参考使用时须遵守法律法规并在授权范围内测试。1. 一个把伪造 IP 塞进 Burp 的小插件到底解决谁的痛点做渗透测试的人大概都遇到过这种场景目标站点对来源 IP 做了限制或者后台白名单只放行某几个网段你在本地怎么改请求头都绕不过去因为服务端校验的是 TCP 层的真实地址而不是你手写的X-Forwarded-For。这时候如果能在 Burp Suite 里直接伪造源 IP让经过代理的请求带上一个可控的地址很多测试就能继续往下走。burpFakeIP-master.zip 就是干这件事的——它是一个 Burp Suite 的 Java 插件编译打包后加载进 Burp在 Proxy 拦截的请求上做 IP 伪造处理。适合已经熟悉 Burp 基本操作、需要针对 IP 限制类逻辑做验证的安全从业者新手也能照着步骤装起来但得先搞清楚它的边界在哪别指望它万能。2. 插件原理与加载从 jar 包到 Burp 里的一个标签页2.1 它改的是什么不改的是什么先把预期摆正。这个插件的核心动作是在 Burp 的请求处理链路上介入对经过 Proxy 的 HTTP 请求做源地址相关的伪造处理。要理解它为什么有时管用有时不管用得区分两个层面应用层和网络层。应用层的东西比如X-Forwarded-For、X-Real-IP、Client-IP这些请求头服务端如果只是简单读取头部做判断那伪造头部就能生效这类需求其实用 Burp 自带的 Match and Replace 也能做插件在这里的价值是把规则集中管理、批量生效。网络层的东西比如服务端直接看 socket 的对端地址那任何应用层的头部伪造都没用插件也改不了 TCP 连接的真实源地址——它跑在 Burp 的扩展 API 里能碰的是请求对象不是网卡。所以这个插件的定位是把「伪造来源标识」这件事在 Burp 内部做成可配置、可开关、可批量应用的能力而不是一个网络层的地址欺骗工具。搞清这一点后面调参数和排查问题时就不会走偏。常见做法是把它当成请求头的批量注入器来用配合目标站点的实际校验逻辑去试而不是无脑打开就以为所有 IP 限制都能过。2.2 编译打包没有现成 jar 就自己 build下载下来的 burpFakeIP-master.zip 是源码包解压后是标准的 Java 工程结构通常带pom.xml或build.gradle。Burp 的扩展 API 依赖的是它自带的接口 jar编译时需要把 Burp 安装目录下的burp-extender-api.jar引入 classpath。以 Maven 工程为例先确认本机有 JDKBurp 扩展对 JDK 版本有要求老版本 Burp 用 JDK 8 比较稳新版本可以上 11 及以上具体看你的 Burp 版本。# 解压源码包 unzip burpFakeIP-master.zip cd burpFakeIP-master # 确认工程结构找构建文件 ls -la # 常见输出pom.xml src/ README.md # 如果工程里没有把 burp-extender-api 配进依赖手动装到本地仓库 # 路径按你本机 Burp 安装位置调整 mvn install:install-file \ -Dfile/path/to/BurpSuite/burp-extender-api.jar \ -DgroupIdnet.portswigger \ -DartifactIdburp-extender-api \ -Dversion2.3 \ -Dpackagingjar # 打包跳过测试加快速度 mvn clean package -DskipTests这段命令的逻辑是先解压看结构再把 Burp 的扩展 API jar 装进本地 Maven 仓库最后打包。参数上-DskipTests是因为这类小插件通常没写单测跑测试只会拖时间-Dversion填什么不重要只要和pom.xml里声明的依赖版本对得上就行。打包成功后产物在target/目录下文件名一般是burpFakeIP-version.jar或带-jar-with-dependencies后缀。这里有个血泪经验如果pom.xml里用了 shade 或 assembly 插件打胖包优先选带依赖的那个 jar否则加载时可能报NoClassDefFoundError。如果工程是 Gradle 的命令换成./gradlew build产物在build/libs/下逻辑一样。没有构建工具的老式工程就用javac手动编译再jar打包但这种情况少见多数源码包都带了构建文件。2.3 加载进 Burp 并确认生效打包出 jar 之后打开 Burp进 Extender 标签页Add 扩展类型选 Java指向刚打出来的 jar。加载成功的标志是 Extender 的 Output 或 Errors 里没有红色报错并且 Burp 主界面多出一个该插件的标签页或菜单项。如果加载后没反应先看 Errors 面板最常见的是 JDK 版本不匹配和 API 版本不匹配两类。Burp - Extender - Extensions - Add Extension type: Java Extension file: target/burpFakeIP-version.jar 加载后检查 - Extender - Errors 无异常堆栈 - 顶部出现插件对应 Tab - Proxy - Intercept 打开后请求能被插件处理加载这一步的坑在于 Burp 版本差异。新版 Burp 对扩展 API 有调整老插件直接加载可能报方法找不到反过来老版本 Burp 加载新编译的插件也可能不认。遇到这种情况要么换对应版本的 Burp要么改源码里的 API 调用。我一般会先在 Extender 里看加载日志的完整堆栈堆栈第一行的类名和方法名基本就指向问题所在比盲目换版本高效。3. 伪造规则怎么配请求头注入与拦截联动3.1 规则配置的字段与含义插件加载后配置界面通常围绕几个核心字段展开目标匹配决定对哪些请求生效、伪造的 IP 值填什么地址、注入位置请求头还是其他位置、开关状态。不同实现细节会有差异但思路一致。配置时最关键的是「目标匹配」这一项如果填得太宽所有经过 Burp 的请求都被改包括你访问 Burp 自身更新、访问其他测试目标的流量容易把无关请求搞乱填得太窄又可能漏掉真正要测的接口。常见做法是按 Host 或 URL 正则来限定范围只对目标域名生效。伪造的 IP 值建议用保留地址段比如127.0.0.1、10.x.x.x、192.168.x.x这类内网地址或者目标站点所在网段的地址具体填哪个取决于你要验证的校验逻辑。如果目标是验证「内网 IP 是否被信任」就填内网段如果验证「特定 IP 是否在白名单」就填那个 IP。别随手填公网地址一是没意义二是可能触发目标的风控。典型配置项字段名以实际插件为准 Match/Host: ^target\.example\.com$ Fake IP: 10.0.0.8 Header: X-Forwarded-For Enabled: true上面这段是配置思路的示意不是某个固定版本的字段名。参数说明Match用正则限定生效范围锚定首尾避免误匹配子域Fake IP填你要伪装的地址Header指定注入到哪个请求头如果插件支持多头部同时注入可以把X-Real-IP、Client-IP一起配上覆盖服务端可能读取的不同字段。这一步的玄学在于不同框架读的头部不一样Spring 系常看X-Forwarded-For有些网关看X-Real-IP还有看Forwarded标准头的多配几个总没坏处。3.2 和 Proxy 拦截配合的实操流程配好规则不等于生效得走一遍完整链路验证。流程是打开 Proxy 的 Intercept浏览器配好 Burp 代理访问目标站点在拦截到的请求上确认插件是否已经改写了头部。如果插件是在请求发出前自动处理你在 Intercept 里看到的应该已经是改写后的请求如果插件依赖手动触发就得在拦截界面点对应按钮。1. Proxy - Intercept - Intercept is on 2. 浏览器访问目标 URL 3. 在拦截到的请求里检查头部 X-Forwarded-For: 10.0.0.8 4. 放行请求在 HTTP history 里回看确认 5. 对比关闭插件时的请求确认差异只出现在预期头部这段流程的价值在于建立对照。很多人配完规则直接放行看到响应正常就以为生效了其实可能插件根本没匹配上请求原样发出去了。正确做法是开一次关一次对比 HTTP history 里两条请求的头部差异差异符合预期才算配置成功。如果开了插件但头部没变回到上一节的匹配规则排查八成是正则没匹配上 Host。3.3 用 Repeater 做单请求验证Proxy 拦截适合看批量流量单点验证用 Repeater 更干净。把一条请求发到 Repeater改好头部反复发送看响应变化。这里要注意Repeater 里手动改的头部和插件自动注入的头部可能叠加验证插件效果时最好先关掉手动修改只看插件注入的结果。操作顺序 HTTP history 右键 - Send to Repeater Repeater 中确认插件注入的头部存在 修改 Fake IP 值重发观察响应差异 记录哪些 IP 值触发了不同响应白名单命中/拒绝/报错参数层面Repeater 里重点观察的是响应状态码和响应体里的提示信息。如果换 IP 后响应从 403 变成 200说明伪造生效且命中了信任逻辑如果响应完全没变要么插件没生效要么服务端根本不看这个头部。这一步是判断「插件有没有用」的最快方式比在 Proxy 里翻历史记录高效得多。4. 避坑与排查五条踩过的记录4.1 加载报 NoClassDefFoundError现象Extender 里加载 jar 后立刻报错堆栈里有NoClassDefFoundError插件标签页出不来。原因打出来的是瘦包依赖的第三方库没打进去Burp 的 classloader 找不到对应类。解决改用 shade/assembly 插件打胖包或者把缺失的依赖 jar 一起放进 Burp 的扩展加载路径。判断方法很简单看报错里缺的类名是不是工程pom.xml里声明的依赖是的话就是打包问题。4.2 插件加载成功但请求头没变化现象Extender 无报错插件界面也在但拦截到的请求头部原封不动。原因匹配规则没命中最常见的是 Host 正则写错比如带了端口号没处理或者用了.*之外的写法导致大小写不匹配。解决把匹配规则临时放宽到.*测试确认插件本身工作正常再逐步收紧到目标 Host。另外检查插件是否处于启用状态有些实现默认关闭需要手动打开开关。4.3 改了 IP 但服务端行为不变现象头部确实注入了伪造 IP但目标响应和没改一样。原因服务端校验的不是这个头部或者校验发生在更底层。比如某些框架只信任来自可信代理的X-Forwarded-For你从本地直接发它认为不可信就忽略还有的直接看 socket 地址应用层头部完全不参与判断。解决先确认目标技术栈读哪个头部用 Repeater 逐个头部试如果所有头部都无效基本可以判定是网络层校验这个插件帮不上忙得换思路。4.4 伪造 IP 触发风控或封禁现象测试过程中目标开始返回 403、验证码或者直接断开连接。原因伪造的 IP 值命中了目标的风控规则比如填了公网地址被识别为异常来源或者短时间内大量不同 IP 请求触发频率限制。解决只用保留地址段做测试控制请求频率验证完及时关掉插件。血泪经验是别拿生产环境的目标做高频伪造测试容易把测试账号甚至出口 IP 搭进去。4.5 Burp 版本升级后插件失效现象换了新版 Burp原来能用的插件加载报错或功能异常。原因Burp 扩展 API 在新版本里有变动老插件调用的接口签名变了。解决回退到插件适配的 Burp 版本或者改源码适配新 API。改源码时重点看报错堆栈指向的方法对照新版 API 文档调整参数类型和返回值。没有后悔药升级前先在测试环境验证插件兼容性别在生产测试机上直接升。5. 进阶把伪造逻辑做成可复用的验证套路插件本身不复杂真正有价值的是把它嵌进一套可复用的验证流程里。我一般的做法是针对每个有 IP 限制逻辑的目标先建一个配置快照记录匹配规则、伪造 IP 值、注入的头部列表验证通过后存档。下次遇到同类目标直接套用快照改 Host 就行省去重新试头部的时间。这个习惯来自一次翻车——当时在一个目标上试了七八种头部组合才找到生效的那个结果换了个目标全忘了又从头试一遍。更进一步可以把「哪些 IP 值触发了什么响应」做成一张对照表验证时按表推进而不是随机填值。比如下面这种记录方式伪造 IP 值注入头部响应状态响应特征结论127.0.0.1X-Forwarded-For200正常页面本机地址被信任10.0.0.8X-Forwarded-For200正常页面内网段被信任203.0.113.5X-Forwarded-For403拒绝访问公网地址被拦10.0.0.8X-Real-IP403拒绝访问该头部不被读取这张表的作用是把「试」变成「有据可查地试」。填值的时候优先用文档保留段10.0.0.0/8、172.16.0.0/12、192.168.0.0/16、127.0.0.0/8这些地址不会真的指向外部主机测试时不会误伤。注入头部按目标技术栈的常见读取顺序排先X-Forwarded-For再X-Real-IP再Client-IP最后试标准的Forwarded。每换一个头部就重发一次记录响应别一次改多个变量否则出了问题不知道是哪个改动导致的。还有一个容易被忽略的点验证完记得把插件关掉或者把规则禁用。有次测试完忘了关后面正常浏览其他站点时请求全被注入了伪造头部虽然没造成实际影响但排查了半天才想起来是插件没关。从那以后我每次结束测试都强制走一遍「关插件、清规则、看 HTTP history 确认无残留注入」的收尾流程这个习惯帮我省了不少莫名其妙的排查时间。希望帮到你。本文还有配套的精品资源点击获取
企业数字化 ERP 产品动态
相关推荐
OPNET实现OSPF多区域协议行为建模与量化验证 简介:本资源是基于OPNET 14.5平台完成的计算机网络仿真实验作业,面向高校网络工程、通信工程等专业本科生及仿真初学者,聚焦OSPF动态路由协议的核心机制验证与实践。内容严格对应《计算机网络仿真OPNET实用指南》(机械工业出版社&… · 2026/11/3 15:33:54
C#监听ARP包实时检测局域网IP冲突 简介:本资源是一个基于C#开发的局域网ARP包抓取与分析工具,面向网络运维人员、C#初学者及网络安全实践者,用于快速发现局域网内活跃设备并精准识别IP地址冲突主机。项目采用SharpPcap库实现底层ARP数据包捕获,封装为可复用的C#类&… · 2026/11/3 19:10:32
Spark 3.2.0预编译包部署与Standalone/YARN提交调优实战 简介:spark-3.2.0-bin-hadoop3.2.tgz 是面向大数据开发、数据分析与机器学习实践者的 Spark 3.2.0 预编译发行包,适配 Hadoop 3.2 环境,可用于快速搭建本地或集群实验环境、运行官方示例并查阅源码与配置。压缩包共 1476 个文件,约… · 2026/11/3 13:38:46
选择性重建记忆:如何给大模型装上真正的长期记忆 我们的对话应用跑得越久,越能感觉到大模型记忆这件事被严重低估了。上下文窗口再大,塞满之后照样失忆;RAG 接上去,向量库检索出来的又是一段段割裂的原文,离"懂事"差着十万八千里。最近在 Hacker News 上看到… · 2026/11/4 18:32:53
解决IntelliJ IDEA中mapper.xml绿色背景问题 1. 问题现象与背景解析作为一名长期使用IntelliJ IDEA进行Java开发的程序员,我经常遇到mapper.xml文件中出现大面积绿色背景的问题。这种视觉干扰不仅影响代码阅读体验,还会分散开发注意力。经过多次实践和排查,我发现这是IDEA对XML文件中SQL… · 2026/11/4 18:32:53
C# WinForm 桌面日程提醒器:定时检查与倒计时实现 简介:这份资源是一套基于C#与WinForms开发的日程提醒器完整源码工程,面向具备一定C#基础、希望借助桌面小项目巩固WinForms界面设计与事件驱动编程的开发者。项目围绕事件添加、列表查看、提醒开关、倒计时显示与弹窗通知等核心功能展开,涵盖… · 2026/11/4 18:32:53
FPGA上CORDIC实现sin/cos:从定点设计到上板验证 第一次把 CORDIC 的 Verilog 代码烧进 FPGA,我盯着逻辑分析仪的采样窗口看了很久——输入角度线性扫过去,cos 输出确实是一条余弦曲线,但峰值位置比离线脚本算出来的偏了将近两个采样点,零点附近还带着一层说不清的台阶。那时候我才明白,三角函数在 FPGA 里从来不是… · 2026/11/4 18:31:52
动态地理围栏技术提升本地商户到店转化率实战 1. 项目背景与核心价值在本地生活服务领域,精准触达目标客群始终是商家最核心的诉求。过去三年间,我们团队为237家本地商户提供数字化解决方案时发现:超过68%的线下门店虽然线上曝光量可观,但实际到店转化率不足12%。问题根源在于… · 2026/11/4 18:31:52
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 3:16:49
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 6:59:29
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 7:02:38
AI辅助技术栈评估:提升研发决策效率60% 1. 项目背景与核心价值技术决策一直是研发团队面临的重大挑战。随着技术生态的快速演进,技术栈的选择、维护和迭代变得愈发复杂。我们团队在过去两年里,先后经历了三次重大技术栈迁移,每次都需要投入大量人力进行技术评估和风险分析。直到去年… · 2026/11/4 0:00:17
从生成Token到直接决策:Jev如何重塑AI Agent工程实践 1. 从"生成文字"到"拍板决策":Jev 到底在解决什么问题大多数人第一次接触大模型,脑子里建立的模型是"输入问题、输出文字"。你问它今天天气怎么样,它给你一段描述;你让它写个周报,它给你… · 2026/11/4 0:00:17
32G统一内存跑大模型:内存账、TPS实测与端云分流 想在一台 32G 统一内存的小主机上把大模型跑成"日常可用",这件事我前后折腾了小半年。标题里说的这台 Mac mini M6,是我们这次讨论的目标平台,具体到手规格以实物为准;但下面这套推算方法和实测思路,对任何统… · 2026/11/4 0:00:17
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 3:16:49
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 6:59:29
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 7:02:38