anyproxy抓取移动http、https请求

windows下安装AnyProxy抓取移动App Http请求
AnyProxy是阿里巴巴基于 Node.js 开发的一款开源代理服务器。做为中间代理服务器,它可以收集所有经过它的http请求流量(包括https明文内容);它提供了友好的web界面,便于直观的查看经过它的http请求;同时它支持二次开发,可以用javascript控制整个代理的全部流程,便于前端调试和收集http请求页面内容。它可以用于移动app和移动web页面调试、 抓取。
一、实验环境:操作系统:
Windows 10 X64位      AnyPorxy版本: 3.10.4
二、安装Node.js:
从Node.js官网 官网下载最新版或者稳定版Node.js的msi文件后,双击安装,知道安装完成即可  
三、安装和启动AnyProxy:
1、安装AnyProxy:  
安装好Node.js后,在windows的命令提示符中输下面命令安装AnyProxy,耐心等待直到安装完成:
npm install -g anyproxy
2、生成根证书(RootCA):
https需要证书才能以明文的方式显示请求内容,所有这里我们必须生成根证书。在cmd命令提示符中运行下面命令生成根证书
anyproxy --root
3、启动AnyProxy代理监听服务:  
通过”anyproxy -i“命令启动代理监听,其中”-i“参数启用https请求内容解析。
anyproxy -i
通过上面命令启动AnyProxy代理监听服务服务后,AnyProxy会打开两个端口:
* 8001端口:即代理服务端口, 本机的IP和8001用于设置代理,如:192.168.0.119:8001
* 8002端口:AnyProxy的web界面,通过浏览器打开http://192.168.0.119:8002的形式,即可查看所有经过AnyProxy代理的http请求。
四、设置代理(手机端):
1、安装证书  
我们需要在被代理的手机上安装证书,这样在AnyProxy上才能以明文的方式查看https请求内容。在手机上安装证书有两种方式:
1. 直接在手机浏览器中打开"http://ip:8002/fetchCrtFile"(IP换成安装AnyProxy机器的IP)
2. 在安装AnyProxy主机上打开”http://localhost:8002/qr_root“,然后用微信 扫描二维码,再通过微信在浏览器中打开的方式安装证书(必须在微信中跳转到浏览器中打开,否则弹不出安装证书对话框)。
2、设置代理(以ios举例):
在手机wifi设置中,手动设置http代理,在服务器中输入安装上面的代理IP,端口输入8001,保存即可。这样在此手机上所有的http请求(包括Web站点和收集app,如微信中的http请求),都会通过AnyProxy代理。在安装AnyProxy的电脑上,打开”http://localhost:8002”,即可看到所有被代理的http请求。
5,二次开发:
1,获取相关文档:
github上下载anyproxy开发代码样例                https://github.com/alibaba/anyproxy
下载开发文档:                                                   http://anyproxy.io/4.x/
2,阅读anyproxy开发样例代码:     
The following are sample rules.* rule__blank.js* blank rule file with some comments. You may read this before writing your own rule file.* 空白的规则文件模板,和一些注释
* rule_adjust_response_time.js* delay all the response for 1500ms* 把所有的响应延迟1500毫秒
* rule_allow_CORS.js* add CORS headers to allow cross-domain ajax request* 为ajax请求增加跨域头
* rule_intercept_some_https_requests.js* intercept https requests toward github.com and append some data* 截获github.com的https请求,再在最后加点文字
* rule_remove_cache_header.js* remove all cache-related headers from server* 去除响应头里缓存相关的头
* rule_replace_request_option.js* replace request parameters before sending to the server* 在请求发送到服务端前对参数做一些调整
* rule_replace_response_data.js* modify response data* 修改响应数据
* rule_replace_response_status_code.js* replace server's status code* 改变服务端响应的http状态码
* rule_reverse_proxy.js* assign a specific ip address for request* 为请求绑定目标ip
* rule_use_local_data.js* map some requests to local file* 把图片响应映射到本地
View Code
* rule_replace_response_data.js
* modify response data
* 修改响应数据
以此为例开发属于自己的js
3,开发js:
1,新建一js文件,参考rule_replace_response_data.js,添加逻辑,获取想要的信息。
下面附上简单的simple.js,实现将服务端返回的数据保存到本地文件中。    
 1 var fs = require('fs');
 2 var locallist = 'anyproxy_data/test.txt';   //提前在本代码路径下新建anyproxy_datawen文件夹
 3 module.exports = {
 4     // 功能描述
 5     summary: function() {
 6         return "get data from ***";
 7     },
 8     replaceServerResDataAsync: function(req,res,serverResData,callback){
 9     // 匹配接口,将返回的数据写入anyproxy_data/locallist.txt下
10     if (req.url.indexOf(/html/i.test') === 0) {
11        var newDataStr = serverResData.toString();
12        fs.appendFile(locallist, newDataStr + '\n', 'utf8', function(err) {
13             if(err) {
14                console.log(err);
15              }
16     })
17        callback(newDataStr);
18     }
19     else{
20         callback(serverResData);
21         }
22     }
23 };
4,运行:
anyproxy --rule ./rule_sample/simple.js       (rule后面是js的路径)
anyproxy -i --rule ./rule_sample/simple.js       (rule后面是js的路径,-i是监听https请求)
5,验证:
在手机上发送simple中要求匹配的路径请求,查看anyproxy_data文件夹下面是否都txt文件产生

转载于:https://www.cnblogs.com/youzi-zaitaxiang/p/7390437.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/369628.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Windows 10 IoT Core 17101 for Insider 版本更新

除夕夜,微软发布了Windows 10 IoT Core 17101 for Insider 版本更新,本次更新只修正了一些Bug,没有发布新的特性。已知的问题: F5 driver deployment from Visual Studio does not work on IoT Core.F5 application deployment of headed f…

Spring Batch中的块处理

大数据集的处理是软件世界中最重要的问题之一。 Spring Batch是一个轻量级且强大的批处理框架,用于处理数据集。 Spring Batch Framework提供了“面向TaskletStep”和“面向块”的处理风格。 在本文中,将解释面向块的处理模型。 此外,绝对建…

type=file文件上传H5新特性

1、语法 <input name"myFile" type"file"> 2、属性&#xff08;以下三个仅 HTML5支持&#xff0c;因此存在兼容性问题&#xff09;&#xff08;1&#xff09;multiple &#xff1a;表示用户是否可以选择多个值。multiple只能用于typefile和typeemail…

epoll学习

一、epoll_create #include <sys/epoll.h>int epoll_create(int size); int epoll_create1(int flags); 返回&#xff1a;成功非负文件描述符&#xff0c;-1出错size:内核监听数目一共多大 创建一个epoll接口&#xff0c;size参数和select不同&#xff0c;不是fd1&#x…

background使用

background-position 有两个参数&#xff0c;定义背景图片起始位置可选值有&#xff1a; center top left right bottom px % background-size 可以用 px % 设定其宽高 值 cover 完全覆盖背景区域 contain 适应背景区域 background-origin 背景图片可以放置于 content-bo…

java牛客排序算法题_《剑指offer》面试题28:字符串的排列(牛客网版本) java...

输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。输入描述: 输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。这里尤其需要注意2点&#xff1a;1.所有组…

前端之bootstrap模态框

简介&#xff1a;模态框&#xff08;Modal&#xff09;是覆盖在父窗体上的子窗体。通常&#xff0c;目的是显示来自一个单独的源的内容&#xff0c;可以在不离开父窗体的情况下有一些互动。子窗体可提供信息、交互等。 Modal简介Modal实现弹出表单Modal实现删除提示框其他用法…

js方式调用php_举例说明JS调用PHP和PHP调用JS的方法

举例说明JS调用PHP和PHP调用JS的方法在学习任何一门编程语言&#xff0c;我们都会听到调用这个词&#xff0c;那么&#xff0c;在javascript中是如何调用php的呢&#xff1f;在php中也可以调用js吗&#xff1f;下面就让我们一起来看看吧。1、JS方式调用PHP文件并取得PHP中的值举…

如何在Hexo中实现自适应响应式相册功能

用最清晰简洁的方法整合一个响应式相册效果 技术选型 由于我选用的主题使用了fancyBox作为图片弹出展示的框架&#xff0c;查看后表示很不错&#xff0c;能满足需要http://fancyapps.com/fancybox/3/图片加载可能会太慢&#xff0c;所以还需要一个图片延迟加载插件 Lazyload想使…

适用于MongoDB和Mongometer的SpiderMonkey至V8

通过10gen将MongoDB 2.3 / 2.4的默认JavaScript引擎从SpiderMonkey切换到V8&#xff0c;我想我将借此机会使用mongometer比较这些发行版的相对性能。 作为安全专家&#xff0c;我真的应该首先研究“ 其他身份验证功能” ……嘿。 我将记录比较过程中所采取的步骤&#xff08;包…

百度联盟广告如何理解按父容器宽度

创建百度联盟广告位的时候&#xff0c;选择按父容器宽度展示&#xff0c;但是在加入之后&#xff0c;查看代码发现广告的宽度为页面的宽度&#xff0c;并不是希望的父级的宽度&#xff0c; 如图在这里查看&#xff1a; 解析&#xff1a;百度联盟广告自动生成的div按父级的div宽…

php中文字转,PHP文字转图片功能原理与实现方法分析

本文实例讲述了PHP文字转图片功能。分享给大家供大家参考&#xff0c;具体如下&#xff1a;这项功能主要用于对邮箱地址、手机等可能被网络爬虫抓取的重要信息的处理。将文字转化为图片绝对是个好注意。验证码的基本生成原理也与此差不多&#xff0c;只是对再对文字转化为图片的…

Java 系列之spring学习--spring搭建(一)

一、新建maven项目 二、引入spring jar包 <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0…

php简单分页,php简单实现分页查询的方法

这篇文章主要为大家详细介绍了php简单实现分页查询的方法&#xff0c;具有一定的参考价值&#xff0c;感兴趣的小伙伴们可以参考一下关于php,最近学了好多&#xff0c;老师跟我们说&#xff0c;现在学的都是php的核心部分&#xff0c;所以我比较注意了一下&#xff0c;也多练习…

django用户认证系统——登录4

用户已经能够在我们的网站注册了&#xff0c;注册就是为了登录&#xff0c;接下来我们为用户提供登录功能。和注册不同的是&#xff0c;Django 已经为我们写好了登录功能的全部代码&#xff0c;我们不必像之前处理注册流程那样费劲了。只需几分钟的简单配置&#xff0c;就可为用…

web前端黑客技术揭秘 6.漏洞挖掘

6.1  普通XSS漏洞自动化挖掘思路 6.1.1  URL上的玄机 6.1.2  HTML中的玄机 2.HTML标签之内 6.1.3  请求中的玄机 6.1.4  关于存储型XSS挖掘 6.2.1  HTML与JavaScript自解码机制 <input type"button" id"exec_btn" value"exec" on…

Webpack基础使用

目录 一.什么是Webpack 二.为什么要使用Webpack 三.Webpack的使用 1.下载yarn包管理器 2.Webpack的安装 3.Webpack的简单使用 4.效果 四.Webpack打包流程 一.什么是Webpack Webpack是一个静态模块打包工具 二.为什么要使用Webpack 在开发中&#xff0c;我们常常会遇到…

阿帕奇骆驼遇见Redis

键值商店的兰博基尼 Camel是最好的面包集成框架&#xff0c;在本文中&#xff0c;我将向您展示如何通过利用另一个出色的项目Redis使它更加强大。 Camel 2.11即将发布&#xff0c;具有许多新功能&#xff0c;错误修复和组件。 这些新组件中的几个是我创作的&#xff0c; red…

HTML 教程- (HTML5 标准)摘抄笔记

HTML 教程- (HTML5 标准) 教程网址&#xff1a;http://www.runoob.com/html/html-tutorial.html http://blog.csdn.net/ljfbest/article/details/6700148 HTML版本 从初期的网络诞生后&#xff0c;已经出现了许多HTML版本: 版本发布时间HTML1991HTML 1993HTML 2.01995HTML 3…