流量分析。

流量分析

在Wireshak抓包可以看到正常的执行流程如下:
● Client向Server发起Load data local infile请求
● Server返回需要读取的文件路径
● Client读取文件内容并发送给Server
● PS:在本机上启动服务端与客户端,启动wireshark 抓包,要选择回环接口:Adapter for lookback traffic capture ,如果选择本地连接,会抓不到流量包。

MySQL客户端使用TCP协议作为底层传输协议,而使用Mysql公司自身的mysql Protocol协议作为应用层协议。我们可以通过Wireshark抓包工具,对MySQL客户端访问服务器过程中交换的mysql Protocol协议进行分析,从而深入理解MySQL数据库软件的工作原理。
附Wireshark支持分析的协议表:

本文使用两台电脑实现抓包操作,一台电脑作为服务器(ip: 192.168.0.102),另外一台电脑作为客户端(ip: 192.168.0.108)。使用Wireshark抓取MySQL数据包操作步骤如下:
1.将Wireshark软件打开,并在过滤器里输入“mysql”,然后启动监听过程;

2.使用客户端工具访问服务器

3.查看MySQL客户端登陆服务器捕捉过程

附上查询数据表数据的抓包截图:

注: mysql 协议默认分析的是 3306端口的数据;如果你的端口不是3306,请先在如下配置修改端口分析
wireshark-》编辑-》首选项-》protocol下找到myqsl

网络协议

TCP/IP协议图

筛选mysql流量
接着进行抓包。
通过过滤条件过滤出报文 协议 mysql 或端口 tcp.port == 3306

在Greeting包返回了服务端的版本等信息 

 

然后使用navicat客户端连接服务端。接着看到一个Request Query包,客户端发送请求。

在客户端连接MySQL服务端后,向服务端发起查询请求


服务端返回一个Response TABULAR,指定读取的文件路径

客户端读取文件内容并发送给服务端
从上面交互过程可以看出,在Client向Server发起查询后,Server会返回一个Response TABULAR的响应包。而如果在这个数据包中指定文件路径,就可以读取Client相应的文件。实际上Server可以在回复任何Client端的请求时返回Response TABULAR响应包,而不仅仅是在Client发起Load data local infile后。

应用场景

攻击者在对目标网站进行攻击时,通常会发现网站的一些漏洞,我们这里使用蜜罐技术,故意暴露我们的MySQL数据库,将数据库设置弱口令,让攻击者可以爆破出账号密码,使用工具进行连接。攻击者在使用navicat连接我们的数据库时成功后,我们可以执行代码,利用MySQL读取文件获取到攻击者的手机号、微信号、地址等信息。
mysql蜜罐读取敏感信息

使用方法

下载文件之后,启动3306端口
python2 exp_dicc.py 3306

成功读取
C:/windows/win.ini
C:/windows/system.ini
读配置文件


读取微信id

在Windows中,Windows下,微信默认的配置文件放在:C:\Users\username\Documents\WeChat Files\All Users\config\config.data 中含有微信ID及网络名称:

读取手机号和微信ID的方法(默认常见微信文件路径):
通过C:/Windows/PFRO.log获取windows用户名
通过C:/Users/用户名/Documents/WeChatFiles/AllUsers/config/config.data获取wxid
通过C:/Users/用户名/Documents/WeChatFiles/wx_id/config/AccInfo.dat获取微信号、手机号

 

可以通过这串代码来将id转换为二维码。

