Android客户端捕获http请求包的方法

对于Web测试,我们可以很容易的抓取到相关的http请求包,不用什么专业软件,甚至浏览器都能帮我们完成这个功能,拿到需要的http请求连接 。

  http连接对于测试同学来说, 不论做功能、性能或是安全,都是非常重要的, 他过滤了前台的因素,让测试同学直接能对后台进行交互。

  以上是http连接的重要性,基本等于废话,下面是正题。

  客户端安全测试,同样需要拿到http的请求包,由于客户端的前段限制绕过比较麻烦,那么在做安全测试的过程中,直接拿到http的请求包显得更外重要。

  有如下方法可以拿到请求的http包:

  1、在不配置代理的情况下,对Android客户端(模拟器)的数据我们可以使用wireshark或者etherpeek等网络层抓包软件抓取,模拟器本身的数据交互是通过电脑主机的网卡进行的,所以我们通过抓包软件抓取主机网卡的数据包,经过过滤,便可得到模拟器客户端中的数据包,类似这样:

  访问之后,通过wireshark过滤http请求,便可找到我们刚刚发送的请求。

  当然,这是种比较麻烦的方法,不过可以更确切的看到网络包发送的内容。

  另一种办法是对模拟器配置代理,让所有请求包可以通过外部主机的七层抓包软件,例如fiddler ,burpsuite等所捕获到,配置代理需要先做一次设置:类似这样:

  进 入“设置”选项之后,按照图示设置

  这里proxy 设置为10.0.2.2是android模拟器对外部主机地址的硬编码,端口设为8888是外部主机fiddler 的监听地址,当然,如果是burpsuite 可以设置为8080。

  那么这样的话 ,我们就能通过fiddler抓取模拟器中的数据包了, 这样对测试来讲,可以用web端的应用层工具对客户端的http数据进行处理,方便的可就多了。

====================================分割线================================

最新内容请见作者的GitHub页:http://qaseven.github.io/

时间: 2024-07-31 19:43:08

Android客户端捕获http请求包的方法的相关文章

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

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

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

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

android 网络请求库volley方法详解_Android

使用volley进行网络请求:需先将volley包导入androidstudio中 File下的Project Structrue,点加号导包   volley网络请求步骤:       1. 创建请求队列       RequestQueue queue = Volley.newRequestQueue(this);       2.创建请求对象(3种)                            StringRequest request = new StringRequest("

Android客户端post请求服务器端实例_Android

Android客户端请求服务器端的详细解释 1. Android客户端与服务器端通信方式: Android与服务器通信通常采用HTTP通信方式和Socket通信方式,而HTTP通信方式又分get和post两种方式. 2. 解析服务器端返回数据的解释: (1).对于服务器端来说,返回给客户端的数据格式一般分为html.xml和json这三种格式. (2). JSON(Javascript Object Notation)是一种轻量级的数据交换格式,相比于xml这种数据交换格式来说,因为解析xml比

android 网络请求库volley方法详解

使用volley进行网络请求:需先将volley包导入androidstudio中 File下的Project Structrue,点加号导包 volley网络请求步骤: 1. 创建请求队列       RequestQueue queue = Volley.newRequestQueue(this); 2.创建请求对象(3种) StringRequest request = new StringRequest("请求方法","请求的网络地址","成功的网

Android客户端post请求服务器端实例

Android客户端请求服务器端的详细解释 1. Android客户端与服务器端通信方式: Android与服务器通信通常采用HTTP通信方式和Socket通信方式,而HTTP通信方式又分get和post两种方式. 2. 解析服务器端返回数据的解释: (1).对于服务器端来说,返回给客户端的数据格式一般分为html.xml和json这三种格式. (2). JSON(Javascript Object Notation)是一种轻量级的数据交换格式,相比于xml这种数据交换格式来说,因为解析xml比

android视频传输-android作为客户端接收rtp解包解码

问题描述 android作为客户端接收rtp解包解码 跪求:请各位帮忙啊!我的毕设是在android端接收rtp包,解包解码,在android平台上播放视频,实现局域网内视频的传输,刚刚接触android,不知道怎么入手,麻烦各位给个demo啊,十分感谢!

关于android http协议 POST请求的outputStream.write()方法

问题描述 关于android http协议 POST请求的outputStream.write()方法 这个方法就是把数据发送吧,但是不能发送String类型的数据,想问一下我有一个String类型的数据要发送到服务器,要怎么写呢? 解决方案 说错了,是变成比特数组. 解决方案二: Android使用http协议的GET和POST方法!!! 解决方案三: 可以把字符串变成比特流. 解决方案四: String data="你的数据"; byte[] byteData=data.getBy

vba-VBAxmlhttp发http请求用post方法,服务端取不到send的数据包

问题描述 VBAxmlhttp发http请求用post方法,服务端取不到send的数据包 vba用xmlhttp发http请求,使用的post方法,可是服务端怎么也抓不到send数据包. http请求消息头是有,消息体怎么也娶不着. request.getInputStream(); debug进去看了,里面确实啥也没有. 代码在内网,贴不出来,汗..... 各位有遇到过类似的问题么?