文章目录
1. 前言
2. 实现
3. 功能
4. 使用
5. 项目地址
一
前言
网上其实有很多类似的MysqlSql语句监控工具,肯定有人问为什么要造轮子。
很简单,因为在平时的代码审计中,需要一个跨平台友好、功能简单实用、并且可以支持监控错误SQL语句的小工具。
拒绝臃肿,拒绝依赖多余的工具(比如tail.exe)。
二
实现
我所知道的有两种方式来做到Mysql执行记录监控
简单的方式,打开mysql general_log,实现类似tail的功能,循环读取日志文件。
专业的方式,建立一个proxy,监测client与mysql的通信。
此工具选择第一种简单的方式
三
功能
输出Mysql所有的SQL语句执行记录,关键点循环读取日志文件利用
org.apache.commons.io.input Tailer类https://commons.apache.org/proper/commons-io/apidocs/org/apache/commons/io/input/Tailer.html
高亮显示报错语句,这点在审计中寻找注入点很有必要,具体实现利用
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/
↓↓↓ 点击"阅读原文" 【查看更多信息】