需求来源:

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. PAT——1056. 组合数的和

    给定N个非0的个位数字,用其中任意2个数字都可以组合成1个2位的数字.要求所有可能组合出来的2位数字的和.例如给定2.5.8,则可以组合出:25.28.52.58.82.85,它们的和为330. 输入 ...

  2. php版本低更换php版本-问题以解决

    Parse error: syntax error, unexpected 'class' (T_CLASS), expecting identifier (T_STRING) or variable ...

  3. VC中TRACE ASSERT VERIFY之用法

    一.TRACE宏     当选择了Debug目标,并且afxTraceEnabled变量被置为TRUE时,TRACE宏也就随之被激活了.但在程序的Release版本中,它们是被完全禁止的.下面是一个典 ...

  4. Page Object 设计模式-PO

    1.传统测试用例实现的弊端: 易读性差 复用性差 可维护性差 扩展性差 2.PO 设计模式图: 3.Page Object 的核心要素: 抽象封装一个 BasePage 基类,基类应该拥有一个只想 w ...

  5. Python 学习笔记(十四)Python类(三)

    完善类的内容 示例: #! /usr/bin/env python # coding =utf-8 #通常类名首字母大写 class Person(object): """ ...

  6. Oracle分析函数巧妙使用

    在 Oracle中使用Sql必须弄懂分析函数 Oracle开发专题之:分析函数(OVER) 1 Oracle开发专题之:分析函数2(Rank, Dense_rank, row_number) 6 Or ...

  7. 苹果IPad客户端安装测试软件

    背景: 公司在开发一个App应用,需要部署在苹果IPad上进行测试,但是我负责后端开发对安装及测试相关流程不了解.经过一番学习得出以下结论: 1. 首先申请一个苹果的开发账号(一千块左右),大约能注册 ...

  8. Python绘制奥运五环

    绘制奥运五环主要涉及到Python中的turtle绘图库运用: turtle.forward(distance) 向当前画笔方向移动distance像素长度 turtle.backward(dista ...

  9. 在TextBrowser显示中,如何让最新的数据永远出现在第一行或者是在窗口的最后显示信息

    这是第一行,但是随着数据的增多,最新的数据就会在末尾显示,然后就看不到了.可以用 main_ui->ReceiveDatatextBrowser->insertPlainText(strD ...

  10. C++笔记020:const 和 #define 的对比

      原创笔记,转载请注明出处! 点击[关注],关注也是一种美德~ 第一,const与#define的相同点 C++中的const常量类似于宏定义 const  int  c = 5  ≍  #defi ...