安全基础~攻防特性3

文章目录

  • SSTI(模板注入)
    • 1. 简介
    • 2. 成因
    • 3. 常见框架存在注入
    • 4. 判断存在SSTI

SSTI(模板注入)

1. 简介

(Server-Side Template Injection) 服务端模板注入

1、使用框架(MVC的模式),如python的flask,php的tp,java的spring等

2、用户的输入先进入控制器,导致服务器模板中拼接了恶意用户输入导致各种漏洞

3、根据请求类型和请求的指令发送给对应Model业务模型进行业务逻辑判断,数据库存取

4、通过模板,Web应用可以把输入转换成特定的HTML文件或者email格式,并最后把结果返回给View视图层,展示给用户

2. 成因

1、使用模板来提高开发效率,同时带来了安全问题

2、配置代码不规范、未过滤用户输入的数据导致模板可控

3、服务端接收了用户的恶意输入以后,未经任何处理就将其作为 Web 应用模板内容的一部分

4、模板引擎在进行目标编译渲染的过程中,执行了用户插入的可以破坏模板的语句,因而可能导致了敏感信息泄露、代码执行、GetShell 等问题

3. 常见框架存在注入

引擎框架

4. 判断存在SSTI

随便访问一个不存在的路径,都会有一个报错页面,而且基本上都是一样的。这就是说明存在模板。

如果报错页面的url或者post数据中,有一个参数你是可以控制,且会显示在报错页面中,那么就有可能存在SSTI模板注入。
python中{{xxx}},xxx可能会被执行。

  • 查看源代码,是否使用框架包;
  • 是否使用类似flask.render.template.string()函数;
  • 在可控参数中输入类似/{{2-2}},看界面是否解析2-2。

SSTI(入门篇)参考链接
SSTI+Flask+Python

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/636128.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

实战内网穿透NPS搭建过程

前提条件 首先你要有个公网IP的服务器,既然是内网穿透,那必然是通过公网IP或者域名访问本地服务。 官网下载地址 https://github.com/ehang-io/nps/releases 服务端 选择linux_amd64_server.tar.gz 客户端 选择windows_amd64_client.tar.gz 服…

Centos 7 单机部署 consul

一、下载安装 参考官网文档 Install | Consul | HashiCorp Developer 进入Centos 执行下面命令 sudo yum install -y yum-utils sudo yum-config-manager --add-repo https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo sudo yum -y install consul 这种方法安装完成…

Spring MVC精解:技术内幕与最佳实践

第1章:引言 大家好,我是小黑,咱们今天来聊聊Spring MVC,它是Spring的一个模块,专门用来构建Web应用程序。提供了一种轻量级的方式来构建动态网页。就像小黑我刚开始接触Java时候一样,可能对这些听起来很高…

梁山泊国潮风礼盒,传承经典,贺礼新春

在春节来临之际,梁山泊隆重推出新年中国红礼盒酒,为您传递新年的祝福与关爱。这款酒以其独特的魅力,为您带来美好的祝愿和愉悦的享受。中国风国潮礼盒采用中国传统红色为主色调,象征着吉祥、喜庆和繁荣。红色的背景上,…

安科瑞Acrel-2000Z型电力监控系统在常州恒生工业园光伏项目上的的设计与应用——安科瑞赵嘉敏

概述 针对用户屋顶光伏发电电力监测,通过微机保护装置、开关柜综合测控装置、电气接点无线测温产品、电能质量在线监测装置、配电室环境监设备、弧光保护装置等设备组成综合自动化的综合监控系统,实现了变电、配电、用电的安全运行和管理。监控范围包括…

Linux:软件包管理器 yum

提示:以下指令均在Xshell 7 中进行 什么是软件包? 在Linux下安装软件, 一个通常的办法是下载到程序的源代码, 并进行编译, 得到可执行程序。 但是这样太麻烦了, 于是有些人把一些常用的软件提前编译好, 做成软件包(可以理解成windows上的安 装程序)放…

新手入门Java 继承概念及使用,final修饰符的详细介绍(有实例)

第四章 继承 课前回顾 1.如何进行封装 首先将类中定义的成员属性全部修改为private修饰 然后对每一个属性提供一个对外访问的方法,也就是生成getter/setter方法 最后再对外访问的方法(getter/setter)中加入属性值验证 2.封装的好处 提…

[优雅的面试]MySQL与Redis双写一致性方案

