Web高階漏洞 XPath注入

2021-10-08 20:23:14 字數 1750 閱讀 4411

xpath 是一門在 xml 文件中查詢資訊的語言。xpath使用路徑表示式在 xml 文件中通過元素和屬性進行導航。

<?xml version="1.0" encoding="iso-8859-1"?>

haha 1

hehe 2

因為xpath 使用路徑表示式在 xml 文件中選取節點

列出幾個常用的路徑表示式:

nodename 選取此節點的所有子節點。

/ 從根節點擊取。

// 從匹配選擇的當前節點擊擇文件中的節點,而不考慮它們的位置。

. 選取當前節點。

… 選取當前節點的父節點。

@ 選取屬性。

world 選取 world 元素的所有子節點。

/world 選取根元素world。

注釋:假如路徑起始於正斜槓( / ),則此路徑始終代表到某元素的絕對路徑!

world/china 選取屬於world的子元素的所有china元素。

//china 選取所有 china 子元素,而不管它們在文件中的位置。

world//china 選擇屬於world元素的後代的所有china元素,而不管它們位於 bookstore 之下的什麼位置。

//@lang 選取名為 lang 的所有屬性。

/world/china[1] 選取屬於world子元素的第乙個china元素。

/world/china[last()] 選取屬於 world子元素的最後乙個china元素。

/world/china[last()-1] 選取屬於world子元素的倒數第二個china元素。

/world/china[position()< 3] 選取最前面的兩個屬於world元素的子元素的china元素。

//title[@lang] 選取所有擁有名為 lang 的屬性的 title 元素。

//title[@lang=『eng』] 選取所有 title 元素,且這些元素擁有值為 eng 的 lang 屬性。

/world/china[rank<10] 選取 world 元素的所有 china 元素,且其中的 rank元素的值須小於 10。

/world/china[rank<10]/title 選取 world元素中的 china元素的所有 title 元素,且其中的 rank 元素的值須小於 10。

*匹配任何元素節點。

@ 匹配任何屬性節點。

node() 匹配任何型別的節點。

/world/* 選取 world元素的所有子元素。

//* 選取文件中的所有元素。

//title[@*] 選取所有帶有屬性的 title 元素。

學習了這麼多

來看一句xpath典型查詢語句

//users/user[loginid/text()=『xpath』 and password/text()=『xpathtest』]

在此我們可以利用與sql注入類似的原理,對這句話進行注入

//users/user[loginid/text()=『xpath』 or 『1』=『1』 and password/text()=『xpathtest』 or 『1』=『1』]

也就是進行一定的語句拼接,從而繞過驗證

這是對使用者身份認證時出現的xpath注入

閉合相應的單引號,中括號,小括號後,利用xml語法,使用**』|』**可以引用若干路徑。

成功獲取所有使用者密碼。

WEB漏洞 命令注入

命令注入 command injection 是指通過提交惡意構造的引數破壞命令語句結構。從而達到執行惡意命令的目的。檢視命令注入的流程 1 檢視是否呼叫系統命令。2 函式以及函式的引數是否可控。3 是否拼接命令注入。下面我們使用dvwa來做測試。a 我們先將安全等級調整為 low 1 檢視源 if...

31 WEB安全學習 XPath注入

xpath 是一門在 xml 文件中查詢資訊的語言。可以理解xml為資料庫,xpath就是查詢資料庫的sql語言。xpath 使用路徑表示式來選取 xml 文件中的節點或節點集。節點是通過沿著路徑 path 或者步 steps 來選取的。xml示例 admin admin888 root root1...

SQL注入漏洞接觸 高階篇

第一節 利用系統表注入sqlserver資料庫 sqlserver是乙個功能強大的資料庫系統,與作業系統也有緊密的聯絡,這給開發者帶來了很大的方便,但另一方面,也為注入者提供了乙個跳板,我們先來看看幾個具體的例子 分號 在sqlserver中表示隔開前後兩句語句,表示後面的語句為注釋,所以,這句語句...