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

继承关系

魔术方法

常用注入模块

【python】SSTI模版注入的更多相关文章

  1. python-Flask模版注入攻击SSTI(python沙盒逃逸)

    一篇以python Flask 模版渲染为例子的SSTI注入教学~ 0x01 Flask使用和渲染 这里简化了flask使用和渲染的教程 只把在安全中我们需要关注的部分写出来 来一段最简单的FLASK ...

  2. GYCTF Flaskapp[SSTI模板注入 ]

    题目复现传送门 学习链接: 找了个师傅的blog先学习一下基础的flask知识 https://www.freebuf.com/column/187845.html(从零学flask) 简单记录一下: ...

  3. XFF SSTI 模板注入 [BJDCTF2020]The mystery of ip

    转自https://www.cnblogs.com/wangtanzhi/p/12328083.html SSTI模板注入:之前也写过:https://www.cnblogs.com/wangtanz ...

  4. 服务端模版注入漏洞检测payload整理

    服务端模版注入漏洞产生的根源是将用户输入的数据被模版引擎解析渲染可能导致代码执行漏洞 下表涵盖了java,php,python,javascript语言中可能使用到的模版引擎,如果网站存在服务端模版注 ...

  5. Java安全之Velocity模版注入

    Java安全之Velocity模版注入 Apache Velocity Apache Velocity是一个基于Java的模板引擎,它提供了一个模板语言去引用由Java代码定义的对象.它允许web 页 ...

  6. Python 防止mysql 注入的两种方式

    Python防止sql注入一般有两种方法 1.escape_string   MySQLdb.escape_string(param) 注意:如果报错出现 'ascii' codec can't en ...

  7. python防止sql注入的方法

    python防止sql注入的方法: 1. 使用cursor.execute(sql, args)的参数位: sql_str = "select * from py_msgcontrol.py ...

  8. Java安全之freemaker模版注入

    Java安全之freemaker模版注入 freemaker简介 FreeMarker 是一款模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页,电子邮件,配置文件,源代码等 ...

  9. python SSTI tornado render模板注入

    原理tornado render是python中的一个渲染函数,也就是一种模板,通过调用的参数不同,生成不同的网页,如果用户对render内容可控,不仅可以注入XSS代码,而且还可以通过{{}}进行传 ...

  10. SSTI(模板注入)

    SSTI 一. 什么是SSTI 模板引擎(这里特指用于Web开发的模板引擎)是为了使用户界面与业务数据(内容)分离而产生的,它可以生成特定格式的文档,用于网站的模板引擎就会生成一个标准的HTML文档. ...

随机推荐

  1. Solon2 之基础:四、应用启动过程与完整生命周期

    串行的处理过程(含六个事件扩展点 + 两个函数扩展点),代码直接.没有什么模式.易明 提醒: 启动过程完成后,项目才能正常运行(启动过程中,不能把线程卡死了) AppBeanLoadEndEvent ...

  2. Solon 开发进阶,三、常用配置说明

    Solon 开发进阶 一.插件扩展机制 二.体外扩展机制 三.常用配置说明 四.启动参数说明 五.全局异常订阅 应用主配置文件为: resources/app.yml( 或 app.propertie ...

  3. logback.xml 配置文件

    logback.xml <?xml version="1.0" encoding="UTF-8"?> <configuration> & ...

  4. RocketMQ事务消息在订单创建和库存扣减的使用

    前言 下单的过程包括订单创建,还有库存的扣减,为提高系统的性能,将库存放在redis扣减,则会涉及到Mysql和redis之间的数据同步,其中,这个过程还涉及到,必须是订单创建成功才进行库存的扣减操作 ...

  5. svelte响应式原理

    svelte文件编译为js后的结构 源代码: <script lang="ts"> let firstName = '张' let lastName = '三' let ...

  6. 库函数 | C++17 std::filesystem文件系统 用法指北

    本文将针对常用的场景,对 std::filesystem 的使用逐一进行验证: 判断文件夹是否存在 创建单层目录 逐级创建多层目录 创建多级目录 当前文件路径 创建文件"from.dat&q ...

  7. AtCoder Regular Contest 121 (AB题解)

    补题链接:Here A - 2nd Greatest Distance 二维坐标图中有 \(n\) 个房子,现在规定两房子距离定义为: \(max(|x_i−x_j|,|y_i−y_j|)\) 求第二 ...

  8. 《3D编程模式》写书-第2次记录

    大家好,目前我已经完成了"拼接模式"."撤销重做模式"."ECS模式"的初稿 下面会给出它们的使用场景,如果您正好能用到,请联系我提前阅读模 ...

  9. freeswitch 新通话启动过程梳理

    概述 freeswitch是一款开源的VOIP软交换平台,功能强大. 在使用fs进行呼叫业务的过程中,我们最常见到的日志就是呼叫通道的启动信息,日志如下 2022-03-03 14:14:30.028 ...

  10. java基础-方法method-day05

    1. 语法 [修饰符] 返回值类型 方法名(形参列表){ 逻辑主体 } public class TestMethod01{ public static int add(int num1, int n ...