前言 由于缓存的高并发和高性能已经在各种项目中被广泛使用,在读取缓存这方面基本都是一致的,大概都是按照下图的流程进行操作: 但是在更新缓存方面,是更新完数据库再更新缓存还是直接删除缓存呢?又或者是先删除缓存再…

项目管理十大知识领域之项目沟通管理

一、项目沟通管理概述 项目沟通管理是项目管理中的重要组成部分,它涉及到对项目信息的收集、处理、存档和传递。一个成功的项目沟通管理可以确保团队成员、利益相关者以及其他相关方之间的信息交流畅通无阻,从而推动项目顺利进行。沟通管理涉及的内容不…

《Linux高性能服务器编程》笔记02

Linux高性能服务器编程 参考 Linux高性能服务器编程源码: https://github.com/raichen/LinuxServerCodes 豆瓣: Linux高性能服务器编程 文章目录 Linux高性能服务器编程第06章 高级I/O函数6.1 pipe函数6.2 dup函数和dup2函数6.3 readv 函数和writev 函数6.4 sendfile 函数6.…

TypeScript语法总结

JavaScript 与 TypeScript 的区别 TypeScript 是 JavaScript 的超集,扩展了 JavaScript 的语法,因此现有的 JavaScript 代码可与 TypeScript 一起工作无需任何修改,TypeScript 通过类型注解提供编译时的静态类型检查。 TypeScript 可处理已…

从数据角度分析年龄与NBA球员赛场表现的关系【数据分析项目分享】

好久不见朋友们,今天给大家分享一个我自己很感兴趣的话题分析——NBA球员表现跟年龄关系到底大不大?数据来源于Kaggle,感兴趣的朋友可以点赞评论留言,我会将数据同代码一起发送给你。 目录 NBA球员表现的探索性数据分析导入Python…

【 Qt 快速上手】-①- Qt 背景介绍与发展前景

文章目录 1.1 什么是 Qt1.2 Qt 的发展史1.3 Qt 支持的平台1.4 Qt 版本1.5 Qt 的优点1.6 Qt的应用场景1.7 Qt的成功案例1.8 Qt的发展前景及就业分析行业发展方向就业方面的发展前景 1.1 什么是 Qt Qt 是一个跨平台的 C 图形用户界面应用程序框架。它为应用程序开发者提供了建立…

DBA技术栈MongoDB:简介

1.1 什么是MongoDB? MongoDB是一个可扩展、开源、表结构自由、用C语言编写且面向文档的数据库,旨在为Web应用程序提供高性能、高可用性且易扩展的数据存储解决方案。 MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当…

linux下USB抓包和分析流程

linux下USB抓包和分析流程 在windows下抓取usb包时可以通过wireshark安装时安装USBpcap来实现usb抓包,linux下如何操作呢? 是基于usbmon,本博客简单描述基于usbmon在linux系统上对通过usb口进行发送和接收的数据的抓包流程,分别描…

SCI期刊查询利器:影响因子和分区情况一站式查询

参考 本文仅作为学术分享,如果侵权,会删文处理 期刊的影响因子,最传统也最靠谱的方法就是去 Journal Citation Reports 官方平台上面查询,JCR 平台直接输入期刊名称检索,或者按照类别查找期刊:如果在校外没有访问JCR的权限,可以购买80图书馆的WOS套餐,仅需38元,不到一…

【51单片机系列】proteus仿真单片机的串口通信

本文参考:https://zhuanlan.zhihu.com/p/425809292。 在proteus之外使用串口软件和单片机通信。通过在proteus设计一个单片机接收PC发送的数据,并将接收的数据发送出去,利用软件【Configure Virtual Serial Port Driver】创建一对虚拟串口&am…

Linux指令权限知识点总结

目录 周边知识 基础指令思维导图 权限思维导图 周边知识 大多数后端操作系统都是Linux操作系统操作系统是管理软件和硬件的软件Linux是一款操作系统Linux分为技术版本和商业版本Linux的文件是以多叉树的形式构建隐藏文件 . 和 ...可以表示当前路径。可以形成可执行文件&a…

关于ElasticSearch,你应该知道的

一、集群规划优化实践 1、基于目标数据量规划集群 在业务初期,经常被问到的问题,要几个节点的集群,内存、CPU要多大,要不要SSD? 最主要的考虑点是:你的目标存储数据量是多大?可以针对目标数据…

用LED数码显示器循环显示数字0~9

#include<reg51.h> // 包含51单片机寄存器定义的头文件 /************************************************** 函数功能&#xff1a;延时函数&#xff0c;延时一段时间 ***************************************************/ void delay(void) { unsigned …