【工具开源】MysqlSql语句监控工具——MysqlLogMonitor
2020-7-13 16:48:28 Author: mp.weixin.qq.com(查看原文) 阅读量:4 收藏

文章目录
 
  1. 1. 前言

  2. 2. 实现

  3. 3. 功能

  4. 4. 使用

  5. 5. 项目地址

前言

网上其实有很多类似的MysqlSql语句监控工具,肯定有人问为什么要造轮子。
很简单,因为在平时的代码审计中,需要一个跨平台友好、功能简单实用、并且可以支持监控错误SQL语句的小工具。
拒绝臃肿,拒绝依赖多余的工具(比如tail.exe)。

实现

我所知道的有两种方式来做到Mysql执行记录监控

  1. 简单的方式,打开mysql general_log,实现类似tail的功能,循环读取日志文件。

  2. 专业的方式,建立一个proxy,监测client与mysql的通信。

此工具选择第一种简单的方式


功能
  1. 输出Mysql所有的SQL语句执行记录,关键点循环读取日志文件利用
    org.apache.commons.io.input Tailer类https://commons.apache.org/proper/commons-io/apidocs/org/apache/commons/io/input/Tailer.html

  2. 高亮显示报错语句,这点在审计中寻找注入点很有必要,具体实现利用

druid SQL语法校验https://github.com/alibaba/druid/wiki/SQL-Parser

使用

mysql 高版本 general_log 不会记录执行错误的SQL语句到日志,需要在配置文件中[mysqld]中设置log-raw=1

本地测试了三个mysql版本

  • mysql5.5 不需要log-raw

  • mysql7.5 需要log-raw

  • mysql8.0.16 需要log-raw

mysql≥ 8.0.19 可以通过系统变量log_raw设置

log_raw

正常语句

高亮报错语句

项目地址

https://github.com/J0hnWalker/MysqlMonitor

版权声明:

本文由团队成员Walker@MS509原创,转载请注明来源。

MS509简介:
 
MS509是中国电子科技网络信息安全有限公司(简称“中国网安”)旗下从事安全漏洞挖掘及利用方法研究的纯技术研究团队,研究方向包括WEB安全、红蓝对抗、移动安全、逆向分析、二进制安全、智能硬件(IOT)安全、工控安全、无线安全、APT攻击追踪溯源、安全编程等。更多团队动态,尽在博客www.ms509.com;微博搜索 MS509。
加入我们:https://www.ms509.com/contact/

↓↓↓ 点击"阅读原文" 【查看更多信息】  


文章来源: https://mp.weixin.qq.com/s?__biz=MzAwODgxNTA2NA==&mid=2650935504&idx=1&sn=3903f181601834e2d8f716c21d6115d6&chksm=809f9867b7e81171ebb5b95bf3a671bd30adc89bee0364471c818eabe45567e62d4f74802f73&scene=58&subscene=0#rd
如有侵权请联系:admin#unsafe.sh