安卓APP测试之使用Burp Suite实现HTTPS抓包方法

APP的测试重点小部分在APP本身,大部分还是在网络通信上(单机版除外)。所以在安卓APP测试过程中,网络抓包非常重要,一般来说,app开发会采用HTTP协议、Websocket、socket协议,一般来说,HTTP协议最多,Websocket是后起之秀,socket最少,而针对HTTP和websocket,Burp Suite工具是最适合不过的工具了。但是在遇到了app使用SSL或TLS加密传输(https)的时候,由于证书不被信任,直接导致网络通信终端,抓包失败。本文介绍如何使用Burp suite抓取https包。

一、工具准备

安卓手机一部(Nexus4,原生安卓,未root)

笔记本(带有无线网卡,可以创建wifi热点)

wifi热点软件/同一局域网

Burp suite软件(抓取HTTP、HTTPS、Websocket包)

二、抓包原理

通过Burp suite代理方式,将手机的流量通过Burp suite;导出Burp Suite根证书(PortSwiggerCA.crt)并导入到手机中,手机的HTTPS流量将可以通过Burp suite代理。

三、配置过程1. 保证网络能进行代理

因为Burp suite是采用代理抓包方式的,所以要保证网络能够进行代理,不能被防火墙等阻隔,最好的方式是进行主机虚拟Wifi热点。

2. Burp suite配置

Burp suite的Proxy项目中配置代理IP及端口。

这里也可以为Burp Suite添加多个代理

3. 导出Burp Suite根证书

在火狐浏览器中,使用Burp suite代理随意打开一个https链接,获取相关证书,并导出:

直接导出证书:

通过hfs.exe等工具,将导出的根证书下载到手机中,并在设置-> 安全 -> 从存储设备安装(证书) 选项中安装Burp Suite根证书:

4. 手机连接Wifi热点,并设置代理:

手机连接我们刚设置好的Wifi热点,并在高级选项中配置代理:

通过以上配置,app中的HTTP流量就可以直接走Burp Suite了:

四、总结:

安卓APP更多的都是采用HTTP通信的,少数采用HTTPS的,这也是国内网络安全问题的现状。毕竟不加密的HTTP通信节约带宽和系统资源,更多人直接采用非SSL或者TLS加密的HTTP通信,这也是导致网络嗅探如此流行、简单的原因。https的通信需要信任公私钥,所以只要有了密钥或者根证书,抓包就非常容易,这也直接告诉我们,如果访问正常网站,突然弹出让我们信任证书的时候,这时也许就是我们正在被嗅探。。。。。

(0)

