SSTI 学习笔记

2023-10-29

PHP SSTI(Twig)

学习文章

进入环境,左上角有flag,hint

都检查看看

flag页面显示ip,hint页面源代码有提示

 考虑XFF头或者referer头

测试一下

注:这里不用加上“;”

出来了

 

python flask ssti

学习文章

原理:因为对输入的字符串控制不足,把输入的字符串当成命令执行。

漏洞产生主要原因:render_template渲染函数的问题

渲染函数在渲染的时候,往往对用户输入的变量不做渲染,
即:{undefined{}}在Jinja2中作为变量包裹标识符,Jinja2在渲染的时候会把{undefined{}}包裹的内容当做变量解析替换。比如{undefined{1+1}}会被解析成2。因此才有了现在的模板注入漏洞。往往变量我们使用{undefined{这里是内容}}
真因为{undefined{}}包裹的东西会被解析,因此我们就可以实现类似于SQL注入的漏洞

像文件包含,有一个include函数,sql注入,似乎都有些共同点,都是利用某个函数或者其他的东西,执行恶意的命令

因为我们需要执行一些命令,例如,file、read、open、ls等等

就需要去调用这些函数

这就需要用到这个魔术对象

__class__  :返回类型所属的对象
__mro__    :返回一个包含对象所继承的基类元组,方法在解析时按照元组的顺序解析。
__base__   "返回该对象所继承的基类
// __base__和__mro__都是用来寻找基类的

__subclasses__  获取当前类的所有子类
__init__  类的初始化方法
__globals__  对包含(保存)函数全局变量的字典的引用

通过魔术对象调用我们需要的函数,例如

>>> [].__class__.__base__.__subclasses__()[2]
<class 'weakcallableproxy'>
>>> [].__class__.__base__.__subclasses__()[3]
<class 'weakproxy'>
>>> [].__class__.__base__.__subclasses__()[40]
<class 'wrapper_descriptor'>

Bugku Simple_SSTI_1

进入环境

查看源代码

 意思是我们需要传一个flag变量,并且提示我们有个secret_key

 测试下有没有ssti

 有的,我们去看看sectet_key

这里是需要大写的

 

Bugku Simple_SSTI_2

进入环境

源代码并没有提示,只是让我们传一个pass变量

 这里证明有ssti那就看看目录

 一个一个看下,先看app

 有flag目录

Bugku Flask_FileUpload

进入环境

 源代码里有提示

 上传文件,会用Python执行文件返回结果

先随便上传个文件试试

发现只能上传jpg或者Png

 那就改下后缀继续上传

 会在源代码里返回执行的结果,那么可以试试命令执行

