又叫XML实体注入,XML External Entity attack(XXE)
XML injection,XML注入漏洞。
XML注入类似于SQL注入,XML文件一般用作存储数据及配置,如果在修改或新增数据时,没有对用户可控数据做转义,直接输入或输出数据,都将导致XML注入漏洞的产生。
正常情况下服务器存储的数据是酱紫的:
<?xml version="1.0" encoding="UTF-8"?>
<USER role="guest"><name>xlydm</name><passwd>12345</passwd>
</USER>
<USER role="admin"><name>admin</name><passwd>202cb962ac59075b964b07152d234b70</passwd>
</USER>
那么这种情况下用户guest传入的密码就是酱紫的:
12345
那么这个用户他要是脑洞大开,传入的密码是这样的呢?
12345</passwd></USER><USER role="admin"><name>admin</name><passwd>123456</passwd></USER><!--
是不是有点熟悉?那么咱们加个xml高亮再看看
12345</passwd></USER><USER role="admin"><name>admin</name><passwd>123456</passwd></USER><!--
emmmm这样插入之后的文件内容就变成了这样:
<?xml version="1.0" encoding="UTF-8"?>
<USER role="guest"><name>xlydm</name><passwd>12345</passwd>
</USER>
<USER role="admin"><name>admin</name><passwd>123456</passwd>
</USER><!--
</passwd>
</USER>
<USER role="admin"><name>admin</name><passwd>202cb962ac59075b964b07152d234b70</passwd>
</USER>
事情开始变得微妙了起来
防御XML注入的思路和SQL和XSS类似,主要还是字符串过滤以及用户权限的限制
php.ini文件及时关闭allow_url_fopen和allow_url_include
禁止用户直接输入源码,而可以用一些简单字符(比如说1、2、3、a、b、c等)
(有点像文件上传漏洞)
四种攻击方式:
本文发布于:2024-01-28 12:42:51,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/17064169777500.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |