会员登录 立即注册

搜索

网络数据分析神器Fiddler

[复制链接]
崎山小鹿 发表于 2024-3-17 12:29:52 | 显示全部楼层 |阅读模式
崎山小鹿
2024-3-17 12:29:52 5312 0 看全部
一、Wireshark 下载

非盈利性 Wireshark 基金会支持 Wireshark 的开发,这是一款免费的开源工具,全球数百万人使用。

wirechark

wirechark


过滤语法简单介绍
wireshark的过滤语法总结起来其实也很简单,就是以协议开头,后面可以跟着协议的属性,然后加上一些判断符号,比如contains、==、>、<等等。比如只想展示http的协议内容,则直接在过滤器输入框中输入http即可

优缺点

优点:

1、功能强大,可以抓取所有协议的包

2、抓到的包容易分析

缺点:

1、由于线上服务器没有GUI,只有命令行,因此无法在线上服务器使用

2、无法分析https数据包,由于wireshark是在链路层获取的数据包信息,所以获取到的https包是加密后的数据,因此无法分析包内容。当然,我们可以对https数据包进行解密, 但是操作具有一定的复杂度,可能要消耗很多时间。


过滤掉目标地址为 8.8.8.8
!ip.dst == 8.8.8.8

过滤掉
!ip.dst == 8.8.8.8  and !ip.dst == 8.8.4.4 and !dns and !ssdp and !_ws.col.protocol == "IGMPv3" and !_ws.col.protocol == "ARP"

(!ip.dst == 8.8.8.8  and !ip.dst == 8.8.4.4 and !dns and !ssdp and !_ws.col.protocol == "IGMPv3" and  !_ws.col.protocol == "ARP")  and  !(_ws.col.protocol == "UDP")

((!ip.dst == 8.8.8.8  and !ip.dst == 8.8.4.4 and !dns and !ssdp and !_ws.col.protocol == "IGMPv3" and  !_ws.col.protocol == "ARP")  and  !(_ws.col.protocol == "UDP") ) && !(_ws.col.protocol == "BT-DHT")

筛选网址:

通过IP和域名筛选

ip.dst == 39.105.141.205 and http.host == "jinshuangshi.com"

(ip.src == 120.232.51.242 || (ip.dst == 120.232.51.242)) && (_ws.col.protocol == "HTTP")

(http.host == "u.refblogs.com") || (ip.dst == 211.159.166.105) || (http.host == "www.jinshuangshi.com") || (http.host == "jinshuangshi.com")

uri中的关键词搜索
http.request.uri matches "viewthread"

从微信小程序开发文档上了解到,产品模式下微信小程序强制要求客户端和服务端通过HTTPS协议进行交互(传统的手机App并没有这种限制),而不允许不安全的HTTP。这就意味着如果直接抓包(例如,使用Wireshark),我们看到的也是一堆乱码(HTTPS数据是加密传输的),无法了解交互的接口和过程。

二、Fiddler
Web协议调试神器Fiddler,它最强大的地方就是能够抓取并明文展示HTTPS报文。它抓取HTTPS的原理是这样的,首先Fiddler是以HTTPS代理模式工作的,当Fiddler接收到客户端(浏览器)CONNECT请求时,它冒充服务端(网站)接受客户端的请求,并回送客户端一个伪造的证书,并冒充客户端(浏览器)和真实的服务端(网站)建立连接,之后它就充当一个中间人的角色,向服务端(网站)转发客户端(浏览器)的请求数据,向客户端(浏览器)转发服务端(网站) 的应答数据。对于这个中间人来说两边的请都是和其直接建立的,所以两边发送的数据它都能解密成明文

Fiddler下载

需要注册一个账号才能使用

安装之后会默认添加一个代理端口:8866

允许远程连接

允许远程连接


安装证书
微信截图_20240318083239.png

微信截图_20240317173503.png

安卓设置代理教程
打开设置
进入WLAN.
选择已连接的WIFI网络 点 方向箭头 进入设置
进入代理设置 点击 手动
配置代理服务器 主机名:填入代理服务器IP. 端口:填入端口号 点击右上角保存按钮 使用提示 ...
确认代理设置成功

