网络安全-XXE(XML External Entity)漏洞

  • 1、原理

    执行XML文件外部实体包含的恶意链接信息,可导致读取任意文件、执行系统命令、探测内网端口、攻击内网网站等危害。
    xml文件是一种信息传输和存储的文本,HTML 是用来展示数据的。
    XML有自己的语法结构,其中实体就是其中一个特性,实体是一个预先定义的数据或数据集合。有了实体类似一个变量可以定义关联其他数据之后,方便直接引用
    实体分为三类:普通实体与参数实体、内部实体与外部实体、已解析实体与未解析实体。根据实体内容和DTD包含关系分为内部实体和外部实体
    内部实体:定义一个内部实体变量它的引用内容已经在当前DTD文件内存在
    外部实体:定义一个实体变量它的内容不在当前DTD内通过URI引用

  • 2. 防御

   2.1 可以通过禁用实体关闭实体解析开关(如PHP函数关闭 libxml_disable_entity_loader(true))
   2.2过滤用户提交的xml数据(关键字system和public)

  • 3、演示

3.1、php自带函数xml解析执行函数 simplexml_load_string,可以 读取某地xml文件和执行,

3.2、 php自带文件创建函数file_put_contents ,传入文件内容和文件名字可以创建文件

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
PentesterLab XXE是一个关于XML注入(XXE)的培训平台,它提供了关于XXE漏洞的理论知识和实际演练。XXE漏洞是一种安全漏洞,利用XML解析器对外部实体的处理不当,使攻击者能够读取本地文件、执行远程请求等。通过学习和实践,可以帮助开发人员和安全专家了解并防范XXE漏洞的风险。在PentesterLab XXE的课程中,可以学习到XXE漏洞的原理、漏洞代码编写、利用任意文件读取等技术,以及防御XXE漏洞的策略。对于防御XXE漏洞,可以采取禁用外部实体加载的方法,如在PHP中使用libxml_disable_entity_loader(true),在Java中使用setExpandEntityReferences(false),在Python中使用etree.XMLParser(resolve_entities=False)等。此外,对用户提交的XML数据进行过滤过滤掉可能存在XXE漏洞的关键词,如<!DOCTYPE、<!ENTITY、SYSTEM、PUBLIC等。通过学习和实践,可以提高对XXE漏洞的识别能力和防御能力。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [XML 外部实体注入---XXE](https://blog.csdn.net/weixin_45677145/article/details/111638708)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值