抓包工具篇

  • 文章目录

文章内容主要包含抓包原理及常见抓包工具简介,如何选取符合自身日常工作要求的抓包软件。Charles、Fiddler、HttpAnalyzer、WireShark工具及Firefox浏览器,PC和移动端常用抓包和篡改请求操作讲解,各抓包软件在使用过程中实例操作和常见问题解答。

抓包工具的内容,主要分为以下四部分进行讲解:

1、工具选取:抓包原理,常见抓包工具简介,选取符合自身日常工作的抓包软件。

2、抓包使用:取部分的抓包工具进行常用操作讲解。

3、实例讲解:结合日常工作场景使用抓包软件实例操作。

4、常见问题:各抓包软件在使用过程中常见问题解答。

  • 工具选取

1、HTTP请求

HTTP协议永远都是客户端发起请求,服务器回送响应内容。

2、 抓包目的

有助于辅助测试,定位问题,了解数据传输、分析协议内容,实现代理。 

3、常见抓包工具简介:

  1. Charles---基于java开发,支持跨平台:Mac、Linux、Window下都是可以使用.;
  2. Fiddler---主要调试和抓取HTTP、HTTPS请求;
  3. HTTP Analyzer---全局抓包,无需选择抓包对象,也可以附加到IE浏览器进行抓包;
  4. HttpWatch ---抓包功能强大,但是只能依附在IE上。Post提交的数据只有参数和参数的值,没有显示提交的url编码数据;
  5. HTTPDebugger---同样是全局抓包; 精易编程助手---软件能生成易语言的post代码,对易语言编程来说很方便;
  6. WSockExpert---Post数据同样是显示提交的url编码数据,但是post的数据需要自己翻动查找不方便,特别是列表框里面的数据有多行时;
  7. 封包助手---对于多线程浏览器或者其他软件来说,要选择正确的进程才能抓到数据包;
  8. Firebug---firefox下的一个插件,能够调试所有网站语言;
  9. Wireshark---用来获取网络数据封包,包括http、TCP、UDP等网络协议包;
  10. Tcpdump---支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。
  • 抓包使用

接下来主要讲解Charles、Fiddler、HttpAnalyzer、WireShark抓包工具一些比较常用的抓包功能及场景。
常用抓包工具比较
抓包工具 跨平台 是否免费 仅支持http协议 易用性 界面操作
Charles
Fiddler
HttpAnalyzer
WireShark
 

【1】Charles

  • 【1.1】设置手机反向代理

当我们手机端需要通过抓包工具代理对应的host和抓取请求数据时,可以通过charls设置对应的反向代理。

1.设置Charles端口

打开Charles客户端,点击Proxy->Proxy Settings菜单,设置移动设备连接到Charles的端口。

2.手机代理设置
设置中找到【代理设置】,将代理设置选择手动, 填写服务器设置成本机ip,端口设置成Charles端口。

 

 3.允许Charles连接

第一次通过手机访问手机中的发送请求时,Charles会弹出提示框,提示有设备尝试连接到Charles,是否允许,如果不允许的话,手机发送请求失败,点击Allow允许。

 或者通过Proxy->Access Control Settings手动添加地址,如果不想每个设备连接Charles都要点击允许的话,可添加0.0.0.0/0允许所有设备连接到Charles。

  • 【1.2】抓取Https请求

1.安装证书
PC端选择Help->SSL Proxying->Install Charles Root Certificate。
手机端浏览器打开http://chls.pro/ssl,安装证书即可。

2.https请求抓包数据
https抓包请求,抓起后无法查看详情的请求内容,见下图:

3.设置SSL代理
Proxy->SSL Proxying Settings->SSL Proxying;允许查看所有https请求,Add->Host:* Port:443。

 或通过下图进行SSL设置:

 

4.查看https请求内容

设置成功后,可以查看https请求内容

  • 【1.3】 Charles过滤不必要的网络包

1.Structure视图,找对应域名的网络包

