目录
前言
简介
原理
攻击
防御
禁用外部实体
过滤用户提交的XML数据
XML文档结构包括XML声明、DTD文档类型定义(可选)、文档元素。
博主之前用xml也没有使用过DTD,因为是可选的嘛,这里就简单说一下,学过的跳过。
DTD(文档类型定义)的作用是定义 XML 文档的合法构建模块。DTD 可以在 XML 文档内声明,也可以外部引用。
内部声明DTD
引用外部DTD文档
内部声明实体
引用外部实体
调用方式:&实体名称;
XML外部实体注入(XML External Entity,为什么不取首字母呢...),简称XXE漏洞。
服务端接收并解析了来自用户端的xml数据,而又没有做严格的安全控制,从而导致xml外部实体注入。
使用靶机:pikachu
]>
&hacker;
]>
&hacker;
PHP中使用libxml_disable_entity_loader(true);
其他语言(C++、Java等):owasp XXE防御备忘录
博主在做项目时使用的是
xml.etree.ElementTree
,在python官方文档中也提到对于错误xml以及恶意构建的xml可能存在解析漏洞。不过,python在外部实体注入方面认为是安全的。
过滤掉关键词:SYSTEM和PUBLIC
更多内容查看:网络安全-自学笔记
喜欢本文的请动动小手点个赞,收藏一下,有问题请下方评论,转载请注明出处,并附有原文链接,谢谢!如有侵权,请及时联系。如果您感觉有所收获,自愿打赏,可选择支付宝18833895206(小于),您的支持是我不断更新的动力。