您的位置:首页 > 编程语言 > Python开发

[模拟登陆三剑客]2. 使用Fiddler 分析数据包

2015-12-26 01:44 573 查看

[模拟登陆三剑客]2. 使用Fiddler 分析数据包

目的

模拟登陆三剑客之“分析数据包”。以模拟登陆为例,认识Fiddler的界面和重要功能

工具

Win7 32/64 位, Fiddler, Chrome/IE

说明

#3 在文中表示:图中的蓝色圆形标号

Fiddler界面认识

上一节我们用Fiddler抓取到了某网站的数据包如下。





下面介绍Fiddler的界面,以及模拟登陆需要用到的Fiddler的功能。

Fiddler左边区域

如下图:



按区域介绍上图:

1. 菜单栏和工具栏

2. 数据包编号。左边不同的小图标用于区分不同的数据包类型,其中编号#1 和 #3 是我们模拟登陆需要用到的。(为什么里面没有图片呢:上一节的设置中我们已经把图片类型的数据包忽略掉了,简单模拟登陆不需要图片,相信用得到图片的时候你会找出来在哪里设置的)

3. HTTP状态码,可自己白虎啥意思哈。一般我们需要的是200

4. 报文协议类型

5. 你知道的

6. 你知道的

7. 发送或返回的数据包大小。正在发送接受时,长度是-1。这个很有用哈,模拟登录有没有成功,我首先看的就是这个值的大小,自己练习你会懂的

8. cache,但是一般不在这里看cache,不方便

9. 文件扩展名,重要的值, 写在报文的headers里面的,不建议省略,常常也不能省略

10. 使用的软件以及进程号。这里表示这些数据包都是:4080号进程通过chrome传输的数据包。进程号大小没啥用。

Fiddler右边区域



按区域介绍上图:

1. 红色的大框:发出的数据的查看和分析区域

2. 绿色小框inspectors:查看器,查看某一个数据包发送的内容,包含:cache、cookie、header等等

3. 绿色小框 Composer:报文编辑、自定义报文发送。重点*3!

4. headers,报头

5. 暂时不用

6. get 或 post 方法中发送的数据,用一次就懂了

7. cookie

8. 红色的大框:接收的数据

9. 接收的headers

10. 接收的文本,如果是网页,这里就是html文件用txt打开使的样子

11. 查看接收到的json数据,树形的。(啥是json?百度就有了哈)

12. 绿色的框包含的那行黄色的字,如果见到,点一下吧

好了介绍完了,下面开始分析一个网站的登录页面

分析某网站登录界面的报文

1. 打开/清空fiddler

2. 打开要登陆的页面,输入账号密码

3. 打开chrome的proxy插件

不会的看上一节内容哈

4. 点击网站的登录按钮 ,等待登陆成功

5. 关闭chrome的proxy插件

以上5步如下图:



6. 分析登录报文



如上图:#1 的报文就是我们模拟登陆需要的。依次点击#1 #2 #3, 在#4 里就可以看到你登录输入的用户名密码。#5 #6 这些按钮都点点看看,多认识一下#2

然后,如图:



介绍上图:

1. 打开composer

2. 把#2 报文拖进 #1, 就可以看到#3 #4 #5 的内容

3. 登录用的是post方法

4. url是#4, #4 下面的大框是headers 的内容

5. post data是#5

6. 点一下 #6, 神奇的事情发生了:你看到了#7

7. 前几列内容和#2 一毛一样, 只有最后一列是:fiddler:5556. 这就是通过composer把#2 发送的报文重新发送了一遍。

点一下Inspectors,对比#2 和#7,所有的数据都一样,这就证明这样发送Composer中的数据就可以登录成功了。需要说明的是,#2 和#7 的body列内容有时候并不是完全一致的,但也能登陆成功。

什么时候是登录失败呢?你把#5 里的密码改一下,再按#6 试试就知道了

下面说说这个图里的东西:



这就是Composer, fiddler的重点!重点!!重点!!!

它能干什么,相信你已经体验了,介绍:

1. 我就是个名字

2. post 或 get 方法

3. url

4. headers 的内容,已经知道python 的requests.post() 的同学,应该知道#4 和 #5的。

5. 当使用post方法时,这里才有数据。点击Inspector–WebForms 也会看到这些。需要注意的是,使用get方法,有时候在Inspector–WebForms中也有数据,但这时候传输的数据直接在#3 中,get方法在#5中一直是没有数据的

* 再来说一下#4*

哇#4里面好多属性呀?都有用吗?都必须吗?你试试呀!方法:

1. 删除#4里某些行。

2. 点击Execute

3. 看看返回的数据跟没删除之前有没有区别

试几次后,再去百度每行什么意思,你就理解了

一般:#4里数据不是都需要的,删除一些也没关系,有时候删光了也没关系。 有些是不建议删除的,像host, user-agent, content-type

* 再来说一下#5*

点击Inspector–WebForms 可以看的更清楚哈。这里的数据有时候也不是必须的,大家可以试试。

模拟登陆的数据需求

如上图,模拟登录时,我们需要的就是#2 #3 #4 #5 的数据。

这些数据当让越少越好,分析数据的时候,可以顺便把非必须的数据删掉,减少编程作业量

下一节:根据分析出的数据,使用python进行模拟登陆
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息