0x00漏洞介紹:
xxe全稱(xml external entity)即xml外部實體注入,漏洞是對非安全的外部實體資料進行處理時引發的安全問題。
xml是用於標記電子檔案使其具有結構性的標記語言,可以用來標記資料,定於資料型別,是一種允許使用者對自己的標記語言進行定於的源語言。xml文件結構包括xml宣告,dtd文件型別定義,文件元素。
0x01漏洞原理:
dtd裡宣告xml外部實體,url內容為一些敏感的本地檔案路徑或攻擊鏈結或localhost:埠。
0x02實驗環境:
pikachu(漏洞練習平台)
nginx 1.15.11
php 5.2.17
libxml 2.7.8
0x03 實驗效果:
輸入『hello world』被當做xml命令執行了,初步判斷存在xxe漏洞,如下圖:
在桌面新建1.txt,寫入內容,如下圖:
構造payload進行測試:
payload1:這一段**,其中xxe就是外部實體,我們可以通過這個引數來讀取file:///c:/users/administrator/desktop/1.txt的內容,因為我們web伺服器在解析xml文件的過程中,實體xxe的值會直接被替換成file:///c:/users/administrator/desktop/1.txt。關鍵字'system'會告訴xml解析器,'xxe'的實體值將會從後面的url獲取,也就是我們所替換的file:///c:/users/administrator/desktop/1.txt檔案。<?xml version="1.0" encoding="utf-8"?>
]>
&xxe;
提交後,成功讀取1.txt內容,如下圖:
提交後成功讀取hosts檔案,如下圖:
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的值修改為引...
XXE漏洞筆記
xxe漏洞全稱為xml external entity,也就是xml外部實體注入,攻擊者通過向伺服器注入指定的xml實體內容,從而讓伺服器按照指定的配置進行執行,導致問題 也就是說服務端接收和解析了來自使用者端的xml資料,而又沒有做嚴格的安全控制,從而導致xml外部實體注入。可造成檔案讀取 命令執...