注入篇——XML注入

XML

XML是The Extensible Markup  Language(可扩展标识语言)的简写。XML最初设计的目的是弥补HTML的不足,后来逐渐用于网络数据的转换和描述。XML的设计宗旨是传输数据,而非显示数据。

目前,XML在WEB中的应用已经非常广泛。下面举一个简单的XML实例:


  
  
  1. <?xml version= "1.0" encoding= "utf-8">
  2. <manager>
  3. <admin id= "1">
  4. <name>admin</name>
  5. <password>admin</password>
  6. <admin>
  7. <admin id= 2>
  8. <name>root</name>
  9. <password>root</password>
  10. </admin>
  11. </manager>

XML注入

XML与HTML一样,也存在注入攻击,甚至在注入的方法上也非常相似。

对于上面的xml文件,如果攻击者能够掌控password字段,那么就会产生XML注入,如攻击者输入:

admin </password></admin><admin id="100"><name>hack</name><password>hacker</password></admin>
  
  

最终的修改后的XML为:


  
  
  1. <?xml version= "1.0" encoding= "utf-8">
  2. <manager>
  3. <admin id="1">
  4. <name>admin </name>
  5. <password>admin </password>
  6. </admin>
  7. <admin id="100">
  8. <name>hack </name>
  9. <password>hacker </password>
  10. </admin>

以上的代码相当于添加了一个名为hack、密码为:hacker的新的用户到管理员组内!

XML注入时的两大注意点:

(1)标签闭合(关键所在

(2)获取XML的表结构

XML注入的前提条件

(1)用户能够控制数据的输入

(2)程序有拼凑的数据

XML注入防御

(1)对用户的输入进行过滤

(2)对用户的输入进行转义

预定义字符转以后的预定义字符
<&lt;
>&gt;
&&amp;
'&apos;
"&quot;
注明:部分内存参考《WEB安全深度剖析》
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值