1、抓包原理

Fiddler是类似代理服务器的形式工作,它能够记录所有你的电脑和互联网之间的http(S)通讯,可以查看、修改所有的“进出”的数据。使用代理地址:127.0.0.1, 默认端口:8888。打开Fiddler会自动设置代理,正常退出会自动注销代理,非正常退出上不了网,重起一次Fiddler,或直接在IE里取消代理即可。

2、方法优劣

[优点]:
1).Fiddler操作简单、方便、功能强大
2).能实时抓包,可模拟修改请求
2).只需要手机支持代理即可
3).适用广,安卓、Iphone、Ipad、WinPhone等支持代理手机均适用
 
[缺点]:
1).电脑需要安装Fiddler
2).测试手机需要支持Wifi
3).测试手机与电脑需要同一网络
4).所测APP需支持代理 

3、准备工作

1).检查电脑网络连接

a.使用同网络内的另一台电脑)ing本机,检查是否连通正常。

原因:我之前测HTML5项目就发现Fiddler代理抓不到包,手机设置均正确,后发现是网络内找不到本机,本机防火墙设置问题。

另外需要关注是否同一网络,如果手机GPRS等上网,你在局域网内抓包...哥觉得你可以改行了...

(约定:后文所述Fiddler所在电脑均称为本机)

2).Fiddler安装

a.下载地址: http://fiddler2.com/get-fiddler

b.安装:省略(下一步...下一步即可)

3).Fiddler配置

a.允许远程计算机连接Fiddler

菜单:Tools-> Fiddler Options->Connections,勾选"Allow remote computers to connect"

注:8888为默认端口号,可修改,但需注意两点,一是本机空闲端口,二是手机代理设置时端口要一致。

b.配置可捕获HTTPS请求(*不需要捕获HTTPS,则忽略此步*)

菜单:Tools-> Fiddler Options->Connections,勾选"Capture HTTPS CONNECTs"后

再勾选"Decrypt HTTPS traffic"、"Ignore server certificate errors"

注1:勾选项英文不认识,请Google,不另做解释

4).手机安装HTTPS证书(*不需要捕获HTTPS,则忽略此步*) 

a.首先确定Fiddler所在电脑的IP地址:例:192.168.8.8

b.打开被测手机浏览器,访问http://192.168.8.8:8888,点"FiddlerRoot certificate" 然后安装证书

注:Iphone、Ipad安装则很简单,点击安装即可。Android安装稍微麻烦点,则需要先设置手机锁屏密码、PIN码,安装证书时会提示,按步骤走即可。

4、实例

ThinkDrive抓包实例

一期测试时,涉汲到APP安全测试,因此需要查看传输数据是否存在明文密码等。

1).开启Fiddler,确定本机IP、Fiddler端口号

本机IP:192.168.8.8

Fiddler端口号:8888

2).手机连接本机所在同网络Wifi,设置代理

a.代理主机名:Fiddler所在电脑IP

b.代理服务器端口: Fiddler使用的端口

3).APP操作,生成请求数据

a.例:登录

b.例:退出登录

4).分析Fiddler抓包数据

a.例:登录请求分析

1).双击查看登录请求,选择WebForms或JSON等其他类标签,查看请求参数值,对照接口文档及你想要测试的点分析,请求是否正确,查看返回数据是否正确。

2).同帐号,不同密码;不同帐号,同密码等测试用例,测试多次登录后发现,密码仅为MD5加密,没有对密码进行很好的加密传输

3).分析存在以下问题:

问题1:帐号密码采用http传输,帐号与密码(MD5值)局域网可以捕获;

问题2:密码虽采用MD5加密,但传输未加密,简单密码可以在线解密(图中密码在线解密不到1秒:123qwe);
问题3:密码不解密也一样可以登录,通过A帐号在app登录,再用sniffer得到的B 帐号与密码(MD5值),使用Fiddler修改A帐号的请求完成B帐号在APP登录。 

注1:Fiddler功能使用,请Google或百度,此处不详说

注2:以上实例仅为参考,具体测试,以所相关业务及测试目标为导向进行测试分析。

5、其他

本文虽主要对Android手机抓包举例,但其目的是说明,不管是电脑,还是手机,还是其他上网终端,都可以通过代理的方式来抓包(HTTS、HTTPS)。

