攻防世界 shrine 详解

2023-11-10

 打开题目 

 整理源码

代码审计:    目标  config['FLAG']

过滤了  config,self 这两个函数的过滤没看懂,总之好像也没过滤掉(应该是过滤了后面的变量),圆括号是彻底的被过滤掉了,URL编码都没用(刚开始想测试XSS来着)

做完后,拿编译器跑了一下带config的payload也没发现过滤

回归正题

2个@app.route 为路由    第一个是 /       使用URL/  可访问index()也就是刚刚开始显示的源码

第二个为/shrine/   这个路由用法同理    URL/shrine/payload

使用模板注入试试看会不会解析出来

可以解析到,说明存在注入

吃老本了,使用Python内置函数读取全局变量   url_for或者get_flashed_messages

url/shrine/{{url_for.__globals__}}

看到了属性的东西,代码审计的时候有 app.config['FLAG']

调用这个函数 看了其他师傅的WP对这步的解释是   :

 python沙箱逃逸的方法是 利用python对象之间的引用关系来调用被禁用的函数对象

构造payloads:   /shrine/{{url_for.__globals__['current_app'].config['FLAG']}}

得到flag

flag{shrine_is_good_ssti}

另外一个方法 get_flashed_messages利用信息闪现的方法构造一样(只能显示一次)

Ending


 

 

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

攻防世界 shrine 详解 的相关文章

  • Flask:缓存静态文件(.js、.css)

    我真的找不到任何这方面的资源 那么如何将视图 函数的缓存与静态文件 即 css js 分开 我想将静态对象缓存一周 另一方面 我只需要缓存函数 视图几分钟 当我执行以下操作时 from flask ext cache import Cach
  • 如何在 Windows 上为“flask run”设置环境变量?

    我刚刚开始学习 Flask 我一直停留在设置 Flask 环境变量上 我不知道如何设置环境变量 每当我使用flask run命令 我遇到以下错误 错误消息 无法找到 Flask 应用程序 您没有提供 FLASK APP 环境变量 并且在当前
  • Python - 如何将列表保存为图像?

    我生成一个常规列表 是否可以将此列表保存为 JPEG 图像或 PNG 或其他格式 以便我可以打开图像并查看它 我目前正在尝试使用 python 成像库 PIL 来解决这个问题 这是可能的解决方案之一 使用以下方法创建一个空图像对象 Imag
  • List.Clear() 在 C# 中是如何实现的?

    我假设它使用数组来实现 List 怎么List Clear 实施的 它实际上清理了数组还是只是为此列表创建了一个新数组 public class List private Array array public void Clear1 arr
  • 通过 id 从通用列表中删除对象

    我有一个像这样的域类 public class DomainClass public virtual string name get set public virtual IList
  • 在Python中创建N*N*N列表时出现问题

    我正在尝试创建一个 3 维 NNPython 中的 N 列表 如下所示 n 3 l 0 n n n 不幸的是 这似乎没有正确地 克隆 列表 正如我所想的那样 gt gt gt l 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
  • 列表到优先队列

    我有一个 C 大学编程项目 分为两个部分 在开始第二部分时应该使用priority queues hash tables and BST s 我 至少 在优先级队列方面遇到了麻烦 因为它迫使我自己重做第一部分中已经实现的许多代码 该项目是关
  • 如何测试send_file烧瓶

    我有一个小型烧瓶应用程序 它需要上传一些图像并将它们转换为多页 tiff 没什么特别的 但是如何测试多个文件的上传和文件下载呢 我的测试客户端 class RestTestCase unittest TestCase def setUp s
  • 如何在 LINQ 中执行 String.Replace?

    这是我正在尝试做的事情 但没有成功 我想打电话from x in list1 and join y in list2 where regex Match x Value Success 完成这些步骤后我需要打电话String Replace
  • 我可以在字段构造函数之外设置 StringField 的默认值吗?

    如果我在构建字段期间设置默认值 则一切都会按预期工作 my field StringField My Field default default value validators Optional Length 0 255 但是 如果我尝试
  • Flask 未激活调试模式

    我正在开始使用 Flask 我正在尝试遵循一些教程 但我无法在调试模式下运行 Flask 应用程序 我尝试了我发现的最简单的代码 from flask import Flask app Flask name app debug True I
  • Python 3 中的递归搜索 JSON/DICT

    我在 Python 3 中实现了一些 API 这些 API 允许我根据班级代码接收有关学校的信息 但我想知道如何通过类代码获取信息 例子 我输入代码GF528S我希望程序告诉我班级 3C INF 地址 Address 1 Milan 如果可
  • 如何使用 tweepy 仅提取主题标签中的文本?

    我想为我的情感分析项目提取主题标签 但是我得到了一个字典列表 其中包含所有主题标签及其在推文中的索引 我只想要文字 我的代码 data tweepy Cursor api search q since a i until b i items
  • Flask-Mail - 基于 Flask-Cookiecutter 异步发送电子邮件

    我的烧瓶项目基于烧瓶饼干切割机 https github com sloria cookiecutter flask我需要异步发送电子邮件 发送电子邮件的功能由以下配置米格尔的教程 https blog miguelgrinberg com
  • Python 线程在 main 中调用一次时运行两次[重复]

    这个问题在这里已经有答案了 if name main t threading Thread target authtarget t daemon True t start print running thread app run debug
  • 烧瓶 - 404 未找到

    我是烧瓶开发的新手 这是我在烧瓶中的第一个程序 但它向我显示了这个错误 在服务器上找不到请求的 URL 如果您输入了网址 请手动检查拼写并重试 这是我的代码 from flask import Flask app Flask name ap
  • Backbone Marionette CompositeView 排序列表 - 在添加时呈现额外的模型

    这是小提琴 http jsfiddle net QhQ8D 10 http jsfiddle net QhQ8D 10 代码在下面 制作一个聊天应用程序 需要一个排序的 连接的用户列表 名称上带有比较器的图形集合连接到 CompositeV
  • 查找列表中项目的索引

    给定一个列表 foo bar baz 和列表中的一个项目 bar 如何获取它的索引1 gt gt gt foo bar baz index bar 1 See 文档 https docs python org tutorial datast
  • 使用 LINQ 洗牌

    我正在尝试编写一个简单的纸牌游戏 为了想出一个好的洗牌算法 我遇到了 Jeff Atwood 的post http www codinghorror com blog 2007 12 shuffling html关于恐怖编码 但是 当我在调
  • Collections.sort(list) 和 list.sort(Comparator) 之间的区别

    有什么理由让我应该选择Collections sort list 方法而不是简单地调用list sort 内部Collections sort只是调用sort的方法List无论如何 上课 令人惊讶的是几乎每个人都告诉我使用Collectio