抓flag

 

 

 

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SSTI 学习笔记 的相关文章

  • Web 安全漏洞之 OS 命令注入

    什么是 OS 命令注入 上周我们分享了一篇 Web 安全漏洞之 SQL 注入 其原理简单来说就是因为 SQL 是一种结构化字符串语言 攻击者利用可以随意构造语句的漏洞构造了开发者意料之外的语句 而今天要讲的 OS 命令注入其实原理和 SQL
  • J2EE常见面试题(一)

    StringBuilder和StringBuffer的区别 String 字符串常量 不可变 使用字符串拼接时是不同的2个空间 StringBuffer 字符串变量 可变 线程安全 字符串拼接直接在字符串后追加 StringBuilder
  • 白帽子如何快速挖到人生的第一个漏洞 | 购物站点挖掘商城漏洞

    本文针对人群 很多朋友们接触安全都是通过书籍 网上流传的PDF 亦或是通过论坛里的文章 但可能经过了这样一段时间的学习 了解了一些常见漏洞的原理之后 对于漏洞挖掘还不是很清楚 甚至不明白如何下手 可能你通过 sql labs 初步掌握了sq
  • 2024年金三银四网络安全考试试题

    2023年金三银四网络安全考试试题 1 关于数据使用说法错误的是 A 在知识分享 案例中如涉及客户网络数据 应取敏感化 不得直接使用 B 在公开场合 公共媒体等谈论 传播或发布客户网络中的数据 需获得客户书面授权或取敏感化 公开渠道获得的除
  • Android SDK开发艺术探索(五)安全与校验

    一 前言 本篇是Android SDK开发艺术探索系列的第五篇文章 介绍了一些SDK开发中安全方面的知识 包括资源完整性 存储安全 权限校验 传输安全 代码混淆等知识 通过基础的安全配置为SDK保驾护航 探索SDK开发在安全方面的最佳实践
  • 「网络安全渗透」如果你还不懂CSRF?这一篇让你彻底掌握

    1 什么是 CSRF 面试的时候的著名问题 谈一谈你对 CSRF 与 SSRF 区别的看法 这个问题 如果我们用非常通俗的语言讲的话 CSRF 更像是钓鱼的举动 是用户攻击用户的 而对于 SSRF 来说 是由服务器发出请求 用户 日 服务器
  • 远程控制软件安全吗?一文看懂ToDesk、RayLink、TeamViewer、Splashtop相关安全机制_raylink todesk

    目录 一 前言 二 远程控制中的安全威胁 三 国内外远控软件安全机制 ToDesk RayLink Teamviewer Splashtop 四 安全远控预防 一 前言 近期 远程控制话题再一次引起关注 据相关新闻报道 不少不法分子利用远程
  • 【网安神器篇】——WPScan漏洞扫描工具

    目录 一 Wordpress简介 二 WPScan介绍 三 安装 四 获取token 1 注册账号 2 拿到token 五 使用教程 1 常用选项 2 组合命令 1 模糊扫描 2 指定扫描用户 3 插件漏洞扫描 4 主题漏洞扫描 5 Tim
  • 渗透测试常用工具汇总_渗透测试实战

    1 Wireshark Wireshark 前称Ethereal 是一个网络分包分析软件 是世界上使用最多的网络协议分析器 Wireshark 兼容所有主要的操作系统 如 Windows Linux macOS 和 Solaris kali
  • 网络安全:绕过 MSF 的一次渗透测试

    这次渗透的主站是 一个 Discuz 3 4 的搭建 违法招 piao 网站 配置有宝塔 WAF 用 Discuz ML 3 X 的漏洞进行攻击 但是没有成功 发现主站外链会有一个发卡网 引导人们来这充值 是 某某发卡网 而且域名指向也是主
  • 内网安全:隧道技术详解

    目录 隧道技术 反向连接技术 反向连接实验所用网络拓扑图及说明 网络说明 防火墙限制说明 实验前提说明 实战一 CS反向连接上线 拿下Win2008 一 使用转发代理上线创建监听器 二 上传后门执行上线 隧道技术 SMB协议 SMB协议介绍
  • 【GRNN-RBFNN-ILC算法】【轨迹跟踪】基于神经网络的迭代学习控制用于未知SISO非线性系统的轨迹跟踪(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 2 1 第1部分 2 2 第2部分
  • 全网最全(黑客)网络安全自学路线!熬夜两周整理(巨详细)

    学网络安全有什么好处 1 可以学习计算机方面的知识 在正式学习网络安全之前是一定要学习计算机基础知识的 只要把网络安全认真的学透了 那么计算机基础知识是没有任何问题的 操作系统 网络架构 网站容器 数据库 前端后端等等 可以说不想成为计算机
  • 为什么我强烈推荐大学生打CTF!

    前言 写这个文章是因为我很多粉丝都是学生 经常有人问 感觉大一第一个学期忙忙碌碌的过去了 啥都会一点 但是自己很难系统的学习到整个知识体系 很迷茫 想知道要如何高效学习 这篇文章我主要就围绕两点 减少那些罗里吧嗦的废话 直接上干货 CTF如
  • 为什么这么多人自学黑客,但没过多久就放弃了(掌握正确的网络安全学习路线很重要)

    网络安全是一个 不断发展和演变 的领域 以下是一个 网络安全学习路线规划 旨在帮助初学者快速入门和提高自己的技能 基础知识 网络安全的 基础知识 包括 网络结构 操作系统 编程语言 等方面的知识 学习这些基础知识对理解网络安全的原理和技术至
  • 【无标题】

    大家都知道该赛项的规程和样题向来都是模棱两可 从来不说具体的内容 导致选手在备赛时没有头绪 不知道该怎么训练 到了赛时发现题目和备赛的时候完全不一样 那么本文将以往年信息安全管理与评估赛项经验来解读今年2023年国赛的规程 帮助选手们指明方
  • Cortex-M3与M4权威指南

    处理器类型 所有的ARM Cortex M 处理器是32位的精简指令集处理器 它们有 32位寄存器 32位内部数据路径 32位总线接口 除了32位数据 Cortex M处理器也可以有效地处理器8位和16位数据以及支持许多涉及64位数据的操作
  • 【js学习之路】遍历数组api之 `filter `和 `map`的区别

    一 前言 数组是我们在项目中经常使用的数据类型 今天我们主要简述作用于遍历数组的api filter 和 map 的区别 二 filter和map的共同点 首先 我们主要阐述一下 filter 和 map 的共同点 api的参数都是回调函数
  • 肿瘤的转录调控:Cell子刊揭示原发性肝癌中转录因子活性的全基因组图谱|国自然热点

    转录调控的研究历史比较长 相关研究在近十年来仍一直增长 也是近年来高分文章的焦点之一 在2023年最佳国自然 中标 研究热点 转录调控中标率高达189 作为国自然热点之一的肿瘤微环境的研究在近几年也一直处于上升趋势 转录调控在肿瘤发生 发展
  • 【安全】使用docker安装Nessus

    目录 一 准备docker环境服务器 略 二 安装 2 1 搜索镜像 2 2 拉取镜像 2 3 启动镜像 三 离线更新插件 3 1 获取challenge 3 2 官方注册获取激活码 3 3 使用challenge码和激活码获取插件下载地址

随机推荐

  • rxjava 流式开发

    RxJava 是一种支持响应式编程的库 它允许您以流式方式处理异步事件序列 使用 RxJava 您可以将事件序列视为一个流 并使用丰富的操作符对这个流进行转换 过滤 组合等操作 以生成您所需的结果 在 RxJava 中 数据源可以是任何可观
  • MySQL 上机操作--数据库及数据表操作

    前言 如有不当之处 还望指正 一 上机目的 熟练掌握基本表的定义 删除与修改 为后继学习作准备 二 上机设备 1台计算机 数据库系统安装MySql 三 相关准备知识 3 1 掌握数据库的定义 删除与修改 3 2 掌握基本表的定义 删除与修改
  • 程序控制流图

    基本符号 ps 请将线看成弧线 doge 顺序结构 if选择结构 while循环结构 case多分支结构 控制流图由节点和控制流线 弧 两种符号组成 结点以标有编号的圆圈表示 用于表示程序流程图中矩形框 菱形框的功能 是一个或多个分支的语句
  • 10分钟上手Azure Blob Storage

    文章目录 Azure Blob Storage快速上手 背景 什么是Azure Blob Storage Blob Storage的应用场景 环境搭建 安装 运行 修改Blob Storage中的数据 基本操作 使用C 修改文件属性 遇到问
  • 平摊分析典型例题及解答

    Exercise 1 5 对某个数据结构执行大小为 n 的一个操作序列 若 i 为 2 的整数幂 则第 i 个操作的代价 为 i 否则为 1 请利用会计方法分析每次操作的平摊代价 Exercise 2 15 Bill 提出了一种叫做翻转堆栈
  • SpringClud Sleuth + Zipkin + Kafka实现分布式链路追踪

    SpringClud Sleuth Zipkin Kafka实现分布式链路追踪 使用步骤 使用步骤 1 导入 pom 依赖
  • 关于Spring Cloud Gateway 网关限流

    本文将使用以下两种方式实现网关的限流 使用 Spring Cloud Gateway 的 RequestRateLimiter 过滤器工厂基于 Redis 的限流 使用 Sentinel 结合 Spring Cloud Gateway 来实
  • vue动态组件component详解

    附上代码
  • 演唱会门票抢不到?不要慌,教你用python实现自动化抢票

    前言 之前有小伙伴留言说女朋友快生日了 喜欢某某某但是手动买票根本就是买不到 又不想当大冤种从黄牛手里加钱 于是乎在疯狂星期四的晚上遭到 贿赂 的我连夜搞定了 一丶安装环境和配置文件 要用python实现 下载和安装python自然是不用说
  • P1016 旅行家的预算【模拟+贪心】【详解】

    题目链接 思路 这道题是一道很明显的模拟题 但这道题也需要自己的理解 我自己写了些样例 然后找到了其中的模拟 我们假设从一个点出发 对于它的下一个点我们有很多选择 期间定义一个len用以记录满油 单次最远 到达距离 我们造访这条路上的所有点
  • MYSQL数据库(六)用户、权限管理和DCL语句

    成功不易 加倍努力 1 MySQL用户管理 2 权限管理和DCL语句 3 MySQL的图形化的远程管理工具 1 MySQL用户管理 元数据数据库 mysql 系统授权表 USERNAME HOST HOST 主机名 user1 web1 m
  • 区块链到底是怎么运行的

    为了方便你理解 这一篇文章我将以比特币为例来进行讲解 因为比特币算是区块链应用中最简单 最容易理解的一个案例了 中心化记账的问题 首先 举一个关于中心化记账的经典例子 银行转账 假设小明给小红转200块 银行收到了转账请求 将小明银行账户里
  • 区块链hyperledger fabric架构详解

    hyperledger fabric是区块链中联盟链的优秀实现 主要代码由IBM Intel 各大银行等贡献 目前v1 1版的kafka共识方式可达到1000 s次的吞吐量 本文中我们依次讨论 区块链的共通特性 fabric核心概念 fab
  • vue全局一个格式化时间-format

    vue圈定定义一个format 用来格式化时间 Date prototype format function fmt const o M this getMonth 1 月份 d this getDate 日 h this getHours
  • Sudo: unable to initialize policy plugin 解决方法

    在centos7下 使用sudo 命令对www用户生成ssh秘钥 结果报错如下 Sudo parse error in etc sudoers near line 125 Sudo no valid sudoers sources foun
  • OS - 操作系统实战 - 学习/实践

    1 应用场景 主要用于学习 设计和编写操作系统 同时帮助更加好低理解操作系统 研究Linux系统 提供编程能力 2 学习 操作 1 文档阅读 操作系统实战45讲 操作系统 Linux 计算机基础 底层 内核 后端开发 iOS 彭东 C语言
  • c++中string的substr函数

    在 C 中 substr 函数用于提取字符串的子串 它有两种常用的用法 1 substr pos len 提取从位置 pos 开始的长度为 len 的子串 pos 指定提取子串的起始位置 位置从 0 开始 len 指定提取子串的长度 如果不
  • 2019年3月web前端最新面试题

    最近在找工作 面试了好多家公司 结果都不怎么理想 要么公司环境氛围不行 要么工资达不到理想的薪资 大部分公司对程序员的面试流程几乎都一样 来了先填一份登记表 写一套面试题 然后技术面 人事面 至于有的大牛说 四面web前端 拿到10K 的工
  • js 搜索关键字高亮

    主要是通过replace方法实现的 实现代码
  • SSTI 学习笔记

    PHP SSTI Twig 学习文章 进入环境 左上角有flag hint 都检查看看 flag页面显示ip hint页面源代码有提示 考虑XFF头或者referer头 测试一下 注 这里不用加上 出来了 python flask ssti