如果app走的是http协议,不用root,只需要通过fiddler做代理,就可以抓到所有请求。

1. fiddler+手机wifi设置

安装fiddler,勾中 Fiddler Options -> https -> Decrypt Https trafficConnections -> Allow remote computers to connect 。重启之后,fiddler就在默认端口8888开始监听了。

手机上的wifi设置里,选择 手动 代理,主机名为PC的IP地址比如 192.168.0.108, 端口为8888。确认后,手机browser里访问http://192.168.0.108:8888,点击"FiddlerRoot certificate"安装证书。Android会提示先设置锁屏码 或 PIN码之类的,按提示做就行。

2. 抓包+分析

打开你要分析的app,点击按钮(例如:登录、同步等),如果背后走的是http/https,就能在fiddler里抓到request/response。比如某健康app的同步请求:

POST http://**health.com/japi/actionLst/uploadSportData HTTP/1.1
Content-Length: 2869
Content-Type: multipart/form-data; boundary=hZDrprkxC2osrCEx4XMWP2zehAAgxjpOgkbHUII
Host: **health.com
Connection: Keep-Alive
Expect: 100-continue
Cookie: PHPSESSID=dqb5h9nomu2fuuonnrleip6h71
Cookie2: $Version=1 --hZDrprkxC2osrCEx4XMWP2zehAAgxjpOgkbHUII
Content-Disposition: form-data; name="member_id"
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit A1001
... --hZDrprkxC2osrCEx4XMWP2zehAAgxjpOgkbHUII
Content-Disposition: form-data; name="distance"
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit 0.08869565
--hZDrprkxC2osrCEx4XMWP2zehAAgxjpOgkbHUII
Content-Disposition: form-data; name="seconds"
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit 73
--hZDrprkxC2osrCEx4XMWP2zehAAgxjpOgkbHUII
Content-Disposition: form-data; name="calorie"
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit 5
--hZDrprkxC2osrCEx4XMWP2zehAAgxjpOgkbHUII
Content-Disposition: form-data; name="step"
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit 120
--hZDrprkxC2osrCEx4XMWP2zehAAgxjpOgkbHUII
Content-Disposition: form-data; name="action_sign"
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit 62ccc5709f192da3d4a8b68499e0bd68
--hZDrprkxC2osrCEx4XMWP2zehAAgxjpOgkbHUII--

能看到,请求是http明文的,包括用户id、距离、秒数、卡路里、步数等基本信息,只有一个action_sign对数据做了签名,这是比较危险的。回复的结果如下:

HTTP/1.1 200 OK
Server: nginx
Date: Sun, 10 Apr 2016 06:24:44 GMT
Content-Type: application/json;charset=UTF-8
Connection: keep-alive
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: POST, GET, OPTIONS, DELETE
Access-Control-Max-Age: 3600
Access-Control-Allow-Headers: x-requested-with
Content-Length: 26 {"status":"OK","result":8}

只要构造合适的boundary+actionSign,就能模拟请求伪造数据了。后面找时间再尝试一下tcpdumpWireShark,毕竟能抓所有协议,更强大一些。