import qrcode
from PIL import Image
import os# 生成二维码图片
# 参数为wxid和二维码要保存的文件名
def make_qr(str,save):qr=qrcode.QRCode(version=4,  #生成二维码尺寸的大小 1-40  1:21*21(21+(n-1)*4)error_correction=qrcode.constants.ERROR_CORRECT_M, #L:7% M:15% Q:25% H:30%box_size=10, #每个格子的像素大小border=2, #边框的格子宽度大小)qr.add_data(str)qr.make(fit=True)img=qr.make_image()img.save(save)# 读取到的wxid
wxid = 'wxid_u3mntwd4glaq22'
qr_id = 'weixin://contacts/profile/' + wxid
make_qr(qr_id,'demo.jpg')

可以通过读取.从C:/Users/用户名/Documents/WeChat Files/wx_id/config/AccInfo.dat,获取微信号、绑定的手机号、邮箱等信息。

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/670262.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Magic Studio Eraser API使用教程

AI橡皮擦 - 使用网址 Magic Studio的AI橡皮擦功能非常好用,能去除图片中的杂物。但是网页版只支持低分辨率下载,想要原图就得开会员,价格不菲。 不过官网其实提供了API接入方式,并且有100次的免费试用机会 API接入网站 在这里可…

数据结构===树

文章目录 概要概念相关概念 有哪些常用的树小结 概要 树是一种新的数据结构,不同于数组,链表。就像大自然中的树,看下这个数据结构,很有意思,有一个主干,然后还有很多树叉,即支干。不错&#xf…

全方位了解 Meta Llama 3

本文将为您提供 Llama 3 的全面概览,从其架构、性能到未来的发展方向,让您一文了解这一革命性大语言模型的所有要点。 Meta Llama 发展历程 Llama 1 Llama 是由 Meta(FaceBook) AI 发布的一个开源项目,允许商用,影响力巨大。Lla…

生成requirements.txt文件

前言 对于Python项目,生成和使用requirements.txt是十分必要的。通过requirements.txt可以一次性保存和安装项目所需要的所有库。尤其是在复现github上的实验代码时。 方法1 常用的命令 pip freeze > requirements.txt然而这种方法并不好用,有时会…

【C++】stack、queue和priority_queue的模拟实现

在本篇博客中,作者将会讲解STL中的stack、queue和priority_queue的模拟实现,同时还会带大家了解一下deque这个容器。 一.什么是适配器 STL中一共有6大组件:容器,适配器,空间配置器,仿函数,迭代器…

41.乐理基础-拍号-小节、小节线、终止线

小节线:下图红框中的竖线就是小节线 小节、终止线:最后的终止线就是文字意思表示乐谱结束了,后面没有了 下图中 0.5表示0.5拍(八分音符)、1表示1拍(四分音符)、0.25表示0.25拍(十六分…

Python+Selenium 实现自动化测试

🍅 视频学习:文末有免费的配套视频可观看 🍅 关注公众号【互联网杂货铺】,回复 1 ,免费获取软件测试全套资料,资料在手,涨薪更快 安装selenium 打开命令控制符输入:pip install -U …

Vue前端环境准备

vue-cli Vue-cli是Vue官方提供的脚手架,用于快速生成一个Vue项目模板 提供功能: 统一的目录结构 本地调试 热部署 单元测试 集成打包上线 依赖环境:NodeJs 安装NodeJs与Vue-Cli 1、安装nodejs(已经安装就不用了) node-…

揭秘“循环购”模式:为何商家如此慷慨,消费者又能获利?

亲爱的朋友们,我是吴军。今天,我将为大家揭开一种备受瞩目的商业模式——“循环购”的神秘面纱。你是否也好奇,为何商家愿意在你消费后给予丰厚的回馈,甚至让你在消费过程中还能赚取收益?这种模式的背后到底隐藏着什么…

每日一题 盛最多水的容器

. - 力扣(LeetCode) 思路分析: 利用函数的单调性解决这道题两端取最小,最小的往里找就是高不变或者缩小 宽减少 一定是减小的因此这题可以使用左右指针实现 public int maxArea(int[] height) {int left 0;int right height.length - 1;i…

设计模式之模板模式TemplatePattern(五)

一、模板模式介绍 模板方法模式(Template Method Pattern),又叫模板模式(Template Pattern), 在一个抽象类公开定义了执行它的方法的模板。它的子类可以更需要重写方法实现,但可以成为典型类中…

方法的入栈和出栈

一.作用域问题 1.全局作用域 在全局都能进行访问的变量 var a 10;function fn() {var b 20;return a b;}console.log(fn()); 2.局部的作用域 只能在限定的范围内进行访问 function fn() {var b 20;}console.log(b); b is not defined 打印的结果是b这个变量没用定义 3…