Fiddler高级应用
1.断点调试
bpu 在请求开始时中断
bpafter 在响应到达时中断
bps 在特定http状态码时中断
bpv/bpm 在特定请求method时中断
用bpu命令对特定url设置断点,这种方式断点设在Before Requests。取消断点时只需要再执行bpu命令即可。 执行如下命令(如下图):

bpu www.baidu.com/
清除断点命令
bpu

2.URL地址重写
urlreplace a.com b.com

3.使用脚本
添加一个Rules设置,在fiddlerScript中添加如下代码
    public static RulesOption("是否开启替换请求URL参数")
        BindPref("fiddlerscript.rules.isURL")
        var m_isURL: boolean = false;


在static function OnBeforeRequest(oSession: Session) {}内添加如下代码
if(m_isURL){
            //这里一般填写Host+?前面的的内容,因为?后面的内容容易变动
            //这里由于问题中的人说会变动,那么我们就直接写host            

            if(oSession.fullUrl.Contains("www.jinshuangshi.com")){

                try{
                    //问题中是把M6替换,那你就把UpdateCheck替换成M6,而52pojie替换成想替换的字符串
                    oSession.fullUrl = oSession.fullUrl.Replace("tid=132","tid=133")

                }catch(err){

                    FiddlerObject.log("出现异常,错误原因:"+err)

                }
            }
        }


◆判断请求 uri 是否包含某些字符
oSession.uriContains("xieboke.net")
oSession.fullUrl.Contains("xieboke.net")

◆获取返回结果并转成 字符串
oSession.GetResponseBodyAsString();

◆获取 json 返回结果中的中某个字段
var response_string = oSession.GetResponseBodyAsString();

// 字符串 转成可以操作的 json 格式
var response_json = Fiddler.WebFormats.JSON.JsonDecode(response_string);
var is_double = response_json.JSONObject["isDouble"]

◆修改 Session 的样式等
oSession["ui-backcolor"] = "yellow"; // 背景色 - yellow 黄色,red 红色,green 绿色,Lavender 淡紫色
oSession["ui-color"] = "red"; // 字体颜色
oSession["ui-hide"] = "true"; // 不显示
oSession["ui-bold"]="true"; // 字体加粗
oSession["ui-italic"] = "yup"; //设置字体斜体,字符串无所谓
oSession["ui-customcolumn"] = '高佣api'; //设置Custom一列显示文案
FiddlerObject.playSound("C:\windows\media\tada.wav"); //设置请求时播放的声音

◆打印日志
FiddlerApplication.Log.LogString("xieboke_net_log: " + "test");

◆获取请求的参数
oSession.oRequest.headers; // 获取整个请求头
oSession.oRequest.headers["token"]; // 获取 请求头 token 的值
oSession.oRequest.headers.Exists("Authorization"); // 判断请求头 Authorization 是否存在
oSession.Hostname; // 获取请求的域名
oSession.port; // 获取请求的端口

◆在消息框中显示 HTTP POST 正文
oSession.requestBodyBytes
var oBodyString = System.Text.Encoding.UTF8.GetString(oSession.requestBodyBytes);//解码

◆修改请求头的参数
oSession.RequestHeaders.Remove("User-Agent"); // 删除 User-Agent 传参
oSession.RequestHeaders["uid"] = "0"; //修改请求头

OnBeforeRequest在每个请求之前调用,OnBeforeResponse在每个响应之前调用。

// 字符串 转成可以操作的 json 格式
var response_json = Fiddler.WebFormats.JSON.JsonDecode(response_string);
var is_double = response_json.JSONObject["isDouble"]

//使用正则表达式修改token

                        var oBodyString = System.Text.Encoding.UTF8.GetString(oSession.responseBodyBytes);
                        var oRegEx = /"token":"(.*?)"/gi;
                        oBodyString = oBodyString.replace(oRegEx, "\"token\":\"be5466bb44034d4fbbf8cdfbef4b0368\"");
                        FiddlerApplication.Log.LogString("c.dun.163.com/api/v2/mp/check oBodyString: " + oBodyString);
                        oSession.utilSetResponseBody(oBodyString);