手机抓包-fiddler的更多相关文章

  1. [fiddler] 手机抓包

    最近工作涉及到与原生app联调,需要抓取手机上的请求.借此机会研究了下fiddler,简直神器. 以下简单介绍通过fiddler进行手机抓包的方法,之后也会陆续更新fiddler的其他功能 设置fid ...

  2. Fiddler手机抓包工具如何设置过滤域名?

    fiddler手机抓包工具如何设置过滤域名?如题.fiddler抓包可以完成我们移动开发者的调试测试需求.所以说抓包尤其重要,但是多余的网页请求和手机的其他链接影响我们手机开发的需求.下面我教大家怎么 ...

  3. Fiddler对安卓应用手机抓包图文教程

    http://www.cr173.com/html/37625_1.html 做开发需要抓取手机app的http/https的数据包,想看APP发出的http请求和响应是什么,这就需要抓包了,这可以得 ...

  4. Fiddler基本用法以及如何对手机抓包

    一.Fiddler是什么? ·一种Web调试工具. ·可以记录所有客户端和服务器的http和https请求. ·允许监视.设置断点.修改输入输出数据. 官方文档(英文):http://docs.tel ...

  5. Android利用Fiddler进行网络数据抓包,手机抓包工具汇总

    Fiddler抓包工具 Fiddler抓包工具很好用的,它可以干嘛用呢,举个简单例子,当你浏览网页时,网页中有段视频非常好,但网站又不提供下载,用迅雷下载你又找不到下载地址,这个时候,Fiddler抓 ...

  6. Fiddler手机抓包图文教程

    上篇Fiddler教程,我们教了大家Fiddler安装配置及如何使用Fiddler进行基本的Http抓包及模拟请求,今天给大家介绍下如何使用Fiddler进行手机抓包. 运行环境为Windows 10 ...

  7. fiddler电脑抓包和手机抓包

    概述 以前听别人说抓包抓包的,听起来很神秘高大上的样子,想入门又不知道从何学起.今天偶然在工作中遇到了以下2个需求: 改线上的代码,特别是PC端js代码. 写了一个移动端页面,由于跨域,改了host地 ...

  8. 工具 使用Fiddler进行手机抓包

    Fiddler 手机抓包 Web代理服务器 可以抓https包 手机和电脑处于同一网络 Tools -> Options... -> Connections Allow remote co ...

  9. Fiddler(三)Fiddler设置手机抓包

    一.前提 我们要实现手机抓包,必须要手机连接的wifi和PC段连接的wifi所处同一个局域网内,如果你使用的是笔记本,那么这个就好办了,如果你使用的是台式机,那么你还需要准备一个无线网卡.我使用的是F ...

随机推荐

  1. java mybatis 动态sql

    //-------------------------------查询-------------------------------------// <sql id="cmsGuest ...

  2. FORM 提示保存

    修改的FORM在编译到测试环境后打开并没有修改什么数据,却提示是否保存,检查->system.form_satus 为"changed": 个人实际解决情况为:在数据块级的触 ...

  3. 十二、Java基础---------异常处理机制

    异常 异常 异常就是程序在运行时产生的异常情况. 异常的由来 问题也是现实生活中的具体事物,也可以通过java 类的形式进行描述,并封装成对象.异常就是java 对不正常情况进行描述后的对象的体现. ...

  4. C# XmlSerializer实现序列化浅析

    C# XmlSerializer类是实现序列化的一个类,那么关于C# XmlSerializer的学习我们要掌握怎么样的操作方法呢?那么这里向你详细介绍具体的操作细节情况. C# XmlSeriali ...

  5. Oracle分组排序查询

    用sql查询每个分组中amount最大的前两条记录: SELECT *FROM HW trWHERE(SELECT COUNT(*) FROM HW WHERE tr.DEPID=DEPID AND ...

  6. Packets(模拟 POJ1017)

    Packets Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 47750 Accepted: 16182 Description ...

  7. Windows Server 2008服务器配置FTP站点的方法教程

    1.首先,安装FTP服务   打开服务器管理器,点击角色,添加角色,如果安装过iis,角色摘要里面会有个Web服务器(IIS),点击后面的添加角色,滚动条拉到最后勾选FTP服务器,根据步骤安装. ww ...

  8. 4 .Swift函数|闭包

    在编程中,我们常把能完成某一特定功能的一组代码,并且带有名字标记类型叫做函数,在C语言中,我们知道函数名就是一个指针,它指向了函数体内代码区的第一行代码的地址,在swift中也具有同样的功效. 在Sw ...

  9. MyBatis简介

  10. 基础笔记5(file)

    file 可以是目录和文件(只是是java程序与系统的文件进行一种关联) File file1 = new File("f:/mytest", "test5.txt&qu ...