XSLT
2021-10-10 22:25
676 查看
参考:
简介
什么是 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 代码。
如何防御和代码执行一样的防御原理。
利用姿势
因为很少见,所以只补一个链接,待遇到时再进行详细学习。
相关文章推荐
- 学习XSLT(一)
- 在Ruby中处理XML和XSLT以及XPath的简单教程
- Use XSLT in wix
- 1分钟快速生成用于网页内容提取的xslt
- XSLT
- XSLT2.0 xsl:key key()函数解析.
- xslt转换xml
- 【重要】XSLT学习(九)通过JavaScript转化xml
- XSLT常见问题(四)XSLT中select和match的匹配原则
- Xslt
- Creating Output(Chapter 4 of XSLT 2nd Edition)
- 用XML/XSLT将行数据转换为列数据
- 用 JavaMail 和 XSLT 管理 ezine(转载)
- XSLT入门 -- 第1章 入门篇:带领初学者开始XSLT的旅行 [转]
- [导入]在 XSL/XSLT 中实现随机排序
- 样式表参数和扩展对象的 XsltArgumentList(利用程序编码添加脚本 != 在CDATA下添加)
- 技巧:从 XSLT 样式表调用 JavaScript
- [导入]xslt import 的权限问题
- XSLT实例
- XSLT 是什么类型的语言?