什么是XXE攻击?
XXE攻击是指xml外部实体攻击漏洞。XML外部实体攻击是针对解析XML输入的应用程序的一种攻击。当包含对外部实体的引用的XML输入被弱配置XML解析器处理时,就会发生这种攻击。这种攻击通过构造恶意内容,可导致读取任意文件、执行系统命令、探测内网端口、攻击内网网站等危害。
有哪些攻击原理?
攻击者通过向服务器注入指定的xml实体内容,从而让服务器按照指定的配置进行执行,导致问题。也就是说服务端接收和解析了来自用户端的xml数据,而又没有做严格的安全控制,从而导致xml外部实体注入,造成文件读取、命令执行、内网端口扫描、攻击内网网站、发起dos攻击等危害。XXE漏洞触发的点往往是可以上传xml文件的位置,没有对上传的xml文件进行过滤,导致可上传恶意xml文件。
遇到XXE攻击时,该如何防御?
1.尽可能使用简单的数据格式(如: JSON),避免对敏感数据行序列化。
2.及时修复或更新应用程序或底层操作系统使用的所有XML处和库。同时,通过依赖项检测,将SOAP更新到1.2版本或更版本。
3.在应用的所有XML解析器中禁用XML外部实体和DTD进程。
4.在服务器端实施积极的(“白名单”)输入验证、过滤和清以防止在XML文档、标题或节点中出现恶意数据。
5.验证XML或XSL文件上传功能是否使用XSD验证或其他类似方法来验证上传的XML文件。