会员登录 立即注册

搜索

网络数据分析神器Fiddler

[复制链接]
崎山小鹿 发表于 2024-3-17 12:29:52 | 显示全部楼层 |阅读模式
崎山小鹿
2024-3-17 12:29:52 1171 1 看全部
一、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 规则


回复

使用道具 举报

DarylPierce 发表于 2024-6-18 14:50:13 | 显示全部楼层
DarylPierce
2024-6-18 14:50:13 看全部
I think that when using app comunicación modilimitado.io application it will not affect anything because I have tried it before with my old computer
回复

使用道具 举报

  • 您可能感兴趣
  • 站长日记-天道与畜生道
    站长日记-天道与畜生道
    天道无情,但众生平等,无为却处处体现博爱。畜生道有情,讲的是尊卑次序只为繁衍,处
    06-20
  • 独爱墨子
    独爱墨子
    也许是天生的吧,在中小学的时候接触到一些良言警句,读起来觉得非常舒服,非常认同
    07-25
  • 墨子
    墨子
    墨子(公元前476或480年—公元前390或420年),名翟,春秋末期战国初期宋国人 [1-2],
    07-22
  • 3D数字人制作-Character creator
    3D数字人制作-Character creator
    Character creator 《角色创建者》是由Reallusion [1]公司推出的一款3D角色建模软件,
    07-08
  • discuz如何上传并插入一段本地视频并支持播放
    discuz如何上传并插入一段本地视频并支持播
    前提是论坛已经开启了插入视频的功能。 1.打开查看附件地址的功能 请到管理后台进行设
    03-11
您需要登录后才可以回帖 登录 | 立即注册 |

本版积分规则 返回列表

查看:1171 | 回复:1

  • 独爱墨子

    也许是天生的吧,在中小学的时候接触到一些良言警句,读起来觉得非常舒服,非常认同

    阅读:90|2024-07-25
  • 2 墨子
    墨子

    墨子(公元前476或480年—公元前390或420年),名翟,春秋末期战国初期宋国人 [1-2],

    阅读:200|2024-07-22
  • 全球大量用户系统蓝屏现象始末

    日本东京时间2024年7月19日13时30分左右开始,日本地区运行微软视窗(Windows)操作系

    阅读:244|2024-07-20
  • 免费在线 Autodesk FBX 到 OpenUSD 转换器

    免费在线 Autodesk FBX 到 OpenUSD 转换器 https://products.aspose.app/3d/zh-cn/co

    阅读:426|2024-07-10
  • 3D数字人制作-Character creator

    Character creator 《角色创建者》是由Reallusion [1]公司推出的一款3D角色建模软件,

    阅读:638|2024-07-08
  • 第九区

    第九区的本质是创建一个世界模型,希望用这个世界模型能为老百姓和政府提供数据和推理

    阅读:426|2024-07-07
  • Discuz强大的广告系统

    强大的广告系统 页头通栏广告:页头通栏广告显示于论坛页面右上方 全局 页尾通栏广

    阅读:286|2024-07-07
  • 对于老百姓而言VR到底能做什么?

    VR技术自诞生以来不断发展,已经广泛应用于教育、医疗、工程、军事、航空、航海、影视

    阅读:381|2024-07-06
  • 剪映数字人口播原理

    剪映版本升级了,新版本6.0.1支持数字人定制,于是我赶紧申请了使用资格 目前的价格

    阅读:520|2024-07-03
  • 科学作息AI助手

    在魔塔空间创建了一个作息时间管理的agent >>>>>点我体验

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

手机APP

官方微博

官方微信

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