buuctf_练[CSCCTF 2019 Qual]FlaskLight

[CSCCTF 2019 Qual]FlaskLight

文章目录

掌握知识

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

解题思路

  1. 打开题目链接,很明显看标题和内容是flask模块的ssti模板注入了,查看源码,发现了传参的参数和请求方法
  1. 先测试一下{``{7*7}},正常返回49,证明存在ssti模板注入
  1. 直接使用内置函数url_for调用其内部的OS函数来进行命令执行,但发现页面报错500,看来多半是有过滤了,直接执行url_for也报错,证明过滤了url_for,测试config成功返回内容
  1. 尝试调用config的内部OS命令,但依旧报错,还有过滤,再次测试发现是globals被过滤了
  1. 使用命令拼接,将globals分成两半拼接一起就能绕过过滤了['__glo'+'bals__'],只不过必须使用[]的字典键值访问的形式,不能用.的形式了
  1. 查看根目录发现了flag文件,但是cat返回为空,以为命令被过滤了,后面才察觉原来是个目录,cd到文件下,查看到了flagapp.py源码,拿下flag

关键paylaod

复制代码
{{config.__class__.__init__['__glo'+'bals__']['os'].popen('ls').read()}}
相关推荐
程序员爱钓鱼7 分钟前
Python编程实战 · 基础入门篇 | 第一个Python程序:Hello World
后端·python·编程语言
梓沂22 分钟前
旧电脑变废为宝:打造低成本网络打印机服务器全记录
服务器·网络·php
川石课堂软件测试1 小时前
CSS中常用的几种定位。
开发语言·css·python·网络协议·http·html·pytest
C.R.xing1 小时前
Pyspark分布式访问NebulaGraph图数据库
数据库·分布式·python·pyspark·nebulagraph
我是华为OD~HR~栗栗呀1 小时前
华为OD-21届考研-Java面经
java·前端·c++·python·华为od·华为·面试
隐匿7811 小时前
nacos网站
笔记
从零开始的ops生活1 小时前
【Day 77】Linux-iptables防火墙
开发语言·php
松果集1 小时前
【2】数据结构·序列构成的数组
python
nnerddboy1 小时前
QT(c++)开发自学笔记:2.TCP/IP
c++·笔记·qt
kali-Myon2 小时前
NewStarCTF2025-Week2-Web
web安全·sqlite·php·web·ctf·文件上传·文件包含