参考:
https://www.jianshu.com/p/47ddbf92d00e
Fiddler 的旧版本
【Fiddler】利用Fiddler中的FiddlerScript自动替换请求URL中的字符


三、MitmProxy
这是一个用 Python 编写的工具,其安装使用简单,而且通过与自定义的 Python 脚本相结合,可以非常方便的篡改 request 和 response 内容官网

安装配置 MitmProxy
安装非常简单,直接 pip 即可
pip install mitmproxy

安装

安装


安装成功:
Successfully built pyperclip
Installing collected packages: urwid-mitmproxy, sortedcontainers, pyperclip, pydivert, publicsuffix2, passlib, Brotli, zstandard, tornado, ruamel.yaml.clib, pyparsing, pylsqpack, msgpack, mitmproxy_windows, ldap3, kaitaistruct, Jinja2, itsdangerous, hyperframe, hpack, h11, colorama, blinker, attrs, asgiref, wsproto, ruamel.yaml, mitmproxy-rs, h2, cryptography, click, service-identity, pyOpenSSL, flask, aioquic, mitmproxy
Successfully installed Brotli-1.1.0 Jinja2-3.1.3 aioquic-0.9.25 asgiref-3.7.2 attrs-23.2.0 blinker-1.7.0 click-8.1.7 colorama-0.4.6 cryptography-42.0.5 flask-3.0.2 h11-0.14.0 h2-4.1.0 hpack-4.0.0 hyperframe-6.0.1 itsdangerous-2.1.2 kaitaistruct-0.10 ldap3-2.9.1 mitmproxy-10.2.4 mitmproxy-rs-0.5.1 mitmproxy_windows-0.5.1 msgpack-1.0.8 passlib-1.7.4 publicsuffix2-2.20191221 pyOpenSSL-24.0.0 pydivert-2.1.0 pylsqpack-0.3.18 pyparsing-3.1.2 pyperclip-1.8.2 ruamel.yaml-0.18.6 ruamel.yaml.clib-0.2.8 service-identity-24.1.0 sortedcontainers-2.4.0 tornado-6.4 urwid-mitmproxy-2.1.2.1 wsproto-1.2.0 zstandard-0.22.0

启动

mitmproxy

启动

启动


在手机上设置代理就可以截获到手机的访问数据了。
微信图片_20240318093548.png
点击链接可以查看详细信息(无法查看图片),按q键返回。

https的数据自动解析
微信图片_20240318100415.png
拿到账号也就不在话下了

账号

账号


手机对代理的信任需要安装证书


访问:http://mitm.it/
If you can see this, traffic is not passing through mitmproxy.
如果你能看到这一点,交通并没有通过mitmproxy。


请求经过代理转发之后请求会有什么变化呢?
要判断请求是否来自代理,可以通过检查请求头中的一些特定字段来判断。以下是一些常见的请求头字段,可以用来判断请求是否来自代理:

X-Forwarded-For:该字段表示请求经过的代理服务器的 IP 地址列表。如果请求经过了多个代理服务器,则该字段会包含多个 IP 地址。
X-Real-IP:该字段表示请求的真实 IP 地址,即客户端的 IP 地址。
Via:该字段表示请求经过的代理服务器列表。如果请求经过了多个代理服务器,则该字段会包含多个代理服务器的名称。
Forwarded:该字段表示请求的转发信息,包括请求的原始 IP 地址、端口号等信息。
通过检查这些请求头字段,可以判断请求是否来自代理。如果这些字段中包含了代理服务器的信息,则说明请求是通过代理发送的。
client-ip:

需要注意的是,这些请求头字段可以被伪造或篡改,因此不能完全依赖这些字段来判断请求是否来自代理。在实际应用中,需要结合其他方式来判断请求是否来自代理,例如使用 IP 地址白名单、验证码等方式。

另外要调试微信小程序呢可以使用下面这个方法
微信小程序抓包新方式一


