【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代码,可知以下信息

继承关系

魔术方法

常用注入模块

posted @ 2024-01-23 17:19  AllFalls  阅读(39)  评论(0编辑  收藏  举报