For the complete documentation index, see llms.txt. This page is also available as Markdown.

XSLT Server Side Injection (Extensible Stylesheet Language Transformations)

从零开始学习 AWS 黑客技术,成为专家 htARTE(HackTricks AWS 红队专家)

基本信息

XSLT 是一种用于将 XML 文档转换为不同格式的技术。它有三个版本:1、2 和 3,其中版本 1 是最常用的。转换过程可以在服务器端或浏览器内执行。

最常用的框架包括:

  • 来自 Gnome 的 Libxslt

  • 来自 Apache 的 Xalan

  • 来自 Saxonica 的 Saxon

为了利用与 XSLT 相关的漏洞,需要在服务器端存储 xsl 标签,然后访问该内容。有关此类漏洞的示例已在以下来源中记录:https://www.gosecure.net/blog/2019/05/02/esi-injection-part-2-abusing-specific-implementations/

示例 - 教程

sudo apt-get install default-jdk
sudo apt-get install libsaxonb-java libsaxon-java
xml.xml
<?xml version="1.0" encoding="UTF-8"?>
<catalog>
<cd>
<title>CD Title</title>
<artist>The artist</artist>
<company>Da Company</company>
<price>10000</price>
<year>1760</year>
</cd>
</catalog>

执行:

指纹识别

并执行

读取本地文件

SSRF

服务器端请求伪造

版本

根据使用的XSLT版本,可能会有更多或更少的功能:

指纹

上传此文件并获取信息

SSRF

服务器端请求伪造

JavaScript注入

目录列表(PHP)

Opendir + readdir

断言(var_dump + scandir + false)

读取文件

内部 - PHP

内部 - XXE

通过HTTP

内部(PHP函数)

端口扫描

写入文件

XSLT 2.0

Xalan-J扩展

其他写入PDF文件的方法

包含外部XSL

执行代码

php:function

使用其他框架在PDF中执行代码

在这个页面,您可以找到其他语言中RCE的示例: https://vulncat.fortify.com/en/detail?id=desc.dataflow.java.xslt_injection#C%23%2FVB.NET%2FASP.NET (C#,Java,PHP)

从类中访问PHP静态函数

以下函数将调用类XSL的静态方法stringToUrl

更多有效载荷

暴力检测列表

参考资料

从零开始学习AWS黑客技术,成为专家 htARTE (HackTricks AWS Red Team Expert)!

最后更新于