前言
在上一篇文章 ShardingSphere 联邦查询 GROUPING 聚合结果问题分析中,我们详细介绍了联邦查询引擎实现 GROUPING 聚合函数存在的问题,当时笔者曾提到 SQLacner 测试工具,它能够通过一些科学的方法来发现 SQL 逻辑问题,帮助提升联邦查询引擎的 SQL 支持度。本文将为大家详细介绍 SQLacner 测试工具,以及工具中内置的几种测试方法,然后我们会使用 SQLacner 工具,直接对联邦查询引擎进行测试,看看这个工具是否能够达到预期的测试效果,发现一些有价值的 SQL 漏洞。
什么是 SQLacner
SQLacner 项目,是由 Manuel Rigger 教授创建的,旨在发现数据库 SQL 引擎的逻辑 BUG,Manuel Rigger 教授曾在 Andy 组织的线上分享中介绍过 SQLacner,感兴趣的朋友可以观看 Finding Logic Bugs in Database Management Systems 视频了解。
SQLancer is a tool to automatically test Database Management Systems (DBMSs) in order to find bugs in their implementation. That is, it finds bugs in the code of the DBMS implementation, rather than in queries written by the user. SQLancer has found hundreds of bugs in mature and widely-known DBMSs.
根据官方文档介绍,SQLancer 是一款用于自动测试数据库管理系统的工具,用于查找数据库实现逻辑中的错误。它查找的是 DBMS 实现代码中的错误,而不是用户编写 SQL 中的错误。目前,SQLancer 已在众多主流的 DBMS 中发现了数百个错误。
TODO
PQS 测试方法
TODO
NoREC 测试方法
TODO
TLP 测试方法
TODO
CERT 测试方法
TODO
联邦查询测试实战
SQLancer 测试 java -jar sqlancer-*.jar --num-threads 4 --port 3307 --username root --password root mysql
TODO
欢迎关注
欢迎关注「端小强的博客」微信公众号,会不定期分享日常学习和工作经验,欢迎大家关注交流。

