0x01 使用方式

/!50554 aaaaa /;

0x02 数据库版本

  1. mysql> select VERSION();
  2. +-----------+
  3. | VERSION() |
  4. +-----------+
  5. | 5.5.53 |
  6. +-----------+
  7. 1 row in set

0x03 实验

  1. mysql> select * from tdb_admin limit 0,1/*!50550 aaa */;
  2. 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

重点:记住是大于,大于,大于


  1. mysql> select * from tdb_admin limit 0,1/*!50554 aaa */;
  2. +----+----------+----------------------------------+
  3. | id | username | password |
  4. +----+----------+----------------------------------+
  5. | 1 | admin | 7fef6171469e80d32c0559f88b377245 |
  6. +----+----------+----------------------------------+
  7. 1 row in set

这次返回正常说明mysql版本小于5.5.54

所以猜数据库版本的方法就是/!xxxx aaaa/ 一直从爆错试到不爆错-1

例如:
/!50552 aaaa/ 爆错
/!50554 aaaa/ 不爆错

那么50554-1=50553 所以版本号为:5.5.53