隨身Wifi+win7 搭建http代理 域名劫持 抓包 內容篡改實驗環境

需求來源:nginx

       1.平板或手機是個封閉系統沒法給wifi設置代理瀏覽器

       2.須要利用filllder進行抓包,內容篡改等實驗服務器

擁有硬件資源:PC機器 + 小米隨身wifiapp

方案1: NtBind Dns + Nginxsocket

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

部署圖:網站

說明:spa

1.由於小米wifi與本地網卡是底層共享,設置PC機本地host和在MiWifi上設置DNS都沒有任何效果,因此只能在本地網卡上作文章操作系統

2.本地網卡上設置IPv4的首選DNS是127.0.0.1 指向本地DNS服務器.net

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  80;
         charset utf-8;
         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   90;
            proxy_read_timeout     90;
            proxy_send_timeout    90;
            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知足了個人原始需求能夠支持我進行問題定位,所以此方案未進行驗證,不排除還有其餘不可行的因素在其中

相關文章
相關標籤/搜索