【python】SSTI模版注入
0x00 Python Vene环境及介绍
venv虚拟环境:创建和管理虚拟环境的模块
首先apt update更新一下包管理

安装你当前版本的python-venv

选择一个目录,安装venv虚拟环境。我取的名是flask-venv。

如何选中当前的venv呢?执行以下命令可以发现多了一个前缀flask-venv

在当前目录安装flask框架。

输入deactivate,退出当前虚拟python环境。
0x01 flask应用介绍及环境搭建
Flask是一个使用python编写的轻量级web应用框架
创建一个文件夹

编写一个python文件

其中route相当于是路由。通俗点来说,就相当于你输入不同的网址,访问不同的内容,这里就默认为根目录。
运行,并可访问自身的127.0.0.1:5000查看内容


其中可以更改一下run的参数


访问6666端口,火狐浏览器限制的话,https://blog.51cto.com/u_15999672/6110608
0x02 flask变量及方法
格式化字符串
Flask变量规则,通过向规则参数添加变量部分,可以动态构建URL

访问/hello/iamhacker
发现动态创建了一个网页。原理就是通过url传进name变量。


0x03 flask模版介绍

render_template就是加载html的内容渲染后再展示。在html中的{{xxx}},会被动态变量所替代。
例如
def index():
m='123'
return render_template("index.html",m1=m)
index.html中的{{m1}}就会变成m的值。
render_tempplate_string

0x04 flask模版漏洞介绍

这种写法就不会有漏洞出现。

先格式化再渲染可能会出现漏洞!

输入{{7*7}}会得到49
我们来实验一下。

实验成功

SSTI注入类型及方法
0x05 继承关系和魔术方法
python,flask没有办法直接执行python指令。子类无法做到的事情先找到父类,再找到其他子类。

通过python代码,可知以下信息
继承关系

魔术方法

常用注入模块
、


浙公网安备 33010602011771号