updatexml()報錯注入


首先了解下updatexml()函數

UPDATEXML (XML_document, XPath_string, new_value); 
第一個參數:XML_document是String格式,為XML文檔對象的名稱,文中為Doc 
第二個參數:XPath_string (Xpath格式的字符串) ,如果不了解Xpath語法,可以在網上查找教程。 
第三個參數:new_value,String格式,替換查找到的符合條件的數據 
作用:改變文檔中符合條件的節點的值

用MySQL測試一下

新建的user表如圖:

 

查看表所屬的數據庫為test:

 

構造注入語句:select name from user where id=1 and updatexml(1,concat('~',(select database()),'~'),3);

 

發現注入成功,成功爆出數據庫名。

解釋:由於updatexml的第二個參數需要Xpath格式的字符串,以~開頭的內容不是xml格式的語法,concat()函數為字符串連接函數顯然不符合規則,但是會將括號內的執行結果以錯誤的形式報出,這樣就可以實現報錯注入了。
————————————————
版權聲明:本文為CSDN博主「仰望星空world」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/qq_37873738/article/details/88042610


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM