XXE初探

最近经常看到XXE出没,以为是最近才出现的一种类型,后来发现14年,乌云上面就有好多的案例,实在是我太lo了~

@Time:2018/11/15

在 jarvisoj 上面有着一道xxe的练习题,感兴趣的大佬可以去玩玩 https://www.jarvisoj.com/challenges

在写题之前,我们先科普一下,什么是xxe?xxe是 xml外部实体注入,这里有一段xml的解释

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

关于xml以及xxe的知识在这位大佬的博客讲的很清楚 https://www.cnblogs.com/r00tuser/p/7255939.html

我们的xxe注入的地方就在于xml的DTD(文档类型定义),xml格式如下



]>
&search;

jarvisoj的例题来更好地说明一下:

进入的页面是这个

XXE初探_第1张图片

我们可以在源代码里面看到如下代码

看到了xml的字样,猜测可能有xxe(没有也不会放在这里啦 :))

可以抓个包看看,是在提交json数据,但是我们可以改成xml

XXE初探_第2张图片

第一步,也是最重要的一步,就是把content-type改成xml

XXE初探_第3张图片

之后就post我们上面写的xml了,就能拿到flag

XXE初探_第4张图片

其中的 是定义实体,&search 是引用实体,我们还可以通过这个拿到 /etc/passwd :)

XXE初探_第5张图片

END :)

 

你可能感兴趣的:(WEB安全-XXE)