Mysql隐式类型转换

Posted by Jaqen Blog on February 14, 2019

Mysql隐式类型转换

今天遇到有人提问,内容如下
图片1

图片2

其实这是由于Mysql的类型转换特性,前面的id=’1’无非产生0和1两个结果,和’‘比较,字符串和数字比较时字符串会转为浮点数,’‘转换失败返回结果为0。最后就是(id=’1’)=0,得出id!=1的结果集。

图片3
如上图,’a’转换失败为0,0=0返回1;’1a’转换浮点数返回1,0=1返回0;

这个tips是我测试mysql盲注的最小poc,数字型注入:news.php?id=1正常返回,news.php?id=1=0返回除正常外的内容,news.php?id=1=1正常返回。字符型注入:news.php?id=1正常返回,news.php?id=1’=0#返回除正常外的内容,news.php?id=1’=1#正常返回
如上。