专栏名称: 看雪学苑
致力于移动与安全研究的开发者社区,看雪学院(kanxue.com)官方微信公众帐号。
目录
相关文章推荐
飓风网络安全  ·  【漏洞预警】Mitel MiCollab ... ·  昨天  
飓风网络安全  ·  【漏洞预警】Mitel MiCollab ... ·  昨天  
嘶吼专业版  ·  GEEKCON 2024 ... ·  3 天前  
独角兽早知道  ·  荣利营造正式登陆港交所,市值6.7亿港元,香 ... ·  4 天前  
独角兽早知道  ·  荣利营造正式登陆港交所,市值6.7亿港元,香 ... ·  4 天前  
山东高速信息集团有限公司  ·  国庆我在岗 | 坚守的身影 平凡亦有光 ·  6 天前  
山东高速信息集团有限公司  ·  国庆我在岗 | 坚守的身影 平凡亦有光 ·  6 天前  
51好读  ›  专栏  ›  看雪学苑

XSLT 服务端注入攻击

看雪学苑  · 公众号  · 互联网安全  · 2017-12-05 17:59

正文



前言



XSLT(扩展样式表转换语言)漏洞可能会给那些受到影响的应用带来严重的后果,经常会导致远程代码执行。

 

举几个已被公开的 XSLT 远程代码执行漏洞的例子,CVE-2012-5357 影响了 .NET Ektron CMS;CVE-2012-1592 影响了Apache Struts 2.0;CVE-2005-3757 影响了 Google 搜索应用。

 

从上面的例子可以看出,XSLT 漏洞可谓是由来已久,但是它并不像一些类似的漏洞(例如 XML 漏洞)那样常见。尽管我们经常在我们的安全评估中看到它的身影,但是有关该漏洞及其相关利用技术的文章却并不多见。

 

本文将通过展示一些经过精心挑选的 XSLT 攻击来说明这种技术以不安全的方式使用时所存在的风险。例如:远程执行任意代码、窃取远程系统数据、执行网络端口扫描以及获取受害者内部网络资源。本文还会提供一个简单的易受攻击的 .NET 应用,可用于练习本文中所展示攻击,最后提供几条规避 XSLT 漏洞的建议。



什么是 XSLT ?


 

XSLT(扩展样式表转换语言)是一种对 XML 文档进行转化的语言。XML 文档通过 XSLT 转化后可以变成为另一份不同的 XML 文档,或者其他类型的文档,例如 HTML 文档、 CSV 文件、纯文本文件等。

 

XSLT 通常用于转换被不同应用加工过的文件格式,还有就是作为一个模板引擎。许多企业级应用广泛地使用了 XSLT ,例如一个多租户发票应用可能会允许客户使用 XSLT 来高度定制他们的发票,比如根据自己的特殊需要来改变发票内容和发票格式。

 

其他一些常见的 XSLT 应用场景:

  • 报道

  • 将数据以不同的格式导出

  • 打印

  • 发邮件


在展示攻击之前,我们不妨先通过一个简单的例子看看这个转化到底是怎么回事。以下面这段包含了一些水果名及相关介绍的 XML 文档为例。

  

    Lemon

    Yellow and sour

  

  

    Watermelon

    Round, green outside, red inside

  


为了将该 XML 文档转化为纯文本文档,可使用如下 XSL 文档: