zoukankan      html  css  js  c++  java
  • Android抓包方法(一)之Fiddler代理

    做前端测试,基本要求会抓包,会分析请求数据包,查看接口是否调用正确,数据返回是否正确,问题产生是定位根本原因等。

    具体步骤如下:

    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)。

  • 相关阅读:
    linux下的内存映射函数mmap详解及示例代码
    Android平台上使用属性系统(property system)
    Android筆記
    Android Prelink
    DataGridView BindingSource BindNavigator
    可排序的ListView
    开源2D绘图组件ZedGraph
    BackgroundWorker示例
    级联datagridview 利用datarelation和bindingsource
    继承DataGridView
  • 原文地址:https://www.cnblogs.com/Snail-offort/p/10931578.html
Copyright © 2011-2022 走看看