XSLT
参考:
简介
什么是 XSLT
全称 Extensible Stylesheet Language Transformations。xsl 是一种用于转换处理 xml 文档的语言。XSLT 就是指 xsl 解释器处理 xsl 文档的这个过程。
这是 xml,xml 是一种数据存储的形式。
<?xml version="1.0" encoding="UTF-8"?>
<catalog>
    <cd>
        <title>CD Title</title>
    </cd>
</catalog>
这是 xsl,用于描述如何转换 xml 文档的语言。
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
    <html>
    <body>
    <h2>The Super title</h2>
    <table border="1">
        <tr>
        <td><xsl:value-of select="catalog/cd/title"/></td>
        </tr>
    </table>
    </body>
    </html>
</xsl:template>
</xsl:stylesheet>
当执行时,saxonb-xslt -xsl:xsl.xsl xml.xml ,会获得如下结果。saxonb-xslt 就是 xsl 解释器。
<html>
   <body>
      <h2>The Super title</h2>
      <table border="1">
         <tr>
            <td>CD Title</td>
         </tr>
      </table>
   </body>
</html>
可以看到,和 php 解释器处理 php 脚本文件这个过程很类似。我们可以用类比的方法来体会这个漏洞的原理。
| php 解释器 | php 代码 | php 脚本文件 | php 处理 php 脚本 | 
| xsl 解释器 | xsl 代码 | xml 数据文件 | xslt | 
通过上面的对比,可以看到这个漏洞属于代码执行漏洞。也可以看到其实 xslt 漏洞本质就是如果在特定场景下,可以控制 xsl 代码,从而使 xsl 解释器 执行恶意的 xsl 代码。
其危害取决于 xsl 语言、 xsl 解释器支持的功能。通常来说,可以读写文件、ssrf、特定情景下可以 rce。
攻击场景
如果发现数据包中出现 <xsl: >  类似的标签,则可以尝试攻击。
如何攻击
尝试注入 恶意 xsl 代码。
如何防御
和代码执行一样的防御原理。
利用姿势
因为很少见,所以只补一个链接,待遇到时再进行详细学习。

 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号