随机推荐

  • css 网格布局_CSS网格布局:Fr单元

    css 网格布局 介绍 Introduction With CSS Grid Layout we get a new flexible unit the Fr unit Fr is a fractional unit and 1fr is
  • C# GET方式请求时url地址长度超过限制问题解决

    问题分析 一般通过Get方式请求 服务器只能接受url长度不超过2048个字节的请求 问题解决 我们可以将服务器能够接受的最大请求长度设置为100MB 在Web config文件中添加以下配置
  • 自定义MVC框架原理

    目录 一 什么是MVC 1 模型 Model 2 视图 View 3 控制器 Controller 二 自定义mvc核心思想 三 自定义MVC的核心原则 四 三层架构和MVC的区别 1 结构层次不同 2 重点关注不同 3 强调的功能不同 4
  • install Android Studio 1.3 —— VM Acceleration on Linux

    http developer android com tools devices emulator html vm linux Configuring VM Acceleration on Linux Linux based systems
  • 堪称全网最详细的Java八股面试文,面试必备(附答案)

    前言 听一些小伙伴说 近期的面试越来越难了 为了帮大家节约时间 给大家搞来了今年上半年碰到的大厂Java面试题合集 内容非常的全面 耗时半月 终于把牛客网上的互联网大厂Java面试八股文整理成了PDF合集 其中概括的知识点有 java基础
  • virtualenv创建“隔离”的Python运行环境

    Windows 安装mkvirtualenv pip install virtualenv pip install virtualenvwrapper 新建虚拟python环境 1 创建python工程目录 2 创建一个独立的Python运
  • OpenCV教程——Mat对象

    1 Mat对象和IplIamge对象 Mat对象是OpenCV2 0之后引进的图像数据结构 自动分配内存 不存在内存泄漏的问题 是面向对象的数据结构 分为两个部分 头部和数据部分 IplIamge是从2001年OpenCV发布之后就一直存在
  • SpringBoot自学笔记《黑马程序员》

    SpringBoot 文章目录 SpringBoot SpringBoot简介 SpringBoot开发步骤 SpringBoot配置文件 属性配置 YAML格式 YAML读取 多环境配置 配置文件级别 SpringBoot整合junit
  • 20230822 Windows上使用find_package引入OpenCV报错

    报错信息 打开Cmake项目时 find package 报错 Found OpenCV Windows Pack but it has no binaries compatible with your configuration You
  • chipsel语言_未来发行版中可能删除的功能

    未来发行版中可能删除的功能 未来的 Oracle Solaris 软件发行版可能不支持以下功能 LP 打印服务 未来的 Oracle Solaris 发行版可能不包含 LP 打印服务 SPARC 对传统系统的支持 未来的 Oracle So
  • 【华为 OD】

    目录 一 题目描述 二 输入描述 三 输出描述 用例 四 题目解析 五 Java玩法 六 JavaScript玩法 一 题目描述 给定一组数字 表示扑克牌的牌面数字 忽略扑克牌的花色 请按如下规则对这一组扑克牌 进行整理 步骤 1 对扑克牌
  • 备份技术

    备份技术 备份技术是灾难恢复技术的一个基础 没有使用备份技术进行全面 及时以及准确的备份 就无法进行灾难恢复 1 备份策略 备份策略的制定是备份系统的一个重要部分 备份策略的选择依赖于数据的重要性 允许备份的可用时间以及其他的一些因素 一般
  • 序列化与反序列化(1)Serializable —— Java原生态方法

    摘自 序列化与反序列化 1 Serializable Java原生态方法 作者 丶PURSUING 发布时间 2021 05 08 19 20 21 网址 https blog csdn net weixin 44742824 articl
  • windows11安装docker时,修改默认安装到C盘

    1 修改默认安装到C盘 2 如果之前安装过docker 请删除如下目录 C Program Files Docker 3 在D盘新建目录 D Program Files Docker 4 win r 以管理员权限运行cmd 5 在cmd中执
  • MySQL权限详解

    本文为joshua317原创文章 转载请注明 转载自joshua317博客 https www joshua317 com article 55 MySQL提供了哪些权限 MySQL提供的权限列表如图所示 其中 All或者Allprivil
  • 一步一步学区块链(1)概念了解

    区块链是分布式数据存储 点对点传输 共识机制 加密算法等计算机技术的 新型应用模式 所谓共识机制是区块链系统中实现不同节点之间建立信任 获取权益的数学算法 含义 比特币 BitCoin 的概念最初由中本聪在2009年提出 根据中本聪的思路设
  • PageHelper中的RowBounds

    RowBounds是处理ResultSet结果集进行分页 也就是说是mybatis默认实现是逻辑分页 并不是物理分页 但PageHelper将这个类利用起来进行了物理分页 PageHelper的其中一种使用方式就是将RowBounds参数获
  • DRM驱动代码分析:色彩管理

    高通PQ有哪些子模块 DSPP sub blocks SDE DSPP IGC DSPP Inverse gamma correction block SDE DSPP PCC Panel color correction block SD
  • Linux Ubuntu安装多个cuda版本

    因为pytorch版本与cuda版本有一定的对应要求 服务器上的cuda是不能自己随便动的 所以需要在自己账户中安装其他版本的cuda 而不能影响其他账户中已安装的cuda 这里参考了多篇博文总结出以下要点 1 nvcc和nvidia sm
  • 攻防世界 shrine 详解

    打开题目 整理源码 代码审计 目标 config FLAG 过滤了 config self 这两个函数的过滤没看懂 总之好像也没过滤掉 应该是过滤了后面的变量 圆括号是彻底的被过滤掉了 URL编码都没用 刚开始想测试XSS来着 做完后 拿编