当前位置:   article > 正文

网络安全之XXE漏洞_documentbuilderfactory 限制外部

documentbuilderfactory 限制外部

XXE漏洞

1.XML基础知识

eXtensible Markup Language可扩展标记语言

用途

配置文件

 

交换数据

 

XML内容

xml声明

 

XML格式要求

  • XML文档必须有根元素

  • XML文档必须有关闭标签

  • XML标签对大小写敏感

  • XML元素必须被正确的嵌套

  • XML属性必须被加引号

XML格式校验

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

DTD内容之元素

 

元素 ELEMENT

DTD内容之实体

 

实体 ENTITY

实体ENTITY的使用

 

内部实体

 

外部实体

 

外部实体引用:协议

协议使用方法
filefile:///etc//passwd
phpphp://filter/read=convert.base64encode/resource=index.php
http页面不存在_百度搜索

不同语言支持的协议

Libxml2PHPJava.NET
file , http, ftpfile, http, ftp, php, compress.zlib, compress.bzip2, data, glob, pharfile, http, https, ftp, jar, netdoc, mailto, gopher*file, http, https,ftp

PHP扩展

 

完整的XML内容

 

XML声明部分

文档类型定义

文档元素

2.什么是XXE

 

XML外部实体注入(XML External Entity Injection)

XXE定义

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

3.XXE利用方式

<!DOCTYPE a[
<!ENTITY xxe SYSTEM "file:///C:/Windows/system.ini">
]>

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

 

4.XXE防御

1.禁用外部实体

Java

DocumentBuilderFactory dbf
=DocumentBuilderFactory.newlnstance();
dbf.setExpandEntityReferences(false);
​

2.过滤用户提交的XML数据

'
“
"(two apostrophe)
""
<
>
]]>
]]>>
<!--/-->
/-->
-->
<!--
<!
<![CDATA[/]]>

3.WAF

以mod_security为例

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/612754
推荐阅读
相关标签
  

闽ICP备14008679号