需求来源:

1.平板或手机是个封闭系统无法给wifi设置代理

2.需要利用filllder进行抓包,内容篡改等实验

拥有硬件资源:PC机器 + 小米随身wifi

方案1: NtBind Dns + Nginx

基本原理:域名劫持 +  反向代理 + 正向代理

部署图:

说明:

1.因为小米wifi与本地网卡是底层共享,设置PC机本地host和在MiWifi上设置DNS都没有任何效果,所以只能在本地网卡上做文章

2.本地网卡上设置IPv4的首选DNS是127.0.0.1 指向本地DNS服务器

3.NtBind DNS是在Win7操作系统上搭建的本地DNS服务,具体配置参考链接:

在Windows7 系统上部署DNS服务器http://blog.csdn.net/hyman_c/article/details/53560891

按照博文中的链接,在安装NiBind时并不需要另外安装dll文件,整个过程都很顺畅

按照博文中为链接,当某些郁闷本地DNS中没有配置时,就从配置的DNS服务器中同步拉取,这部分拓扑图略

4.NtBind DNS中可以将所有需要劫持的域名都指向本地:127.0.0.1

5.Nginx上对劫持域名进行反向代理,代理到本地fillder端口(如果某些接口需要访问本地开发环境的服务,可以直接指向本地开发服务提供的接口)

6.fillder上可以对反代过来的请求进行重新host,访问外网真实服务器,这个host文件仅对fillder有效,会覆盖NtBind DNS的域名解析

附录Nginx配置,这是对sohu网站的配置:

server {
listen ;
charset utf-;
server_name m.tv.sohu.com;
location / {
proxy_store off;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass $scheme://127.0.0.1:8888;
proxy_connect_timeout ;
proxy_read_timeout ;
proxy_send_timeout ;
proxy_next_upstream http_500 http_502 http_503 http_504 error timeout invalid_header;
}
}

注意事项:

1.因为是本地网卡DNS配置,不仅会影响Pad的访问,同时也会影响本机浏览器的访问,在实验结束,为了不影响工作,需要将本地DNS改回原有的

2.此方案仅针对http代理访问有效,https因为客户端对证书的严格检查等因素,次方案基本不会奏效

-------------------------------------------------------------------------方案1 改良版-------------------------------------------------------------------------------------------

采用方案1,一直纠结的点在于     怎么在不安装多余app的情况下(因为平板是封闭系统), 篡改平板上域名解析后的地址,让这个请求被fillder代理

                  经过测验,可以为平板上WIFI访问设置静态IP,手动配置DNS即可。这样的话,如果当前环境拥有其他无线路由器(公共WIFI)也能访问

                  到本机DNS,那么即使不用小米随身wifi也能满足我的需求(当前公司环境就是如此)

配置静态IP

       静态地址:就使用未修改前DHCP分配的那个IP(这样能有效避免IP冲突)

       路由器地址:如果不知道,可以用自己手机安装Ping & DNS 工具,然后连接公共WIFI,查看Network Info,Gateway 项就是路由器地址

     前缀长度:默认24位

     域名:这里就配置我们自己搭建的DNS地址

注意事项:

1.该方案因为没有改变PC机本地网卡的DNS,因此不影响正常办公,同时也不需要在fillder中再进行单独host

2.因为公共wifi过来的IP不一定是192网段,所以建议在配置Bind DNS时在named.conf中为allow-query配置为any 即不做IP限制

改良后的部署图:

方案2 : 在方案1的基础上去掉nginx反向代理,将fillder的代理端口改为80端口即可

基本原理:域名劫持 +  正向代理

说明:

1.因为本机需要开启nginx进行开发调测占用80端口,所以舍弃了该方案

方案3 : NtBind Dns + Htran

基本原理:域名劫持 +  正向代理 + 正向代理

部署图:与方案1类似,只是将其中的Nginx用Htran取代

说明:

1.该方案可以满足80端口被占用的情况下,也能用fillder进行抓包

2.域名劫持 +  端口转发(正向代理)可以解决不仅限于http的数据,同时可以对socket进行代理,适宜于解决移动终端不能设置代理服务器的情况下的上网问题

3.此方案可以把80 443的接口都转发到fillder代理上,可以对非严格校验的https请求进行抓包解密,信息篡改

4.此方案对采用了httpDNS的移动应用会存在失效的情况

5.因为目前方案1满足了我的原始需求可以支持我进行问题定位,因此此方案未进行验证,不排除还有其他不可行的因素在其中

随身Wifi+win7 搭建http代理 域名劫持 抓包 内容篡改实验环境的更多相关文章

  1. python爬虫(3)——用户和IP代理池、抓包分析、异步请求数据、腾讯视频评论爬虫

    用户代理池 用户代理池就是将不同的用户代理组建成为一个池子,随后随机调用. 作用:每次访问代表使用的浏览器不一样 import urllib.request import re import rand ...

  2. Android抓包方法(三)之Win7笔记本Wifi热点+WireShark工具

    Android抓包方法(三) 之Win7笔记本Wifi热点+WireShark工具 前言 做前端测试,基本要求会抓包,会分析请求数据包,查看接口是否调用正确,数据返回是否正确,问题产生是定位根本原因等 ...

  3. 平板不能设置代理的情况下利用随身wifi进行http代理访问

    需求来源:平板或手机是个封闭系统无法给wifi设置代理,需要利用filllder进行抓包,内容篡改等实验 拥有硬件资源:PC机器 + 小米随身wifi 方案1: NtBind Dns + Nginx ...

  4. 360随身wifi无法使用临时解决方案大全

       360随身wifi在绝大多数情况下都是可以正常使用的,但在极少数系统或网络环境下可能会出现异常,如系统服务缺失.公司网络限制.少数校园网客户端限制等等:       360攻城师正在积极努力解决 ...

  5. 全面了解移动端DNS域名劫持等杂症:原理、根源、HttpDNS解决方案等

      1.引言 对于互联网,域名是访问的第一跳,而这一跳很多时候会“失足”(尤其是移动端网络),导致访问错误内容.失败连接等,让用户在互联网上畅游的爽快瞬间消失. 而对于这关键的第一跳,包括鹅厂在内的国 ...

  6. 转:禁止360随身wifi驱动自动安装

    from:http://bbs.360safe.com/thread-2643500-1-1.html 有曾经数次卸载随身wifi后,插上又会自动安装随身wifi驱动的,也可以看看下面的解决办法. 卸 ...

  7. 360随身wifi隐藏ssid方法

    360随身wifi隐藏ssid方法 以win7为例,介绍如何隐藏360随身wifi ssid方法 一.    禁止360随身wifi官方驱动自启动方法: 1. 找到360wifi自启动文件: 进入以下 ...

  8. Win7搭建nginx+php+mysql开发环境以及websocket聊天实例测试

    Win7搭建nginx+php+mysql开发环境以及websocket聊天实例测试一.下载相关安装包 1.下载nginx最新版本(nginx1.3.13版之后才支持websocket协议) 下载地址 ...

  9. 360随身WIFI程序单文件绿色版及网卡驱动(附使用感受)

    大家好,我是Colin,今天刚收到传说中的360WIFI,拿到手后马上就进行了测试.就做工而言,19.9的价格算是比较公道的,网卡很小,做工还可以,带磨砂质感,而且还提供了一个耳机插头,可以当挂件一样 ...

随机推荐

  1. Reading SBAR SDN flow-Based monitoring and Application Recognition

    概要 在sdn下,控制平面基于网络测量的的数据控制网络,而细粒度的管理得益于细粒度的测量数据.针对sdn环境下的细粒度测量(识别具体应用程序),可以实现对细粒度的流量管控. 设计了识别系统SBAR,对 ...

  2. 使用mongodb提供的dotnet core sdk进行地理位置运算

    mongodb提供地理位置运算功能,比较常用的场景比如,先判断用户所在的街道,然后看看街道附近有啥餐厅,然后算算用户与餐厅的距离什么的,官网里提供了比较详细的demo介绍不同api的用法 此处记录下d ...

  3. Java并发编程(七)终结线程

    线程的状态 一个线程会有如下五个状态 1.新建:线程在被创建时会暂时处于这种状态,此时系统为线程分配资源并对其进行初始化 2.就绪:此时线程已经可以运行,只是系统没有为其分配CPU时间. 3.运行:系 ...

  4. bfs,队列

    bfs bfs=队列 队列的操作 头文件 #include<deque> 声明方法: 1.普通声明 queue<int>q; 2.结构体 struct node { int x ...

  5. e.currentTarget与e.target

    e.currentTarget指的是注册了事件监听器的对象,而e.target指的是该对象里的子对象   html中 <div id="addBtn" v-on:click= ...

  6. opacity(透明度)属性设置

    1.opacity:是属性,整个元素包含子元素全部都会透明,取值范围0-1; 2.background-color:rgba(0,0,0,.5)rgba是值,用于背景,取值范围0-1. 补充:a-al ...

  7. Homebrew(brew)安装MySQL成功后无法登录

    Homebrew简称brew,OSX上的软件包管理工具,在Mac终端可以通过brew安装.更新.卸载各种软件,(简直就是神器级武器). 废话不多说,没安装brew自己去百度学习安装,这里就不多说了. ...

  8. Linux单用户CS模型TCP通讯完全注释手册

    Linux单用户CS模型TCP通讯完全注释手册 server 描述 实现一个简单的Linux单用户CS通讯,客户端发送一串字符串,服务器将其转换为大写后返回. server 代码 ``` #inclu ...

  9. ARMCC中$Super$$和$Sub$$的使用

    代码: extern int $Super$$main(void); /* re-define main function */ int $Sub$$main(void) { rt_hw_interr ...

  10. 移植触摸屏驱动到linux3.4.2

    1. 修改drivers/input/touchscreen/下的Makefile #obj-$(CONFIG_TOUCHSCREEN_S3C2410) += s3c2410_ts.o obj-$(C ...