会员登录 立即注册

搜索

网络数据分析神器

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

                }
            }
        }


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 规则


回复

使用道具 举报

  • 您可能感兴趣
您需要登录后才可以回帖 登录 | 立即注册 |

本版积分规则 返回列表

查看:204 | 回复:0

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

手机APP

官方微博

官方微信

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