【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代码,可知以下信息
继承关系
魔术方法
常用注入模块
、