程式碼安全測試第六期:XPath注入漏洞

zktq2021發表於2021-05-25

1、什麼是XPath注入漏洞?

XPath是一種用來在記憶體中導航整個XML樹的語言,它使用路徑表示式來選取XML文件中的節點或者節點集。

XPath注入是指程式使用外部輸入動態構造用於從XML資料庫檢索資料的XPath表示式,但它沒有過濾或錯誤地過濾該輸入,這使攻擊者可以控制查詢的結構。攻擊者可以控制從XML資料庫中選擇的資訊,並可能使用該功能來控制應用程式流,修改邏輯,檢索未經授權的資料或繞過重要檢查(例如身份驗證)。

2、XPath注入漏洞的構成條件有哪些?

①資料是從不可靠的來源(包括但不侷限於不可靠使用者的輸入資訊或是不可靠使用者可能更改的檔案)進入應用程式的;

②使用者輸入未經過驗證,被查詢語句直接使用並執行。

3、XPath注入漏洞會造成哪些後果?

關鍵詞:繞過驗證;讀取重要資料;

控制應用程式流程(例如繞過身份驗證),從而進行一些未授權的行為;

攻擊者可以讀取未授權的XML內容。

4、如何防範修補XPath注入漏洞?

使用引數化的 XPath查詢(例如使用XQuery)。這有助於確保資料平面和控制平面之間的分離;

對使用者輸入的資料提交到伺服器上端,在服務端正式處理這批資料之前,對提交資料的合法性進行驗證。檢查提交的資料是否包含特殊字元,對特殊字元進行編碼轉換或替換、刪除敏感字元或字串,如過濾[ ] ‘ “ and or 等全部過濾,像單雙引號這類,可以對這類特殊字元進行編碼轉換或替換;

③透過加密演算法,對於資料敏感資訊和在資料傳輸過程中加密。

5、XPath注入漏洞樣例:

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70000012/viewspace-2773813/,如需轉載,請註明出處,否則將追究法律責任。

相關文章