四大网络抓包神器,总有一款适合你 mitmproxy的用法

wireshark 实用过滤表达式(针对ip、协议、端口、长度和内容)  wireshark 的用法

如何抓取微信小程序的数据?  Fiddler的使用

以羊了个羊为例,浅谈小程序抓包与响应报文篡改 mitmproxy修改返回数据的用法

FiddlerScript 规则


天不生墨翟,万古如长夜!以墨运商,以商助墨。金双石科技长期招聘科技研发人才!微信:qishanxiaolu   电话:15876572365   公司:深圳市金双石科技有限公司
回复

使用道具 举报

  • 您可能感兴趣
  • 墨山游侠出生地
    墨山游侠出生地
    出生地寄语: 欢迎来到墨山游侠游戏,本游戏由一群爱好和平与友爱,崇尚墨家兼爱非攻
    12-25
  • 墨山游侠迎来第二次大火
    墨山游侠迎来第二次大火
    2024年12月23日晚11点左右,游戏里出现第二场大火,比第一次更大,七八个建筑在同
    12-24
  • 墨山监狱
    墨山监狱
    -252,63,654
    12-23
  • PC用户如何玩墨山游侠
    PC用户如何玩墨山游侠
    首先去网易我的世界官网上下载客户端安装程序安装,地址:https://mc.163.com/ 安装成
    12-23
  • 墨家小镇的大火
    墨家小镇的大火
    谁曾想今天会经历一场大火,一个叫“六花六花的狗”到村庄里到处放火,将岩浆倒到我们
    12-22
您需要登录后才可以回帖 登录 | 立即注册 |

本版积分规则 返回列表

管理员给TA私信
以墨运商,以商助墨。

查看:5312 | 回复:0

  • 墨山游侠出生地

    出生地寄语: 欢迎来到墨山游侠游戏,本游戏由一群爱好和平与友爱,崇尚墨家兼爱非攻

    阅读:84|2024-12-25
  • 墨山游侠迎来第二次大火

    2024年12月23日晚11点左右,游戏里出现第二场大火,比第一次更大,七八个建筑在同

    阅读:164|2024-12-24
  • 墨山监狱

    -252,63,654

    阅读:194|2024-12-23
  • PC用户如何玩墨山游侠

    首先去网易我的世界官网上下载客户端安装程序安装,地址:https://mc.163.com/ 安装成

    阅读:186|2024-12-23
  • 墨家小镇的大火

    谁曾想今天会经历一场大火,一个叫“六花六花的狗”到村庄里到处放火,将岩浆倒到我们

    阅读:222|2024-12-22
  • 墨山游侠中的墨子图书馆

    昨天成绩斐然,收获两栋漂亮海滨别墅,和一个高级瞭望塔,但同时损失惨重,村民损失九

    阅读:252|2024-12-22
  • 墨家小镇文化与经济

    文化建设: 墨家十要 旗帜: 八卦 双鱼戏水 经济建设: 麦田、 甘蔗田

    阅读:373|2024-12-20
  • 墨者的面具

    仿照三星堆的面具做头像

    阅读:336|2024-12-19
  • 从出生地前往墨家小镇集合

    装饰一下出生地 现在有路标了,通过路标让会员找到我们的村庄,一路要非常小心不

    阅读:429|2024-12-18
  • 墨家盾牌和武器

    盾牌上有墨家的标志,武器上也有墨家的特色

    阅读:382|2024-12-17
金双石科技,软件开发20年,技术行业领先,您的满意,就是我们的目标,认真负责,开拓进取,让成品物超所值
关于我们
公司简介
发展历程
联系我们
本站站务
友情链接
新手指南
内容审核
商家合作
广告合作
商家入驻
新闻合作

手机APP

官方微博

官方微信

联系电话:15876572365 地址:深圳市宝安区西乡街道宝民二路宝民花园 ( 粤ICP备2021100124号-1 ) 邮箱:qishanxiaolu@qq.com
QQ|Powered by Discuz! X3.5 © 2001-2024 Discuz! Team.
快速回复 返回顶部 返回列表