Fiddler抓包教程

PC端配置

教程来源:简书

1.下载Fiddler

Fiddler下载地址:下载,下载可能需要翻墙,我没有感知。Fiddler for .NET4是win8之后采用的,之前的话下载Fiddler for .NET2即可。

2.安装HTTPS证书

Fiddler默认只能抓取HTTP回话,但还是提供了HTTPS的功能的。(好像说的是他的功能特别的强大)。配置打开
Fiddler->Tool->Fiddler Option->HTTPS tab,勾选Capture HTTPS CONNECTs和Decrypt HTTPS traffic
分别代表捕获HTTPS连接,将HTTPS请求解密。安装证书(必须安装)。
还可以设置了ignore server cetificate safe 以及Check for cetificate revocation

3.允许手机远程连接

Fiddler->Tools->Options在Connections面板中选择Allow remote computers to connect 并重启生效。端口默认为:8888

4.查看自己电脑ip地址

cmd命令下dxdiag是很早之前学过的一招,用的是查看电脑的硬件信息。
这里我通过知乎学到了另外的一组信息。

  1. 第一种方法直接在Fiddler里面右上角Online鼠标悬停上面即可看到自己的ip地址。
  2. cmd界面下输入ipconfig即可查看自己的网络状态

这些查看的都是在局域网下的ip地址,浏览器输入ip即可查看在外网下面的ip地址。

Fiddler里面的左下角黑色QuickExet里面可以执行命令,关于命令的内容可以参考BlogFiddler抓包工具总结

手机端配置

参考来源:简书

只需要是移动终端即可,pad或者手机都可以。

1.接入网络

确保手机端和电脑同属于一局域网下。

2.手机安装根证书

对HTTPS的请求必须安装证书,不然无法会话解密。输入类似的http://192.168.1.106:8888/,首次连接看到的是Fiddler Echo Service界面,最后一行You can download the FiddlerRoot certificate

不能直接在浏览器中打开,在文件管理页面打开,点击选用用证书管理软件打开。一般需要验证锁屏密码(涉及证书操作),然后为证书命名,我们命名为fiddler。点击确定即可。一秒不到,弹出toast,已安装fiddler

3.手机代理设置

打开手机上的WLAN网络,点击网络详情进行修改,主要是修改里面的代理。代理改为手动,主机名填写192.168.1.106,就是电脑的ip地址。端口填写8888.

注意我们设置Fiddler,左下角的ALl Processes他就会立即抓包的,不需要另外配置。一般电脑抓包的话用Internet抓包即可。

有些网站使用了代理会出现打不开,下载不了的迹象。

4.手机还原系统状态

只需要WLAN中关闭代理即可,代理配置无。这样就停止了电脑对手机的监控

删除证书是在密码、隐私与安全->系统安全->加密与凭据->信任的凭据->用户里面的FiddlerRoot点击删除即可。

Fiddler断点以及实例

这一段的参考来源:吾爱破解

1.设置断点按钮位置

左下角的All Processes左边是Capture标识,点击一下想当然电脑上开始抓取数据。这个一般在电脑抓取的时候,相当于File->Capture Traffic(F12)

断点的位置在All Processes的右边,一个没有标志的空白框。再右边就是抓取数据的条数。

点击一下就是断请求,红色,相当于把请求的数据断了,
点击两次相当于断响应,红绿色,相当于把响应的数据断开了。

一般这里面的问题在于,请求的数据和返回的数据是进行过加密处理的,所以并不是说万能的功能。关键要进行万能功能还得需要加密解密的知识。但是对于一般的软件的话,不会设置这么复杂的,特别是一些个人开发者,或者小工作室开放的软件。

2.好多动漫app实例

下载页面地址:pp助手
直接下载:链接
版本:v4.9.14

这里完成的是修改爱心值直接下载的功能。这个看图软件可以直接查看图片,也可以游客登录,查看图片,就是下载需要充值而已。这里我们根据教程的操作完成的功能是修改爱心值。主要通过修改Response的内容完成修改。

