SQL注入之updatexml()報錯注入
阿新 • • 發佈:2022-02-04
updatexml()函式
使用前提
在mysql高版本中(大於5.1版本)中添加了對XML文件進行查詢和修改的函式,updatexml(),extracvalue()
而顯示錯誤則需要在開發程式中採用print_r mysql_error()函式,將mysql錯誤資訊輸出。
函式本身
作用:改變文件中符合條件的節點,使用不同的xml標記匹配和替換xml塊的函式。
updatexml(XML_document,XPath_string,new_value);
-
XML_document:String格式,為XML文件物件的名稱,文中為Doc
-
XPath_string:Xpath格式的字串,代表路徑。
-
new_value:String格式,替換查詢到的符合條件的資料。
原理
在使用此語句時,如果XPath_string不符合該種類格式,就會出現格式錯誤,並且會以系統報錯的形式提示出錯誤,也就是我們的輸入的具體的字串不合規範。
那麼哪些格式是不符合規範的,比如在字母數字前加入特殊字元如~
,*
例項
在sqli-labs靶機平臺進行測試
如下是一個查詢被資料庫名稱的sql注入句。
id = 1' and updatexml(1,concat('~',(select databse()),'~'),1) --+
結果:
如果還想要其他查詢語句,在select那個位置做修改即可