底部划重点XML之Javascript DOM复习以及XXE漏洞的理解
Posted 白帽100安全攻防实验室
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了底部划重点XML之Javascript DOM复习以及XXE漏洞的理解相关的知识,希望对你有一定的参考价值。
今天想学习一下XEE(xml实体注入)漏洞,所以先学习了一下xml语法,在菜鸟教程上看了会资料,对xml的一些总结如下:
xml 相比 html,前者的作用是存储数据,后者的作用是显示数据;
一个xml文档须有根元素(相对其他元素,该元素为父元素);
通过javascript脚本可以通过xml文件获得 XML Document对象来获取xml文件里的数据.
在通过XML Document获取xml数据的时候,复习了如下JS知识 ,XML Document对象通过 getElementsTagName() 方法获得HTML Collection 对象,这个对象就像一个数组,通过 [ ] 号取值的方法可以获得一个节点,也就是Element 对象,Element 对象在某些场合任然可以使用getElementsTagName() 方法再次获得HTML Connection 对象,得知,当一个Element 对象为单个元素的时候,可以通过childNodes方法获得一个NodeList对象,使用 [0] 方法获得一个 Text 对象,通过nodevalue获得该节点的值,附上图方便理解。
该HTML页面会显示出‘A’.
-----------------------------------------------------------------分割线----------------------------------------------------------------------------
从XXE常用的一个exp来看:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE Anything [
<!ENTITY xxe SYSTEM "file:///etc/passwd">]><a><b>&xxe;<b><a>
ENTITY 为DTD规范,(DTD规范的作用是规范 xml ),ENTITY的作用是为变量xxe‘起别名’,值为"file:///etc/passwd"
通过访问该php脚本,可以得到file协议中的内容:
该方法在php5.2以及5.4的版本中均成功(原因应该是在这些版本中 simplexml_load_string 等方法会自动解析外部实体),php 5.6 和php 7均失败.
第三季DC0571重磅来袭!
本次现场会有一个大惊喜,想不想知道?好不好奇?
扩散扩散扩散
重要的事情说三遍hhhhh~
以上是关于底部划重点XML之Javascript DOM复习以及XXE漏洞的理解的主要内容,如果未能解决你的问题,请参考以下文章