1 什麼是xxe漏洞
xxe漏洞全程xml external entity injection 即xml外部實體注入漏洞,xxe漏洞發生在應用程式解析xml輸入時,沒有禁止外部實體的載入,導致可載入惡意外部檔案,造成檔案讀取,命令執行 內網埠掃瞄 攻擊內網** 發起dos攻擊等危害
可以模擬sql注入解析傳入sql語句,解析xml語句
2 什麼是xml
一種類似html的語句,不同於html,他的標籤可以自定義
3什麼是dtd
document type definition 文件型別定義
一般和xml檔案配合使用,用來約束xml檔案
3.1內部dtd文件
<
!doctype 根元素 [定義內容]
>
3.2外部dtd文件引入外部的dtd檔案分為兩種:
(1)當引用的dtd檔案是本地檔案時,用system標識,並寫上 「dtd的檔案路徑」,如下
<
!doctype 根元素 system
"dtd檔案路徑"
>
(2)當引用的dtd檔案是乙個公共的檔案時,採用public標識,如下
<
!dectype 根元素 public
"dtd名稱"
"dtd檔案的url"
>
例子:
看這段**
第四行如果是ture 就禁止外部實體注入,如果如圖一樣是false 則可以進行
第五行提交個post請求
這是乙個正常的提交,在看乙個不正常的
多加了:
<
!doctype xxe system
"xxe.dtd"
>
&xxe;
<
/div>意思是將注入的檔案 xxe.dtd顯示出來,有點類似於檔案包含
如果我們把xxe.dtd換成重要的檔案如/etc/passwd,則會造成洩露
我們如果將其換成
/div>我們可以利用這個特性進行內網掃瞄
XXE漏洞原理分析
除了json外,xml也是一種常用的資料傳輸格式。對xml的解析有以下幾種常用的方式 dom,sax,jdom,dom4j,stax等。然而這幾種解析方式都可能會出現外部實體注入漏洞,這類漏洞統稱 xml 外部實體漏洞。以下提供乙個請求如果接受的值是xml格式資料,則會存在xxe漏洞,我們使用下面簡...
XXE漏洞概述
xxe xml external entity injection 是xml的外部文件的一種注入漏洞。首先來看一下xml的大體結構 dtd document type definition 即文件型別定義,用來為xml文件定義語義約束。主要出問題的大多是從dtd這部分出的。dtd大體框架 dtd 內...
XXE漏洞利用
docker搜尋xxe相關映象包,然後pull下來,我這裡pull的是 rrodrigo xxelab 映象包。啟動docker環境,對映到vps的32776埠 訪問 輸入註冊資料,抓包重放。發現提交資料報採用 xml 格式傳遞,且郵箱有返回。這裡我們引用外部dtd實體,並且將email的值修改為引...