2.关键字过滤请求
在Sequence界面的Filter栏中填入需要过滤的关键字

 3.允许Charles连接

 选择Proxy->Recording Settings菜单,然后在include栏添加需要抓取包的指定服务器请求协议、地址、端口号,也可以在exclude栏添加不抓取包的地址。

 4.过滤本计算机请求

只抓取手机APP发送的请求的话,可以不勾选Proxy->Windows Proxy选项,这样就可以过滤本机抓包请求。

  •  篡改请求

1.配置篡改请求内容
在Tools->Rewrite Settings设置需篡改或增删请求内容; 如添加请求headers字段,设置如下图:

2.查看篡改请求
请求成功带上所添加的headers内容

  • Charles常见问题

1.Charles启动有延时 未激活软件的用户,启动时将会有10 秒钟的延时。
2.使用Charles后无法上网了 Charles异常关闭导致电脑无法上网,重启Charles后关闭它即可。
3.Charles老是自动关闭 Charles是收费软件,可免费试用30 天。试用期过后,未付费用户仍可继续使用,但是每次使用时间不能超过30分钟。
4.无法查看https请求内容,要查看https请求包内容,则必须添加ssl代理设置。
  •  【2】Fiddler

  • 【2.1】显示服务器IP的设置方法

目的:测试过程中经常频繁更换host,而设置host之后会出现延迟的情况,通过设置显示服务器IP,可以快速知道现在访问域名时指向的是哪个服务器IP。
1、快捷键Ctrl+R 或者 菜单->Rules->Customize Rules…

2、在CustomRules.js文件里Ctrl+F查找 :static function Main()
3、添加一行代码即可显示IP FiddlerObject.UI.lvSessions.AddBoundColumn("ServerIP", 120, "X-HostIP");

4、添加后查看设置情况

  • 【2.2】反向代理-AutoResponder

利用Fiddler作为反向代理改写返回数据,最实用的功能。
1、打开浏览器,随意输入一个网址,如http://pdf.wps.cn/
2、选中步骤1请求,右击-勾选“Unlock fo Editing”,选择Fiddler右侧reponse块下的TextView,这里修改title,如图:

3、之后,去掉“Unlock for Editing”,再选择右侧上方的AutoResponder,勾选下方的checkbox选框,并将步骤1拖到下方,如下图:

4、回到浏览器,刷新之前打开的页面,如图,title变为上面改的内容了。

  • 【2.3】QuickExec命令行的使用

Fiddler的左下角有一个命令行工具叫做QuickExec,允许直接输入命令。常见的命令有:
cls:清屏  (Ctrl+x 或左上角的Remove all也可以清屏)
select :选择会话的命令 ?
.gif :用来选择gif后缀的图片
bpu:截获request
help:打开官方的使用页面介绍,所有的命令都会列出来
quit: 退出Fiddler
。。。

  • 【3】HttpAnalyzer

  • 【3.1】HttpAnalyzer使用

1、打开HTTP Analyzer软件,点击Start。

2、Select Running Processes:选择正在使用的进程

3、使用客户端发送请求,抓包情况如下:

  • 【3.2】HttpAnalyzer常见问题

  1. 抓包数据无法查看请求内容:未激活软件,抓包数据无法查看内容。
  2. 已启动httpAnalyzer无法抓客户端请求包:客户端已启动的情况下,重启httpAnalyzer软件。
  • 【4】Wireshark

  • 【4.1】Wireshark显示过滤器

1、显示来源或目标地址为172.18.xxx.xx的封包:ip.adder == 172.18.xxx.xx
2、显示来源或目的TCP端口为80的封包(显示目的TCP端口为80的封包:tcp.dstport ==80):

  • 【5】Firefox浏览器

  • 【5.1】添加headers

1、如Firefox浏览器篡改headers内容(新增个header头),篡改请求插件可以使用Modheaders,设置如下:

2.查看篡改请求
 
 

posted on 2024-03-31 01:16  劲量小子  阅读(335)  评论(0编辑  收藏  举报

导航