0x01 使用方式
/!50554 aaaaa /;
0x02 数据库版本
mysql> select VERSION();
+-----------+
| VERSION() |
+-----------+
| 5.5.53 |
+-----------+
1 row in set
0x03 实验
mysql> select * from tdb_admin limit 0,1/*!50550 aaa */;
1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'aaa */' at line 1
爆错了,因为/!50550 aaa /;的意思就是说,大于5.5.50才执行
而我们的数据库版本是5.5.53 所以会执行 aaa 这说明数据库版本大于5.5.50
重点:记住是大于,大于,大于
mysql> select * from tdb_admin limit 0,1/*!50554
aaa */;
+----+----------+----------------------------------+
| id | username | password |
+----+----------+----------------------------------+
| 1 | admin | 7fef6171469e80d32c0559f88b377245 |
+----+----------+----------------------------------+
1 row in set
这次返回正常说明mysql版本小于5.5.54
所以猜数据库版本的方法就是/!xxxx aaaa/ 一直从爆错试到不爆错-1
例如:
/!50552 aaaa/ 爆错
/!50554 aaaa/ 不爆错
那么50554-1=50553 所以版本号为:5.5.53