WEB入门——XXE注入安全

一、XXE注入安全

XXE即XML外部注入漏洞。XXE漏洞发送在应用程序解析XML输入时,没有禁止外部实体的加载,导致可以加载恶意外部文件,造成文件读取、命令执行等。XXE漏洞出发点在可以上传XML文件的位置,对上传的XML文件过滤,导致上传恶意XML文件。

二、XML基础必备

用来传输和存储数据。没有预定义标签,用户可以自定义标签。

2.1 XML语法基础

https://www.w3school.com.cn/xml/xml_syntax.asp

  • 所有XML元素都必须有关闭元素。
  • XML标签对大小写敏感。
  • XML必须正确的嵌套。
  • XML元素必须有跟元素。
  • XML的属性值必须添加引号。

2.2 实体引用

  • <、>、&、'、"在XML中时特殊符号,需要用实体表示
特殊符号 实体 说明
< &lt; 小于
> &gt; 大于
& &amp; 和号
&apos; 单引号
" &quot; 双引号

2.3 DTD文档类型定义

DTD是定义XML文档合法构建的模块,可以在XML文档定义,也可以在外部引用。

2.3.1 内部的文档声明

  • <! DOCTYPE 根元素[元素声明]>
    <?xml version="1.0" ?>
    <!DOCTYPE note[
    	<!ELEMENT note (to,from,heading,body)>
    	<!ELEMENT to (#PCDATA)>
    	<!ELEMENT from (#PCDATA)>
    	<!ELEMENT heading (#PCDATA)>
    	<!ELEMENT body (#PCDATA)>
    ]>
    <note>
    	<to>xiaohong</to>
    	<from>Xiaoming</from>
    	<heading>hello</heading>
    	<body>hi,xiaohong</body>
    </note>
    

2.3.2 外部的文档声明

假如DTD位于XML源文件的外部,那么它应通过下面的语法被封装在一个DOCTYPE定义中

  • <! DOCTYPE 根元素 SYSTEM “文件名”>

    <?xml version="1.0">
     <! DOCTYPE note SYSTEM "note.dtd">
     <note>
    	<to>xiaohong
根据提供的代码和引用内容,ctfshow是一个XML实体节点,而xxe是用来指代外部实体的名称。在给定的代码中,XML实体被加载并解析成一个SimpleXMLElement对象,然后从中提取了ctfshow节点的值,并进行输出。通过提供合适的XML实体值,可以利用XXE(XML外部实体注入)漏洞来执行一些攻击,比如读取文件内容等。 要利用XXE漏洞进行ctfshow的Web入门,可以构造一个恶意的XML实体,例如: <!DOCTYPE test [ <!ENTITY xxe SYSTEM "file:///etc/passwd"> ]> <test> <ctfshow>&xxe;</ctfshow> </test> 这个恶意的XML实体中,xxe指向了文件/etc/passwd,当这个实体被解析时,它的值会被替换为/etc/passwd文件的内容。通过将这个构造好的XML实体发送给目标服务器,可以触发XXE漏洞并读取/etc/passwd文件的内容。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [ctfshow web入门 XXE web373~web378](https://blog.youkuaiyun.com/qq_62989306/article/details/126839849)[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^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [ctfshow web入门 XXE](https://blog.youkuaiyun.com/jie_a/article/details/117532704)[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^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值