Android抓包方法 之Fiddler代理的更多相关文章

  1. Android抓包方法(一)之Fiddler代理

    Android抓包方法(一) 之Fiddler代理 前言: 做前端测试,基本要求会抓包,会分析请求数据包,查看接口是否调用正确,数据返回是否正确,问题产生是定位根本原因等. 不管是之前做HTML5手机 ...

  2. Android抓包方法(三)之Win7笔记本Wifi热点+WireShark工具

    Android抓包方法(三) 之Win7笔记本Wifi热点+WireShark工具 前言 做前端测试,基本要求会抓包,会分析请求数据包,查看接口是否调用正确,数据返回是否正确,问题产生是定位根本原因等 ...

  3. Android抓包方法(二)之Tcpdump命令+Wireshark

    Android抓包方法(二) 之Tcpdump命令+Wireshark 前言 做前端测试,基本要求会抓包,会分析请求数据包,查看接口是否调用正确,数据返回是否正确,问题产生是定位根本原因等.学会抓包分 ...

  4. Android抓包方法(转)

    Android抓包方法(转) 作者:Findyou 地址:http://www.cnblogs.com/findyou/p/3491014.html 前言: 做前端测试,基本要求会抓包,会分析请求数据 ...

  5. Android抓包方法

    0. Fiddler代理 1.tcpdump命令+wireshark工具 adb shell   #登入手机 su          #切换Root用户 /data/local/tcpdump -p ...

  6. ADB工具和手机抓包方法介绍

    Android抓包方法 工具包内容如下:(下载地址:http://download.csdn.net/download/yezhaohui2011/8368061) adb ——谷歌提供的安卓远程调试 ...

  7. 《吐血整理》高级系列教程-吃透Fiddler抓包教程(31)-Fiddler如何抓取Android系统中Flutter应用程序的包

    1.简介 Flutter是谷歌的移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面.Flutter应用程序是用Dart编写的,这是一种由Google在7年多前创建的语言.Flut ...

  8. Android 下使用tcpdump网络抓包方法

    Android 下使用tcpdump网络抓包方法 抓包需要tcpdump以及Root权限,tcpdump在本文后有下载. 首先把tcpdump传进手机,用adb命令(放SD卡有时会有问题,我一次可以用 ...

  9. Fiddler之常用操作(过滤器设置,代理设置,手机抓包设置,手机代理配置)

    记录下,工作中常用的一些设置和操作~ 1.过滤“脏”请求 两个下拉框的名词解释: A.内外网过滤 No Zone Filter:不分区域过滤(内网外网都显示) Show only Intranet H ...

随机推荐

  1. D3.js学习

    // 1.选择d3.select('p')d3.selectAll('p')d3.select('.txt').style('color', '#fff')// 2.支持动态设置属性// a:随机属性 ...

  2. pandas删除缺失数据(pd.dropna()方法)

    1.创建带有缺失值的数据库:   import pandas as pd import numpy as np df = pd.DataFrame(np.random.randn(5, 3), ind ...

  3. MySQL中文参考手册

    1 MySQL 的一般信息 这是MySQL参考手册:它记载了MySQL版本3.23.7-alpha. MySQL 是一个快速.多线程.多用户和强壮的SQL数据库服务器. 对Unix和 OS/2 平台, ...

  4. Linux x64系统上安装 oracle 11g R2 x64

    1.首先到官网上下载oracle 11g x64位软件包 下载地址: http://download.oracle.com/otn/linux/oracle11g/R2/linux.x64_11gR2 ...

  5. AI金融知识自学偏量化方向-了解不同类型的机器学习2

    有监督学习 vs 无监督学习 迭代和评估 偏差方差权衡 结合有监督学习和无监督学习(半监督学习)

  6. 第三百九十六节,Django+Xadmin打造上线标准的在线教育平台—其他插件使用说,自定义列表页上传插件

    第三百九十六节,Django+Xadmin打造上线标准的在线教育平台—其他插件使用说,自定义列表页上传插件 设置后台列表页面字段统计 在当前APP里的adminx.py文件里的数据表管理器里设置 ag ...

  7. python 迭代器模式

    迭代器模式 迭代器模式(Iterator Pattern)是 Java 和 .Net 编程环境中非常常用的设计模式.这种模式用于顺序访问集合对象的元素,不需要知道集合对象的底层表示. 迭代器模式属于行 ...

  8. MySQL -- 行转列 -- GROUP_CONCAT -- MAX(CASE WHEN THEN)

    列转行:利用max(case when then) SELECT `name`, MAX( CASE WHEN course='语文' THEN score END ) AS 语文, MAX( CAS ...

  9. iOS(WKWebView)OC与JS交互 之三

      随着H5功能愈发的强大,没进行过混合开发的小伙们都不好意思说自己能够独立进行iOS的app开发,在iOS7操作系统下,常用的native,js交互框架有easy-js,WebViewJavascr ...

  10. 在一个由 'L' , 'R' 和 'X' 三个字符组成的字符串(例如"RXXLRXRXL")中进行移动操作。一次移动操作指用一个"LX"替换一个"XL",或者用一个"XR"替换一个"RX"。现给定起始字符串start和结束字符串end,请编写代码,当且仅当存在一系列移动操作使得start可以转换成end时, 返回True。

    在一个由 'L' , 'R' 和 'X' 三个字符组成的字符串(例如"RXXLRXRXL")中进行移动操作.一次移动操作指用一个"LX"替换一个"XL ...