Node抓包工具AnyProxy的小体验

2018-12-18 09:19:45


参考地址  Node抓包工具AnyProxy的小体验



安装AnyProxy

全局安装AnyProxy模块


npm i -g anyproxy

1



配置

生成证书


anyproxy-ca

1



以代理https的方式启动


anyproxy -i

1



在浏览器打开链接


http://localhost:8002/

1



安装证书

配置代理

用的是Charles,具体可以参考网上其他文章,当然这个我后来也没配置,直接在手机的代理设置好PC的IP和默认的8001端口就可以了


PC端

本地双击直接安装rootCA.crt


C:\Users\Administrator\.anyproxy\certificates\rootCA.crt

1

手机端

扫描http://localhost:8002/界面下的RootCA二维码下载到手机 

- 在手机直接安装证书(但有可能提示:无法安装该证书 因为无法读取) 

- 打开设置->更多设置->系统安全->从存储设备(SD卡)安装->选择文件(有可能会提示警告,或者要你设置密码才能安装)


这里有一点要注意,如果是IOS10+,安装完证书之后要在设置->通用->关于本机->证书信任设置,打开对应的针对根证书启用完全信任,才可以抓包成功


定义规则

新建rule.js文件


module.exports = {

    summary: 'a rule to hack response',

    * beforeSendResponse(requestDetail, responseDetail) {

        if (requestDetail.url === 'http://httpbin.org/user-agent') {

            const newResponse = responseDetail.response;

            newResponse.body += '- AnyProxy Hacked! Wscats Test~';

            return new Promise((resolve, reject) => {

                setTimeout(() => { // delay

                    resolve({

                        response: newResponse

                    });

                }, 5000);

            });

        }

    },

};

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

在终端执行一下命令,在手机端打开http://httpbin.org/user-agent链接测试,代理https请求记得加上--intercept参数


anyproxy --intercept --rule rule.js

1



然后在浏览器打开链接http://localhost:8002/可以看到页面会有一下内容,证明配置规则成功


{

  "user-agent": "Mozilla/5.0 (Linux; U; Android 6.0.1; zh-cn; Redmi 4A Build/MMB29M) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/53.0.2785.146 Mobile Safari/537.36 XiaoMi/MiuiBrowser/9.3.10"

}

- AnyProxy Hacked! Wscats Test~

1

2

3

4


  • 2018-01-17 15:58:16

    java实现定时任务的三种方法

    在进行多线程编程中,比较重要也是比较困难的一个操作就是如何获取线程中的信息。大多数人会采取比较常见的一种方法就是将线程中要返回的结果存储在一个字段中,然后再提供一个获取方法将这个字段的内容返回给该方法的调用者。如以下的ReturnThreadInfo类:

  • 2018-01-18 11:26:53

    浅谈js运行机制(线程)

    从开始接触js时,我们便知道js是单线程的。单线程,异步,同步,互调,阻塞等。在实际写js的时候,我们都会用到ajax,不管是原生的实现,还是借助jQuery等工具库实现,我们都知道,ajax可以实现局部刷新,并且在请求处理时,任然可以响应用户的操作,比如点击事件。不是说js是单线程吗?这些都是怎么实现的? 在阅读《深入理解Bootrap的源码》一书,在分析轮播组件(carousel.js)的源码时,作者对一句代码操作的注释引起了我的兴趣。

  • 2018-01-18 17:41:05

    Fatal error: Class 'Memcached' not found

    从别地方复制来了新的配置文件,包了这样的错误,因为我也是刚刚安装了php7,以为是php的问题,于是就根据网上的提示,安装memcached.dll包。