MySQL协议分析(1)
MySQL协议分析
此阶段的协议分析是在未压缩未加密情况下的协议分析
思路:
结合Oracle官网和自己用wireshark抓的网络数据包进行协议分析
官网说明
mysql包共分为4段,格式如下:
第一段:payload(通常是执行的SQL语句)的长度占3字节;
第二段:序列id占1字节;
第三段:payload类型占1字节;
第四段:payload内容占n字节,n为第一段描述的长度。
wireshark抓包分析验证
0000 1a 00 00 00 03 73 65 6c 65 63 74 20 2a 20 66 72 .....select * fr
0010 6f 6d 20 73 6d 61 6c 6c 74 61 62 6c 65 3b om smalltable;
MySQL Protocol
Packet Length: 26
Packet Number: 0
Request Command Query
Command: Query (3)
Statement: select * from smalltable;
我们看到1a 00 00 00 03就是mysql的协议头
1a 00 00 转换为10进制为26,与wireshark解析的Packet Length:26符合(也说明了wireshark原理不过就是把协议对应解析);
00 是sequence id,也就是序列id,我们没有创建序列,也就没有此id;
03 是payload的类型,对于类型说明,官网说明如下:
00 COM_SLEEP
01 COM_QUIT
02 COM_INIT_DB
03 COM_QUERY
04 COM_FIELD_LIST
05 COM_CREATE_DB
06 COM_DROP_DB
07 COM_REFRESH
08 COM_SHUTDOWN
09 COM_STATISTICS
0a COM_PROCESS_INFO
0b COM_CONNECT
0c COM_PROCESS_KILL
0d COM_DEBUG
0e COM_PING
0f COM_TIME
10 COM_DELAYED_INSERT
11 COM_CHANGE_USER
12 COM_BINLOG_DUMP
13 COM_TABLE_DUMP
14 COM_CONNECT_OUT
15 COM_REGISTER_SLAVE
16 COM_STMT_PREPARE
17 COM_STMT_EXECUTE
18 COM_STMT_SEND_LONG_DATA
19 COM_STMT_CLOSE
1a COM_STMT_RESET
1b COM_SET_OPTION
1c COM_STMT_FETCH
1d COM_DAEMON
1e COM_BINLOG_DUMP_GTID
1f COM_RESET_CONNECTION
第四段自然就是payload,也就是我们的SQL语句。
未压缩未加密的mysql协议分析完毕!
MySQL协议分析(1)的更多相关文章
- MySQL协议分析
MySQL协议分析 标签: mysql 2015-02-27 10:22 1807人阅读 评论(1) 收藏 举报 分类: 数据库(19) 目录(?)[+] 1 交互过程 MySQL客户端与 ...
- MySQL协议分析2
MySQL协议分析 议程 协议头 协议类型 网络协议相关函数 NET缓冲 VIO缓冲 MySQL API 协议头 ● 数据变成在网络里传输的数据,需要额外的在头部添加4 个字节的包头. . packe ...
- MySQL协议分析(2)
MySQL协议分析(2) 此阶段是在压缩传输无加密条件下进行的协议分析 思路 结合Oracle官网的说明和自己用wireshark加python进行数据包分析 步骤 客户端与服务器端是否压缩的协商阶段 ...
- mixer: mysql协议分析
综述 要实现一个mysql proxy,首先需要做的就是理解并实现mysql通讯协议.这样才能通过proxy架起client到server之间的桥梁. mixer的mysql协议实现主要参考mysql ...
- mysql 协议分析
MYSQL Binlog协议分析 此处不讨论建立连接,验证和handshake的交互协议 Binlog协议 一个MYSQL 通信包由包头包体组成 包体根据具体的交互协议有自身的组成结构, 在binlo ...
- mysql协议分析2---认证包
主人看到navicat和mysql在那嘻嘻哈哈,眉来眼去的,好不快乐,忽然也想自己写个程序,直接去访问Mysql,虽然现在已经有很多现成的中间件可以直接拿来用了,程序只要负责写sql语句就行了,但是主 ...
- mysql协议分析1---报文的格式和基本类型
navicat 和 mysql 是一对好基友,每天都有非常频繁的交流,主人在navicat上写下每条sql语句,轻轻的点了下执行按钮,navicat就飞快的把主人的指令传送到mysql那里,mysql ...
- mysql协议简析
前言 如果要在命令行中连接mysql,最常用的便是 mysql -u root -p 这样指定用户名和密码 当然还可以使用远程连接 mysql -h 127.0.0.1 -u root -p 还有一种 ...
- Memcache的使用和协议分析详解
Memcache的使用和协议分析详解 作者:heiyeluren博客:http://blog.csdn.NET/heiyeshuwu时间:2006-11-12关键字:PHP Memcache Linu ...
随机推荐
- zend Studio10.6.2 下载
http://www.th7.cn/Program/php/201409/286788.shtml
- C++ 构造中调用构造
//构造中调用构造 #define _CRT_SECURE_NO_WARNINGS #include<iostream> using namespace std; class Point{ ...
- VS编译错误:fatal error C1859:unexpected precompiled header error, simply rerunning the compiler might fix this problem
fatal error C1859:unexpected precompiled header error, simply rerunning the compiler might fix this ...
- __del__()
__del__() 是类的内置函数,用于定义在脚本退出之前要执行的代码,因为有这个特性,通常被用来在脚本退出前关闭文件.关闭数据库连接.关闭网络连接等操作 [root@localhost ~]$ ca ...
- Linux命令之乐--find
find是命令行工具箱中最棒的命令之一. 列出当前目录及其子目录中的文件和文件夹. [root@LAMP WebRoot]# find . -print../index.jsp./upload.jsp ...
- 第十五篇:C程序的存储空间布局
前言 C语言程序的执行必定需要耗费一定的资源,也就是说,程序在计算机内部的映像不可能就单单代码. 本文将讲解C语言程序在计算机内部的存在方式. 程序存储空间 1. 正文段:程序的机器指令部分 2. 初 ...
- Android 数据存储(XML解析)
在androd手机中处理xml数据时很常见的事情,通常在不同平台传输数据的时候,我们就可能使用xml,xml是与平台无关的特性,被广泛运用于数据通信中,那么在android中如何解析xml文件数据 ...
- 谷歌浏览器chrome://inspect/#devices调试webview的页面和控制台布局错乱问题
谷歌浏览器chrome://inspect/#devices调试webview的页面和控制台布局错乱问题 : 谷歌浏览器的版本过高,选择60版本即可: 版本 60.0.3080.5(正式版本)
- HDU2842—Chinese Rings
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2842 题目意思:一把一个n连环的前n个拿下来,一个个n连环,要把第k个拿下来,需要把前n-2个拿下来, ...
- PMP私有广告交易市场
[资源]互联网广告新知:半小时读懂PMP私有广告交易市场是什么? https://socialbeta.com/t/resource-what-is-pmp.html SocialBeta | 201 ...