研究人员发现,使用group by子句结合rand()函数以及像count(*)这样的聚合函数,在SQL查询时会出现错误,且错误是随机产生的,这就产生了双重查询注入。
到底为什么floor()、rand(0)、count()、group by相结合,会产生这种错误呢?转载以前乌云一位哥的文章:
种子值为0的rand()函数的输出几乎固定为01101
Okay let get it straight:
关键点在于:在插入虚拟表的时候又要执行一次rand(0),而插入前后rand(0)的值可能出现改变。
rand(0):01101
执行rand(0)[ 第一次 ]
:0 / 执