ExploringSSTIinFlask/Jinja2

作者: 云计算机网 分类: 云安全 发布时间: 2015-02-15 06:10
Part 1

如果你从未听过服务端模板注入(SSTI)攻击,或者不太了解它是个什么东西的话,建议在继续浏览本文之前可以阅读一下James Kettle写的这篇文章。

作为安全从业者,我们都是在帮助企业做一些基于风险的决策。因为风险是影响和属性的产物,所以我们在不知道一个漏洞的真实影响力的情况下,无法正确地计算出相应的风险值。作为一个经常使用Flask框架的开发者,James的研究促使我去弄清楚,SSTI对基于Flask/Jinja2开发堆栈的应用程序的影响有多大。这篇文章就是我研究的结果。如果你想在深入之前了解更多的背景知识,你可以查看一下Ryan Reid写的这篇文章,其中提供了在Flask/Jinja2应用中更多有关SSTI的信息。

0x00 Setup
为了评估在Flask/Jinja2堆栈中SSTI的影响,让我们建立一个小小的poc程序,代码如下。
@app.errorhandler(404)
def page_not_found(e):
template = '''{%% extends "layout.html" %%}
{%% block body %%}

Oops! That page doesn't exist.
%s

{%% endblock %%}
''' % (request.url)
return render_template_string(template), 404
在这段代码的背后,该开发者觉得为一个小小的404页面创建一个单独的模板文件可能会有些愚蠢了,所以他就在404视图功能当中创建了一个模板字符串。该开发者想要回显出用户输入的错误URL;但该开发者选择使用字符串格式化,来将URL动态地加入到模板字符串中,而不是通过render_template_string函数将URL传递进入模板内容当中。感觉相当合理,对不对?这是我见过最糟的了。
在测试这项功能的时候,我们看到了预期的效果。

看到这种情况大多数人马上会想到XSS,他们的想法是正确的。在URL的尾部加上alert(42)就触发了一个XSS漏洞。

目标代码很容易被XSS,但是在James的文章中,他指出XSS很有可是SSTI的一个迹象。现在这种情况就是一个很好的例子。如果我们更加深入一点,在URL的末尾添加上{{ 7+7 }},我们可以看到模板引擎计算了数学表达式,应用程序在响应的时候将其解析成14。

我们现在已经在目标应用程序中发现了SSTI漏洞。
0x01 Analysis
由于我们要得到一个可用的exp,下一步就是深入到模板环境当中,通过SSTI漏洞来寻找出可供攻击者利用的点。我们修改一下poc程序中存在漏洞的预览功能,如下所示。

  • 前言

    TIPA(影像技术新闻协会)是一个全球性的机构,由全球照片及影像杂志构成。

    TIPA成员包含来自5大洲15个国家的28家领先的照片以及影像杂志,并且与CJPC(摄影杂志俱乐部)具有良好的协作伙伴关系,CJPC则代表了11个顶级的日本摄影杂志。

    TIPA奖项被认为是全球市场领域内最具影响力的照片及影像产品奖项。所有产品以他们的宣传媒体如带有TIPA奖项的标签,就表明他们已经通过了TIPA技术委员会和杂志编辑们的评估。获得TIPA的认可对于照片和影像产品类是非常特殊的荣耀。

    因此,索尼公司很荣幸其多项产品被提名并在五个类别中获得最佳奖项。这些奖项证明了索尼员工、工程师、设计师以及所有参与获奖产品制作、推广和营销的人员所取得的成就。

    最佳APS-C画幅专业相机-Sony alpha;6400

    除了机身紧凑、重量轻外,alpha;6400还具有高速性能和一系列您期待的全画幅机型具备的先进功能,例如高速连拍和4K HDR(HLG)[1] [2] 视频录制;3.0英寸180度可翻转液晶屏;人工智能实时眼部自动对焦和索尼全新的高精度实时追踪。这套高速、高性能追踪的自动对焦系统与新一代BIONZ X影像处理器相配合,可让相机在短短0.02秒内进行对焦,并有效地保持目标锁定。它适合轻松捕捉移动速度较快的目标,同时宽广的感光度范围和令人惊叹的画质使其适合您可能遇到的任何拍摄情境,无论是拍摄静态照片还是动态视频。

    最佳大变焦紧凑型相机-Sony RX100 VI

    RX100 VI的各个方面和组件都经过精心设计,可以保持与RX100 V(2.9倍变焦)相同的小尺寸内,联动实现高品质的图像质量和惊人的8倍变焦。巧妙设计的光学元件具备强大的性能,甚至在变焦范围的长焦端使用手持拍摄,光学防抖功能亦能保持图像稳定。此外,先进的影像处理器提供更高的影像分辨率且噪点更低。

    最佳无反定焦远摄镜头-Sony FE 135mm f/1.8 GM

    索尼最先进的光学技术的充分应用造就了这枚大光圈远摄定焦镜头,实现了从中心到边缘的高分辨率表现,即使在该镜头的最大光圈F1.8时也是如此,还具备G大师系列镜头的标志性特点柔美的焦外散景效果。独特的XD(高动态)线性马达令用户能够持续追焦移动的人像、舞台上的表演者或类似的动态目标,可实现快速、精准、可靠的性能,同时,该镜头还提供安静低震动的自动对焦性能。

    最佳无反专业镜头-Sony FE 400mm F2.8

    索尼最先进的镜头技术在这枚大光圈超远摄镜头中得到了充分应用,可实现超凡的速度,出色的G大师镜头分辨率和背景虚化,以及专业的控制性和可靠性。此外,SEL400F28GM是一枚轻量化设计和平衡性更佳的超远摄镜头,可提供无与伦比的手持拍摄自由度。#p#分页标题#e#

    最佳影像存储解决方案-索尼SF-G系列Tough规格卡

    这是目前市场上速度快又坚固的SD卡,具有300MB/s的读取速度和299MB/s的写入速度,专为专业性能和极高的可靠性而设计。该卡比传统SD卡的抗弯曲强度高18倍;防尘、防水、防泥、防垢;由十分坚硬的材料制成,采用单片式结构,耐跌落达5米[3]。无论在多么严苛的拍摄环境下,SF-G系列TOUGH规格卡都提供可靠的性能和耐用性,可在连拍后大大缩短清除缓存时间,将内容高效传输到PC端。

    虽然各不相同,但这三款相机无疑都是代表索尼的产品。它们独特的特质被肯定并被授予奖项,我感到无比激动和荣幸。索尼将继续创造独特而优秀的产品,期待继续得到TIPA及其他奖项的鼓励和认可。田中健二在获奖后说道,同样,也让我们继续对索尼保持期待!

  • 相关推荐:

  • 索尼:其创新和表现再次
  • MySQL的SQL预处理(Prepared
  • MySQLbufferpool中的三种链
  • 如何在Linux中安装Apache
  • windowsapachemod_python配置
  • 基于Win的Apachewebdav的配置
  • windows下查看apache的使用
  • Windows系统配置apache+SVN
  • WindowsServer2012新功能:
  • ISCSI共享存储配置跟par
  • 网站内容禁止违规转载,转载授权联系中国云计算网