当前位置: 首页> 文旅> 酒店 > 渗透课程第二阶段--Part8--XXE渗透与防御

渗透课程第二阶段--Part8--XXE渗透与防御

时间:2025/7/10 20:24:56来源:https://blog.csdn.net/m0_58361380/article/details/141563316 浏览次数:0次

目录

一. XML基础知识

XML

XML用途

XML内容

XML格式要求

XML用途

XML格式校验

DTD内容之元素

DTD内容之实体

内部实体ENTITY的使用

外部实体ENTITY的使用

外部实体引用:协议

不同语言支持的协议

PHP扩展

完整的XML内容

三. XXE利用方式

XXE

XXE定义

微信支付XXE漏洞

盲打-DNSLog

盲打-http接口参数,写入文件

四. XXE防御

Java

过滤用户提交的XML数据

WAF

Python

PHP


一. XML基础知识

XML

        eXtensible Markup Language        可扩展标记语言
        这是一种标记语言,很类似 HTML。设计宗旨是传输数据,而非显示数据

XML用途

  • 配置文件

  • 交换数据

XML内容

XML格式要求

  • XML文档必须有根元素
  • XML文档必须有关闭标签
  • XML标签对大小写敏感
  • XML元素必须被正确的嵌套
  • XML属性必须加引号

XML用途

XML格式校验

        DTD(Document Type Definition)        文档类型定义

DTD内容之元素

DTD内容之实体

内部实体ENTITY的使用

外部实体ENTITY的使用

外部实体引用:协议

协议

使用方式

filefile:///etc//passwd
php

php://filter/read=convert.base64-encode/resource=index.php

httphttp://:wuya.com/evil.dtd

不同语言支持的协议

Libxml2PHPJava.NET

file

http

ftp

file

http

ftp

php

compress.zlib

compress.bz

ip2

data

glob

phar

file

http

https

ftp

jar

netdoc

mailto

gopher*

file

http

https

ftp

PHP扩展

SchemaExtension Required

https

ftps

openssl
zipzip

ssh2.shell

ssh2.exec

ssh2.tunnel

ssh2.sftp

ssh2.scp

ssh2
rarrar
oggoggvorbis
expectexpect

完整的XML内容

三. XXE利用方式

XXE

XXE定义

        如果Web应用的脚本代码没有限制XML引入外部实体,从而导致用户可以插入一个外部实体,并且其中的内容会被服务器端执行,插入的代码可能导致任意文件读取系统命令执行内网端口探测攻击内网网站等危害。

微信支付XXE漏洞

盲打-DNSLog

盲打-http接口参数,写入文件

四. XXE防御

Java

DocumentBuilderFactory dbf
=DocumentBuilderFactory.newInstance();
dbf.setExpandEntityReferences(false);

过滤用户提交的XML数据

'

''

''(two apostrophe)

" "

<

>

]]>

]]>>

<!--/-->

/-->

-->

<!--

<!

<![CDATA[/]]>

WAF

        以mod_security为例

Python

from lxml import etree
xmlData=
etree.parse(xmlSource,etree.XMLParser(resolve_entites=False))

PHP

libxml_disable_entity_loader(ture);
关键字:渗透课程第二阶段--Part8--XXE渗透与防御

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: