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协议分析完毕!

最新文章

  1. supervisor的安装与简单介绍
  2. maven 环境的配置 JAVA_HOME not found in your envirnment
  3. TCP状态转换图详解
  4. 记录对依赖注入的小小理解和autofac的简单封装
  5. Backbone入门——开发第一个Backbone页面
  6. Visual Studio 编译纯 C 项目的方法
  7. Guava API学习之Multimap
  8. offsetParent和parentNode区别
  9. STL vector使用方法介绍
  10. hive入门(一)、什么是hive
  11. Windows Server 2012 R2安装SqlServer 2016
  12. 「AtCoder Grand018B」Sports Festival(暴力)
  13. js类型----你所不知道的JavaScript系列(5)
  14. 深入理解JVM(一)——JVM内存模型
  15. POJ 1066 - Treasure Hunt - [枚举+判断线段相交]
  16. window 安装 Twisted 遇到的问题
  17. 《深入分析Java Web技术内幕》读书笔记之JVM内存管理
  18. bzoj 4303 数列
  19. Sandglass
  20. Storm基本概念以及Topology的并发度

热门文章

  1. Gogs http和ssh地址显示localhost的问题
  2. 图形用户界面(Graphical User Interface,简称 GUI,又称图形用户接口)
  3. printf 字体颜色打印
  4. php -- instanceof、class_exists、insterface_exists、method_exists、get_class、get_parent_class
  5. Codeforces Round #265 (Div. 2)
  6. (转)c指针问题
  7. 从头认识java-18.2 主要的线程机制(2)-Executors的使用
  8. OSG四元数与欧拉角之间的转换
  9. php做图片上传功能
  10. 【黑金原创教程】【Modelsim】【第四章】激励文本就是仿真环境