当前位置: 首页 > article >正文

buuctf_练[CSCCTF 2019 Qual]FlaskLight

[CSCCTF 2019 Qual]FlaskLight

文章目录

      • [CSCCTF 2019 Qual]FlaskLight
      • 掌握知识
      • 解题思路
      • 关键paylaod

掌握知识

内置函数的过滤,globals变量的过滤,调用内部变量或函数的OS函数进行命令执行

解题思路

  1. 打开题目链接,很明显看标题和内容是flask模块的ssti模板注入了,查看源码,发现了传参的参数和请求方法

image-20231014201036292

image-20231014201039320

  1. 先测试一下{{7*7}},正常返回49,证明存在ssti模板注入

image-20231014201107786

  1. 直接使用内置函数url_for调用其内部的OS函数来进行命令执行,但发现页面报错500,看来多半是有过滤了,直接执行url_for也报错,证明过滤了url_for,测试config成功返回内容

image-20231014201223373

image-20231014201228659

  1. 尝试调用config的内部OS命令,但依旧报错,还有过滤,再次测试发现是globals被过滤了

image-20231014201333782

image-20231014201347917

image-20231014201405747

  1. 使用命令拼接,将globals分成两半拼接一起就能绕过过滤了['__glo'+'bals__'],只不过必须使用[]的字典键值访问的形式,不能用.的形式了

image-20231014201549802

  1. 查看根目录发现了flag文件,但是cat返回为空,以为命令被过滤了,后面才察觉原来是个目录,cd到文件下,查看到了flagapp.py源码,拿下flag

image-20231014201706314

image-20231014201709024

image-20231014201713025

关键paylaod

{{config.__class__.__init__['__glo'+'bals__']['os'].popen('ls').read()}}

http://www.kler.cn/a/106627.html

相关文章:

  • 2、开发工具和环境搭建
  • vue3:computed
  • 服务器上安装Orcale数据库以及PL SQL工具(中文)
  • 122、java的LambdaQueryWapper的条件拼接实现数据sql中and (column1 =1 or column1 is null)
  • 认证鉴权框架SpringSecurity-1--概念和原理篇
  • 人力资源招聘系统的革新之路:从传统到智能的转变
  • Kubernetes技术与架构-存储 2
  • Kafka - 消息队列的两种模式
  • gitlab 通过变量连接自建K8S
  • 鸿鹄工程项目管理系统 Spring Cloud+Spring Boot+Mybatis+Vue+ElementUI+前后端分离构建工程项目管理系统项目背景
  • 计算机网络重点概念整理-第六章 应用层【期末复习|考研复习】
  • 【鸿蒙软件开发】ArkTS通用事件
  • Mac-postman存储文件目录
  • vue的双向绑定的原理,和angular的对比
  • 计算机毕业设计 基于SpringBoot高校竞赛管理系统的设计与实现 Javaweb项目 Java实战项目 前后端分离 文档报告 代码讲解 安装调试
  • 【C++进阶】set和map的基本使用(灰常详细)
  • Chapter1:C++概述
  • 三代自动驾驶系统及主流科技公司自动驾驶技术方案简介
  • 在Mac上安装MongoDB 5.0
  • 如何构造强一致性系统?理解数据一致性里的2PC和TCC模式原理,以及如何做(有图)
  • LeetCode 面试题 16.03. 交点
  • clang-前端插件-给各种无花括号的“块”加花括号-基于llvm15--clang-plugin-add-brace
  • STM32:TTL串口调试
  • 计算机操作系统重点概念整理-第二章 进程管理【期末复习|考研复习】
  • 【ModbusTCP协议】
  • Spring Authorization Server 1.1 扩展实现 OAuth2 密码模式与 Spring Cloud 的整合实战