XML注入:理论篇--定义原因防御

Posted WEL测试

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了XML注入:理论篇--定义原因防御相关的知识,希望对你有一定的参考价值。

什么是XML注入漏洞
XML injection(XML注入漏洞),该漏洞类似SQL注入,XML文件一般用作存储数据及配置,如果在修改或新增数据时,没有对用户可控数据做转义,直接输入或输出数据,都将导致xml注入漏洞。
XML注入产生的原因
XML注入产生的原因与SQL注入差不多,主要包含以下两个:
  • 传输的数据包含了标签内容
  • 修改数据时会覆盖原有的标签
XML注入漏洞例子
服务器是生成XML来存储用户数据,示例如下:
  
    
    
  
<?xml version="1.0" encoding="UTF-8"?> <USER role="guest"> <name>user</name> <passwd>123</passwd> </USER> <USER role="admin"> <name>admin</name> <passwd>sss*kkkkk1</passwd> </USER>
guest用户申请改密码,会更改123,要是用户提交的不是简单的字母组合,而是如下信息:
  
    
    
  
12345</passwd></USER><USER role="admin"><name>admin</name><passwd>123456</passwd></USER><!---
这样上述配置文件会变成:
  
    
    
  
<?xml version="1.0" encoding="UTF-8"?> <USER role="guest"> <name>user</name> <passwd>12345</passwd> </USER> <USER role="admin"> <name>admin</name> <passwd>123456</passwd> </USER> <!--- <USER role="admin"> <name>admin</name> <passwd>sss*kkkkk1</passwd> </USER>
如何防御XML注入
  • 对用户输入进行检查
  • 对特殊字符进行转码
&lt; < 小于
&gt;
>
大于
&amp;
&
和号
&apos;
省略号
&quot;
"
引号

以上是关于XML注入:理论篇--定义原因防御的主要内容,如果未能解决你的问题,请参考以下文章

XPATH 注入的介绍与代码防御

控制反转IOC与依赖注入DI - 理论篇

宽字节注入和防御

SQL注入进阶篇一php代码审计

全局SQL注入防御代码

SpringMVC过滤字符防御xss攻击