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. 聚焦企业数据生命周期全链路 火山引擎数智平台 VeDI 发布《数据智能知识图谱》

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 近日,火山引擎数智平台(VeDI)正式发布<数据智能知识图谱>(以下简称「图谱」),内容覆盖了包括数据 ...

  2. 引用 AspNetCoreRateLimit => StatusCode cannot be set because the response has already started.

    app.UseIpRateLimiting(); #需要放在前面,否则抓去不准,还有可能会出现下列错误 本次出现这个错误,是因为  .Net Core 跨域 里面的这行:httpContext.Res ...

  3. 用ChatGPT,入门机器学习,太强了

    入门机器学习,对大部分人来说很简单,一本书.一份课件.一套视频足矣,但是我大胆猜测很多人大概率都没有完整看完过. 所以前些天在朋友圈抱怨了一波: 我感觉所谓牛人,大佬,刨除背景机遇,其成长路上可能也仅 ...

  4. 【django-vue】前后端分离项目

    博客目录 pip永久换源 虚拟环境搭建 项目前后端创建 项目目录调整 封装logger 封装全局异常 封装response 数据库配置 用户表继承AbstractUser配置 开放media访问 路飞 ...

  5. Go--统计数组中重复的元素及重复次数

    代码: package main import ( "fmt" ) func main() { //创建有重复数值的数组 a1 := []int{1, 2, 3, 1, 4, 5, ...

  6. 记录一次centost docker 容器 占满磁盘100% 的处理

    备忘 1.查看系统磁盘使用情况 df -h 2.查看docker镜像及容器空间占比 docker system df 3.查找大文件 find / -type f -size +100M -print ...

  7. 工作中使用Redis的10种场景

    前言 Redis作为一种优秀的基于key/value的缓存,有非常不错的性能和稳定性,无论是在工作中,还是面试中,都经常会出现. 今天这篇文章就跟大家一起聊聊,我在实际工作中使用Redis的10种场景 ...

  8. Serverless 架构开发手册 — “人人都是 Serverless 架构师”先导篇

    摘要:本篇实战将介绍如何以超低成本构建动态的 Web 站点,并且实现灵活扩展,限流等效果,最后再跟大家聊一聊"现代应用"的相关概念. 相信很多同学都有过想要拥有自己的 Web 站点 ...

  9. 二、Mycat安装

    系列导航 一.Mycat实战---为什么要用mycat 二.Mycat安装 三.mycat实验数据 四.mycat垂直分库 五.mycat水平分库 六.mycat全局自增 七.mycat-ER分片 万 ...

  10. S3C2440移植linux3.4.2内核之支持YAFFS文件系统

    上一节S3C2440移植linux3.4.2内核之修改分区以及制作根文件系统我们构建了根文件系统,这节我们修改内核支持yaffs2文件系统 目录 获取yaffs2源码并给内核打补丁 编译内核make ...