SQL報錯注入攻擊中的updatexml 函式

2021-10-04 11:24:01 字數 1034 閱讀 7375

sql報錯注入是程式將錯誤資訊輸出到頁面上,如果get獲取引數拼接到sql語句中,執行成功,正常輸出;如果出錯,php**裡會執行乙個echo mysqli_error(con

)的語句

(這裡只

是舉個普

遍例子)

mysq

lier

ror(

con)的語句(這裡只是舉個普遍例子)mysqli_error(

con)的語

句(這裡

只是舉個

普遍例子

)mys

qlie

​rro

r(con)返回最後乙個mysql()函式的錯誤。

updatexml()函式

updatexml (xml_document, xpath_string, new_value);
注入語句

『 and updatexml(1,concat(0x7e,(select user()),0x7e),1)--+
得到結果

xpath syntax error: '~sql~'
0x7e是ascii編碼,解碼為~,concat是將 ~和(select user())連線成字串,可以知道 updatexml()會因為 ~這個符號不滿足xpath語法,所以這個語句不能執行成成功,會報錯。

『 and updatexml(1,concat(0x7e,(select user()),0x7e),1)–+

首先執行

concat(0x7e,(select user())

變成』and updatexml(1,"~ sql ~",1)–+

系統報錯,爆出了我們要的資料。

那時候一直想不明白updatexml()函式為什麼爆出資料,後來想了一下。以上僅是個人的猜想。

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