首页
社区
课程
招聘
[原创]xxe漏洞学习总结
发表于: 2015-8-31 23:47 3211

[原创]xxe漏洞学习总结

2015-8-31 23:47
3211
在对公司网站的监测分析时发现HTTP请求包数据中有这样一段代码:<?xml version="1.0"?> <!DOCTYPE foo [<!ELEMENT methodName ANY ><!ENTITY xxe SYSTEM "file:///etc/passwd" >]><methodCall>  <methodName>&xxe;</methodName></methodCall>根据HTTP包头数据结构,发现这是一段攻击者添加的代码,是在以往分析中未曾看到过的漏洞注入信息,所以便查阅了一些资料,做了如下的一些学习总结。
该段代码属于XXE注入漏洞,全称为XML External Entity Injection,是XML外部实体注入攻击。是在对非安全的外部实体数据进⾏行处理时引发的安全问题。
本段代码为XXE本地文件包含漏洞的代码结构,除本地文件包含外,还可以利用XXE进行拒绝服务攻击、获取服务信息及执行系统命令等,可根据服务器返回的数据包判断是否存在该漏洞。
防护措施主要有两种:一是使用开发语言提供的禁用外部实体,如:PHP:
libxml_disable_entity_loader(true);
JAVA:
DocumentBuilderFactory dbf =DocumentBuilderFactory.newInstance();
dbf.setExpandEntityReferences(false);
Python:
from lxml import etree
xmlData = etree.parse(xmlSource,etree.XMLParser(resolve_entities=False))。
二是过滤用户提交的XML数据,如:关键词:<!DOCTYPE和<!ENTITY,或者,SYSTEM和PUBLIC。

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 50
活跃值: (73)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
沙发~~~
2015-9-1 11:18
0
游客
登录 | 注册 方可回帖
返回
//