相关推荐

  • Android手机使用Fiddler方法介绍

    Fiddler是一款免费的抓包.调试工具,比Wireshark要小巧,更简洁,本节就来介绍如何通过WIFI来抓取Android手机的HTTP和HTTPS包. 一.连接Android手机 1.1.手机端配置 电脑配置WIFI后,手机需要设置当前WIFI的代理,而这个代理地址可以通过电脑的"ipconfig"命令得到,如下图所示: 以上的192.168.191.1就是本机的IP地址,然后在手机端的WIFI的高级设置中将代理地址设置为查询到的IP,端口号码自己定义,一会儿要用到,IP代理模式

  • GO语言实现的http抓包分析工具pproxy介绍

    引言 web 开发和 API 开发中难免要详细分析 http 请求和响应信息.web 开发的话,浏览器提供了便利的工具,比如 chrome 和 IE 都带了 develop tool,而 firefox 更是有十分强大的 firebug,可以让 http 请求的所有秘密一览无遗.目前是 app 大流行的时代,想要观察 app 中得 http 请求的秘密,浏览器的工具和插件都无能为力,有不少本地化的软件可以很好的解决这个问题,Windows 平台下有大名鼎鼎的 Fiddler 和 HttpWatc

  • Android设备上非root的抓包实现方法(Tcpdump方法)

    通常我们在Android应用中执行某个命令时会使用"Runtime.getRuntime().exec("命令路径")"这种方式,但是当我们执行抓包操作时,使用这条命令无论如何都不行,通过下面代码打印结果发现,该命令一定要在root权限下才能执行. BufferedReader brW = new BufferedReader(new InputStreamReader(p.getErrorStream())); while((str = brW.readLine(

  • Android手机抓包步骤

    android抓包准备 1. Android手机需要先获得root权限.一种是否获得root权限的检验方法:安装并打开终端模拟器(可通过安卓市场等渠道获得).在终端模拟器界面输入su并回车,若报错则说明未root,若命令提示符从$变#则为rooted:2. 如果Android手机尚未root,可通过superoneclick或其它方法进行root处理(需要先安装Microsoft .NET Framework).Superoneclick刷root权限教程:(http://soft.shouji

  • Android中使用tcpdump、wireshark进行抓包并分析技术介绍

    本文主要介绍如何使用tcpdump和wireshark对Android应用程序进行抓包并分析,需要说明的是在抓包之前,你的Android设备必须root过了,另外你的电脑必须有Android SDK环境. 下载并安装tcpdump tcpdump链接:http://www.tcpdump.org/ 选择一个版本下载并解压提取出其中呃tcpdump文件,然后push到你的手机上去: 复制代码 代码如下: adb push c:\tcpdump /data/local/tcpdump 进一步操作:

  • java抓包后对pcap文件解析示例

    这是自己写的简单的解析pcap文件,方便读取pcap文件,大家参考使用吧 复制代码 代码如下: InputStream is = DataParser.class.getClassLoader().getResourceAsStream("baidu_cdr.pcap"); Pcap pcap = PcapParser.unpack(is);is.close();byte[] t = pcap.getData().get(0).getContent();byte[] data = Ar

  • 使用Fiddler调试visual studion多个虚拟站点的问题分析

    1:localhost.和127.0.0.1.带来的URL行为不一致 无法走本地代理,这个无法本地调试的问题并不是个BUG,微软官方是有给出过解释的,这是源于IE浏览器和.NET框架对于本地请求是不走代理的,因而Fiddler无法检测数据.于是为本地地址加.符号,这就带来URL行为不一致的问题. 取当前Context.Request.URL,会发现系统自动将地址中的.符号忽略了,这为我们针对URL编码带来了不一致的问题: 2:target machine actively refused it(

  • Fiddler如何抓取手机APP数据包

    Fiddler,这个是所有软件开发者必备神器!这款工具不仅可以抓取PC上开发web时候的数据包,而且可以抓取移动端(Android,Iphone,WindowPhone等都可以). 第一步:下载神器Fiddler,下载链接: http://w.x.baidu.com/alading/anquan_soft_down_ub/10963 下载完成之后,傻瓜式的安装一下了! 第二步:设置Fiddler 打开Fiddler, Tools-> Fiddler Options (配置完后记得要重启Fiddl

  • Android下使用TCPDUMP实现数据抓包教程

    如果想分析Android下 某个APP的网络数据交互,需要在Android手机上抓包,最常用的抓包工具非tcpdump莫属,用tcpdump生成Wireshark识别的 pcap文件,然后将pcap文件下载到电脑上,用电脑上的Wireshark加载pcap文件,通过Wireshark分析tcpdump抓取的数据. 一.安装tcpdump 为Android手机安装tcpdump,首先必须将Android手机root,现在市面上常用的root工具都很傻瓜很强大,推荐使用root精灵,将手机root以

  • 安卓APP测试之使用Burp Suite实现HTTPS抓包方法

    APP的测试重点小部分在APP本身,大部分还是在网络通信上(单机版除外).所以在安卓APP测试过程中,网络抓包非常重要,一般来说,app开发会采用HTTP协议.Websocket.socket协议,一般来说,HTTP协议最多,Websocket是后起之秀,socket最少,而针对HTTP和websocket,Burp Suite工具是最适合不过的工具了.但是在遇到了app使用SSL或TLS加密传输(https)的时候,由于证书不被信任,直接导致网络通信终端,抓包失败.本文介绍如何使用Burp s

  • Burp Suite Pro安装和配置使用教程详解

    目录 1.资源链接 2.再安装java jdk运行环境 3.安装JDk 4.复制箭头所指区域内容. 5.点击图中的run按钮 7.点击Manual activation 8.复制箭头所指内容 9.黏贴到下面的的1中,2中会自动生成.并复制2中的内容 10.将其黏贴到下图中,然后点击next 11.点击finish 12.按图点击 13.按图点击 14.OK了 15.我们在bp存放的目录里新建一个txt 按照下面一步一步来,安装bp就是这么简单. 我们下载渗透测试软件Burp Suite Prof

  • Mac下使用mitmproxy抓包HTTPS数据方法详解

    在Mac上常用的抓包软件是Charles,网上关于Charles的教程很多,这里介绍另一个抓包神器mitmproxy.mitmproxy是一款可交互式的命令行抓包工具,它除了可以抓包查看http/https请求,还有一个很强大的功能是拦截并修改request或者response,后面我会用实际例子演示如何修改知乎的回答:) 安装 mitmproxy官网介绍了用以下命令来安装 pip install mitmproxy 我在实际安装过程中遇到了一些坑,首先是OSXElCapitan及以上的系统版本

  • 搭建mac使用Charles抓包安卓app环境配置过程

    目录 前言 准备工具CHARLES 下载 原理浅析 配置 手机WIFI设置 安卓模拟器 WIFI代理设置 HTTPS证书配置 使用 前言 对于一个刚接触业务对业务不熟悉的开发而言,最快熟悉业务以及了解项目代码构成的途径,就是从具体的页面入手,然后打开浏览器web控制台,定位url找到相关的接口,然后开启debug之旅.然而对于一个app而言,类似的做法就是使用抓包工具定位url.废话不多说,直接实操起来. 准备工具CHARLES 下载 下载地址:https://www.jb51.net/soft

  • windows上利用charles抓取微信小程序数据包,手机APP数据包(HTTP与HTTPS数据包)

    1.下载charles包.安装 Charles Proxy抓包工具 v4.1 破解文件 win64 附破解方法 2.关闭电脑防火墙 打开控制面板,选择Windows防火墙,关了(不关很可能没法抓包,在这栽过坑) 2.连接手机 2.1 用数据线把手机连上电脑 2.2 查电脑ip,命令行输入 ipconfig 2.3 修改手机网络代理 手机网络改为代理,ip为电脑ip,端口8888(charles默认端口,若被其他程序占用可修改,原则是保持电脑和手机一致) 3.安装SSL证书 (大多数app或小程序

  • MAC系统利用charles抓取微信小程序和手机APP数据包(http和https数据包)

    本文中使用的是mac上的抓包工具charles进行抓包,手机是华为荣耀8 下载并安装Charles for Mac Charles for Mac(HTTP信息抓包工具) V4.2.5 苹果电脑版 要想抓取到微信小程序的数据首先要解决的第一个问题件就是如何通过charles抓取手机上的数据具体配置过程如下: MAC上的Charles设置 第一步,charles上通过proxy->proxy setting进入代理设置,入口如下图所示 点击后进入如下所示界面 记住此处的port,默认为8888,也

  • uniapp开发安卓App实现高德地图路线规划导航功能的全过程

    目录 技术概述 技术详述 问题与解决 问题: 解决: 参考文献 总结 技术概述 描述这个技术是做什么的/什么情况下会使用到这个技术,学习该技术的原因,技术的难点在哪里.控制在50-100字内. uniapp的map组件中导航路线的展示.是uniapp开发app时引入地图导航的实现方式.技术难点在于实现map组件时对于属性以及函数的细节使用很容易出现一些奇怪的bug. 技术详述 描述你是如何实现和使用该技术的,要求配合代码和流程图详细描述.可以再细分多个点,分开描述各个部分. 首先是在地图开发者平

  • uniapp打包安卓App的两种方式(云打包、本地打包)方法详解

    在HBuilder上对APP提供了两种打包方式,云打包和本地打包,下面主要对这两种打包方式做个介绍 两者的区别:云打包相对简单,但是每天最多只能打包五次,而且在高峰期打包时间可能会很长,本地打包相对比较复杂,但是不限制次数,打包时间也短 一. uniapp云打包安卓App: 只需要设置相应参数即可.比较复杂的地方可能就是证书,如果你是测试包,Android的话直接选择共用证书即可,ios则需要申请相应证书,申请证书的具体方法官方也介绍的很清楚了,就不赘述了. 二. uniapp本地打包安卓App

  • springboot添加https服务器的方法

    什么是https 要说https我们得先说SSL(Secure Sockets Layer,安全套接层),这是一种为网络通信提供安全及数据完整性的一种安全协议,SSL在网络传输层对网络连接进行加密.SSL协议可以分为两层:SSL记录协议(SSL Record Protocol),它建立在可靠的传输协议如TCP之上,为高层协议提供数据封装.压缩.加密等基本功能支持:SSL握手协议(SSL Handshake Protocol),它建立在SSL记录协议之上,用于在实际数据传输开始之前,通信双方进行身

  • C# httpwebrequest访问HTTPS错误处理方法

    C# httpwebrequest访问HTTPS链接时遇到这个错误,但是如果我开抓包工具,比如filddler2,则POST返回正常 错误提示的Message为: 基础连接已经关闭: 发送时发生错误. InnerException为: 从传输流收到意外的 EOF 或 0 个字节. 试了网上的N种方法,以下是本次的解决方案: ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3; 把网上找到的解决方案列一下,没准就能解决了

随机推荐