这个方法的缺点在只能一直有这样的一个返回数据存在,才能做到一直保持下载状态。当然在某些时候还是很有用的。可能通过修改Request就比较高级的操作了。

整个过程其实并不复杂,主要是返回的数据也基本上很简单。配置好过程之后先清除所有的数据流,一般只要打开就会出现很多的数据。

返回数据位置:

http://hddm.oacg.cn/haoduo.php?a=self_vipinfo&m=UserVip

返回数据格式,双击看到其实是一个JSON格式的数据

{“is_vip”:false,”vip_day”:0,”max_love_point”:900,”is_can_vip”:false,”current_love_point”:0,”add_vip_day”:0,”recommend_point”:7}

TextView查看View in Notepad,现在打开的是一个HTML格式的文件,我们复制里面的数据,修改为

{“is_vip”:true,”vip_day”:10,”max_love_point”:900,”is_can_vip”:true,”current_love_point”:900,”add_vip_day”:10,”recommend_point”:7}
然后保存为txt格式(JSON格式也是可以的,这样的话编辑起来更加方便),保存地址。

回到Fiddler界面,然后选中AutoResponder,点击左边的这个数据位置,然后点击Add Rule,(也可以直接吧数据位置拖动进来),然后在Rule Editor里面的第二个位置看到下拉菜单最后一个Find a File点击打开资源管理器,选中我们修改过的格式。

在上方的Enable Rule打勾(启动这个规则,自然需要勾选上),
Unmatched requests passthrough也打勾(允许不相匹配的数据通过,不勾选会出现,Connect Error的情况)
第二个选项Accept all CONNECTs教程里面要求勾选上,但好像不勾选也是可以的。

这样配置之后点击Save(这一步操作好像也不是必须的,只要随便点击其他地方也就默认保存了)基本上就完成了。

完成的标志是:右上角伺养员剩余天数10天,然后点开爱心值900满了,其实这个修改多少并没有要求,因为我们返回的数据都是这一个。只要保证这个值比需要的值来的大就行了

最重要的标志是原先不能下载的图片(都不能下载),现在点击下载没有问题了。

Fiddler的普通操作

1.获取图片的地址

还是好多动漫这个软件。我们希望获取他的图片地址。

打开软件下滑看到得到了json数据,打开看Request Headers

GET /haoduo.php?a=new_pics&size=20&page=1&m=Pic HTTP/1.1
切换到Raw格式中,看到里面的完整数据格式

1
2
3
4
5
6
7
Authorization: bearer eyJhbGci xxx
sign: 6eeac35f352b5ae52a88588e20cb53d395787c8b
versioncode: 141
Connection: close
Host: hddm.oacg.cn
Accept-Encoding: gzip
User-Agent: okhttp/3.10.0

复制这些代码到Composer(创作),切换到Raw比较方便,然后再里面调试看看那些数据是必须的。发现Authorization,sign,versioncode是必须的,群殴他都可以省略。

然后通过这两个去构造请求头。比如在python中的代码就是:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import requests
import json, jsonpath

url = 'http://hddm.oacg.cn/haoduo.php?a=topics&size=20&page=1&m=Topic&rank_tag=2'
headers = {
'Authorization':'xxx太长了',
'sign': '6eeac35f352b5ae52a88588e20cb53d395787c8b',
'versioncode': '141'
}
r = requests.get(url, headers= headers) # 返回的Response格式,一般需要的r.text,然后用Beautiful soup或者xpath进一步处理,然后提取,也可以像我们这里一样用转化为jsonpath所需要的格式然后提取

# 转化为json格式
r_json = json.loads(r.text)
# 用jsonpath提取
jsonpath.jsonpath(r_json,'$.*') # 提取全部数据

接下来尝试利用这个代码获取图片,还是利用H-Viewer实现。