常见的漏洞--XXE

2019-04-11  本文已影响0人  牛一喵

(由于要找工作了,所以决定整理一下常见漏洞的知识,以下通过借鉴一些大佬的文档或者博客从而整合,当然也包括一些以往自己的经验。菜鸟一个,请各位大哥指点。)

xml指的是可扩展标记语言。

DTD(文档类型定义)的作用是定义xml文档的合法构建模块。

DTD一般认为有两种引用或声明方式:

1.内部DTD:即对xml文档中的元素、属性和实体的DTD的声明都在XML文档中。

2.外部DTD:即对XML文档中的元素、属性和实体的DTD的声明都在一个独立的DTD文件中。

XXE的利用:

任意文件读取、SSRF、DOS攻击(如果XML解析器尝试使用/dev/random文件的内容来替代实体,则会使得服务器unix系统崩溃)、远程命令执行

修复建议:

为了避免XXE ,应为XML代理、解析器或读取器设置下面的属性:

factory.setFeature(“http://xml.org/sax/features/external-general-entities”,false);

factory.setFeature(“http://xml.org/sax/features/external-parameter-entities”,false);

如果不需要inline doctype声明,可以用以下的属性将其完全禁用。

factory.setFeature(“http://apache.org/xml/features/disallow-doctype-decl”,true);

如何XXE?

基本需要两个条件:1.支持DTD 2.数据可操控

摒弃需要数据有回显,我们才能看到。对于没有回显的情况,我们引入OOB(out of band)数据外带。

就是通过自己写一个页面用来接受目标服务器传回的内容,可以直接使用一个开源工具xxeserver。

上一篇下一篇

猜你喜欢

热点阅读