XXE(1)
(0)
  • 基础知识

xxe漏洞发生在应用程序解析xml输入时,没有禁止外部实体的加载
能够读取web服务器的文件系统,通过路径访问文件,或者用http/https连接到任意主机

  1. XML
    ——XML用来传输和存储数据,重点在数据的内容

——HTML用来显示数据,重点在数据的外观

例:xxe.xml

 <?xml version="1.0" encoding="utf-8"?>
 <!--引入DTD文件,约束这个xml-->
 <!DOCTYPE 班级 SYSTEM "xxe.dtd">
 <班级>
        <学生>
        <姓名>周小星</姓名>
        <年龄>23</年龄>
        <介绍>学习刻苦</介绍>
    </学生>
 </班级>
  1. DTD文档类型定义(xml类型定义)

例:xxe.dtd

 <!ELEMENT 班级 (学生+)>
 <!ELEMENT 学生 (名字,年龄,介绍)>
 <!ELEMENT 名字 (#PCDATA)>
 <!ELEMENT 年龄 (#PCDATA)>
 <!ELEMENT 介绍 (#PCDATA)>

内部DTD文档:
<!DOCTYPE 根元素[定义内容]>
外部DTD文档:
(1) 引用的DTD文件是本地文件的时候,用SYSTEM标识,并写上“DTD的本地文件路径”
<!DOCTYPE 根元素SYSTEM”DTD文件路径”>
(2) 公共的文件,采用PUBLIC表示,加上远程URL
<!DOCTYPE 根元素PUBLIC”DTD名称””DTD文件的URL”>

  • 题目
  1. [BSidesCF 2019]SVGMagic
    Convert SVG to PNG with Magic

svg是个XML的图片

用FILE协议去读目录中的flag文件

/proc/self/swd代表当前目录
  1. [NCTF2019]Fake XML cookbook

这个flag在根目录下也可能在/var/www/html/下

  1. [NCTF2019]True XML cookbook
    这个和上一个题目都是一样的,但是相同办法去直接读flag文件不成功,

网上搜了后,要访问几个文件,先是/etc/passwd
该目录存储的是操作系统用户信息,该文件为所有用户可见。
看到有回显后就可以检测内网端口
然后/etc/hosts是配置ip地址和其对应主机名的文件,这里可以记录本机的或其他主机的ip及其对应主机名。
/proc/net/arp保存了地址解析的内核ARP表的ASCII可读转储

然后用http协议去访问ip地址,为啥没有
需要改一下ip才能够访问

本文为作者hackerbo.com发布,未经允许禁止转载!
上一篇 下一篇
评论
暂无评论 >_<
加入评论