1.mysql 隐式转换
如果两个参数比较,有至少一个NULL,结果就是NULL,除了是用NULL<=>NULL 会返回1。不做类型转换
两个参数都是字符串,按照字符串比较。不做类型转换
两个参数都是整数,按照整数比较。不做类型转换
如果不与数字进行比较,则将十六进制值视为二进制字符串。
有一个参数是 TIMESTAMP 或 DATETIME,并且另外一个参数是常量,常量会被转换为时间戳
有一个参数是 decimal 类型,如果另外一个参数是 decimal 或者整数,会将整数转换为 decimal 后进行比较,如果另外一个参数是浮点数,则会把 decimal 转换为浮点数进行比较
所有其他情况下,两个参数都会被转换为浮点数再进行比较
最后那一句话很重要,说明如果我是字符串和数字比较,需要将字符串转为浮点数,这很明显会转换失败
1a会被转化为1
a会被转化为 0
2.利用方法
当我们遇到引号闭合的变量时
我们可以利用false进行盲注
算数运算
username= 'admin'+(payload)
username ='admin'-(payload)
username ='1abc'* (payload)
username ='1abc'/ (payload)
username='1abc'%(payload)
逻辑运算
username='admin'<>(payload)
username='admin'=(payload)
位运算
username='1abc'&(payload)
........
其他还有很多,就不一一举例了