① android如何过滤http请求
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。
② 怎么拦截Android APP HTTP请求
根据PC 平台不同 推荐两款 软件 抓网络请求:
Windows: Fiddler 官网地址 http://www.telerik.com/fiddler
Mac : Charles 官网地址: https://www.charlesproxy.com/
两款软件 均需要 手机 与PC 在同一局域网内,并且需要手动设置 手机Wi-Fi 代理服务器IP 为PC Ip 地址,端口号需要看一下软件设定。常用的Http 请求 均可抓取,若是Https 请求 Charles 需要安装 手机证书,才可将抓取数据显示出来。
③ 如何监控android应用的发送http请求
目前android提供的工具没事,我们写工程都是自己写http请求,每次请求的时候打Log,记录请求的url和参数。请求回来了,打log,记录回来的数据,记录数据的状态,数据的内容。 目前只能这样。如果用模拟器的话,可以用vnStat或者CommView之类的监控电脑网卡的请求,间接的监控手机。一般开发用手机测试,这样就不行了。只能打log了
④ 如何在Android应用里对HTTP请求头部添加适当的User-Agent字段
一般Web浏览器在访问各个网站时,会在HTTP请求的Header里设置User-Agent字段,表示请求者的身份信息,比如在我华为U9200的Android手机上,打开Chrome浏览器后,每个访问请求的User-Agent字段如下:
?
Mozilla/5.0 (Linux; Android 4.0.3; U9200 Build/HuaweiU9200)
对于安卓App来说,默认情况下的HTTP请求Header是不会带上这么一串字符串的。如果要带必须得自己构造了,我摸索了半天,还是找到了达到和浏览器同样格式的设置User-Agent的方法:
?
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpGet httpGet = new HttpGet(url);
// HttpPost httpPost = new HttpPost(url); // 如果是POST请求,则改为注释掉上面一行
// MY_APP_NAME为APP名称,MY_APP_VERSION_NAME为应用的版本名
httpGet.setHeader("User-Agent", String.format("%s/%s (Linux; Android %s; %s Build/%s)", MY_APP_NAME, MY_APP_VERSION_NAME, Build.VERSION.RELEASE, Build.MANUFACTURER, Build.ID));
⑤ 如何抓取 android app 的 http 请求
有人提到Fiddler,但是Fiddler是针对HTTP
有人提到设代理,但是Android并非所有App通讯都会像http请求乖乖的走代理,不是root不root的问题,ios同理
有人提到tcpmp,但是tcpmp不能实时看通讯过程
建议
下载 Wireshark ,支持800多种通讯协议
无线网卡建立虚拟AP
连接wifi,直接用wireshark抓包,一切通讯尽收眼底
⑥ 怎么拦截Android APP HTTP请求
用fiddler可以拦截http请求,查看http头,content 等信息