浅谈XXE攻击

二.XML基础

xml是一种用于标记电子文件使其具有结构性的标记语言,用于标记数据,和定义数据类型,可以为两种不同系统进行信息交换,
XML文档结构包括xml声明,DTD文档类型定义(可选),文档元素
在这里插入图片描述

二.DTD文档定义,可以内部声明,也可以外部引用

    <!DOCTYPE address [<!ELEMENT address (#PCDATA)>
                                            <!ENTITY name "Tanmay patil">
                                            <!ENTITY company "TutorialsPoint">
                                             <!ENTITY phone_no "(011) 123-4567">
                                              ]>
  1.       <!DOCTYPE 根元素 SYSTEM "DTD文件的URL">
                <!DOCTYPE address SYSTEM "address.dtd">
             <!DOCTYPE 根元素 PUBLIC "DTD名称" "DTD文件的URL">
    

3.实体声明,相等于定义了一个变量

<!ELEMENT>这块略过,对xxe影响不大,自行去菜鸟教程了解 <!ENTITY>(重点):

直接声明

<!ENTITY 实体名称 实体的值 引用外部 <!ENTITY 实体名称 SYSTEM "URI">

或者

<!ENTITY 实体名称 PUBLIC "public_ID" "URI">

三,如何判断xxe漏洞
这里用一题南邮的web1题来作为案例

在这里插入图片描述
bp抓包看下,

在这里插入图片描述
发现Content-type:application/xml,或者直接从请求报文就能看出是xml了,说明可以去利用xml解析器来帮我们做一些事
而且从题目提示中,得知flag就在/flag这个文件中。只要能弄到源码,就美滋滋了,所以想到xxe,那么直接看下我是怎么写的
在这里插入图片描述
<!ENTITY xxe SYSTEM "php://filter/read=convert.base64-encode/resource=/flag>这句的意思就是SYSTEM这个系统命名将这个url的文件内容读进了xxe这个实体。
所以答案就出来了。
在这里插入图片描述
解码下就ok了。以下,是发现几篇好文,可以更深入的了解。
知乎某老哥的资料分享
添加链接描述
添加链接描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值