好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

系统允许上传xml文件可导致xss - 网站安全 - 自学

互联网上常用的某种数据被恶意解析后会导致xss

详细说明:xml文件中可以包含一个xml-stylesheet标签,用于指定一个xsl文件来将xml文件格式化并输出。在xsl输出的过程中,可以输出任意html代码,包括<scrip>标签。。。。那就可以弹alert了。

不过xml格式化后的script权限较小,很多操作都不能进行。。。。不过,我想应该不影响作为钓鱼之类的用途。

 

要利用这个alert,就我看到的,要满足两个条件

1、 让浏览器认为这个输出是一个xml,并插入一些代码这个条件大家自己看吧

2、 在满足同源规则的条件下,制造一个能满足xsl格式的输出的页面。不管你上传一个图片也好,没过滤也好。

我觉得,针对这个东西的利用,应该基本集中于上传了。

记得之前某家互联网公司是允许用户上传自定义的xml文件用于用户空间的配置的,然后目测很多 论坛 应该也是允许上传xml文件的

最为性质恶劣的,是一些对输入没有过滤,直接输出,并设置了conten-type为xml的某些ajax回调接口。

 

下面就是弹alert的代码了,其余的大家自己想怎么利用吧

alert.xml

 

<?xml version="1.0" encoding="iso-8859-1"?><?xml-stylesheet type="text/xsl" href="test.jpg"?><test></test>

test.jpg

 

<?xml version="1.0" encoding="iso-8859-1"?>

<xsl:stylesheet version="1.0" xmlns:xsl="http://HdhCmsTestw3.org/1999/XSL/Transform">

<xsl:template match="/">

< html ><body>

<script>alert(/hacked by xsser/);</script>

</body></html>

</xsl:template>

</xsl:stylesheet>

chrome's alert

 

 

 

记得之前某家互联网公司是允许用户上传自定义的xml文件用于用户空间的配置的,现在找不到上传点了。

然后目测很多论坛应该也是允许上传xml文件的

xml文件中指定的xsl文件没有拓展名和content-type要求(ff、ie测试通过)  

修复方案: 禁止用户上传xml文件

对于输入要进行输出XML操作的,过滤之

 

查看更多关于系统允许上传xml文件可导致xss - 网站安全 - 自学的详细内容...

  阅读:48次