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

可以发现在searched后面输出了49,既然我们可以利用{{}},又有输出点,直接模板注入GOGOGO

python-flask模块注入(SSTI) - ctrl_TT豆 - 博客园因为不太熟,只能一步步来

''.__class__   //先随便查看一个字符所属的类是什么
''.__class__.__mro__   //返回类的基类是什么,找到object这个主类
因为返回的是元组类型的,我们可以用[n]来表示调用哪个类(这里假设object是第三个类)
''.__class__.__mro__[2].__subclasses__() 来查看所有可以引用的子类

我们知道执行命令的模块是os,那么哪个类里面能调用os模块呢,如果找到了,第几个呢,这个时候我们如果人工一个个去试的话那就很麻烦,利用脚本来查询 __init__.__globals__

import requests
import html
import timefor i in range(0,300):time.sleep(0.06)url='http://9a83c16c-d62a-4040-825b-2ffa4954c5ad.node4.buuoj.cn:81/?search={{\'\'.__class__.__mro__[2].__subclasses__()[%d].__init__["__glob"+"als__"]}}' %(i)r = requests.get(url)if "os" in html.unescape(r.text):print(i)

这里构造["__glob"+"als__"]这样的原因是我直接写__globals__会报错,怀疑后端把这个敏感字符给过滤掉了,因此我们需要绕过

可以看到标号这么多的类有os模块,我们随便利用一个就行,就用128吧

发现一个目录flasklight

其中一个是源码,一个是flag,我们可以看见源码确实过滤了globals

相信很多人和我一样都是用的system执行命令,但是没有任何回显

python中os.popen, os.system()区别 - ccorz - 博客园

Python中os.system和os.popen区别 - 純黑色 - 博客园

那是因为system调用完shell脚本后,它返回的不是调用脚本的结果,而是一个信号代码,他所出来的结果是在执行的系统上,因此我们如果要用system命令的话,我们反弹shell才能看见(我不会)

popen执行命令返回的是一个读取文件的对象,用read()函数读取就可以获得我们想要的命令结果

[CSCCTF 2019 Qual]FlaskLight SSTI注入相关推荐

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

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

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

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

  3. [CSCCTF 2019 Qual]FlaskLight——直取flag?

    [CSCCTF 2019 Qual]FlaskLight 前言 白天一直在上课,晚上赶快躲进图书馆里面打打靶场.这次的题目算是很简单的一道题目了,我做完之后还去看了看其他师傅写的博客,只能感叹一声太强 ...

  4. [CSCCTF 2019 Qual] FlaskLight

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

  5. BUUCTF:[CSCCTF 2019 Qual]FlaskLight

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

  6. [CSCCTF 2019 Qual]FlaskLight 记录

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

  7. flask jinja2 mysql_flask/jinja2 SSTI注入学习

    0x00 前言 服务端模板注入(SSTI)攻击,可以看看James Kettle写的这篇文章. flask出现模板注入原因主要还是因为使用了render_template_string函数 0x01 ...

  8. [强网杯 2019]随便注 —— 堆叠注入

                           [强网杯 2019]随便注 前言        个人观点,若有误请指教 解题思路及步骤 直接上'引号,结果直接报错了,证明存在sql注入漏洞. 判断当前表 ...

  9. Flask服务端模板(Jinja2) SSTI 注入漏洞

    漏洞简介 flask/ssti漏洞,即: Flask(Jinja2) 服务端模板注入漏洞(SSTI).Flask 是一个使用 Python 编写的轻量级 Web 应用框架,Flask 为你提供工具,库 ...

最新文章

  1. “间谍芯片”疑云:谁在撒谎?警示何在?
  2. 微信上传图片 41005 缺少多媒体文件
  3. tf.layers.Dense与 tf.layers.dense的区别
  4. 血压测量:很重要的事情!
  5. Qt中Ui名字空间以及setupUi函数的原理和实现
  6. 20220216-MISC-BUUCTF-另外一个世界-winhex,ASCII转换-FLAG- ZIP文件提取并修复-假如给我三天光明-ZIP改RAR,摩丝电码波形转换-神秘龙卷风brainfuck
  7. html css页脚代码,HTML CSS - 页脚 - 下面的空格
  8. 服务器一键建php网站,搭建服务器 - 我的lnmp一键安装报错 - php中文网博客
  9. 孪生网络Dataset
  10. read H264 Nal
  11. python对称加密算法库_对称加密算法
  12. 三、Python复习教程(重点)- 前端框架实战
  13. K8S集群中Pod资源处于CrashLoopBackOff状态排查思路
  14. python怎么隐藏输入法_打开和关闭输入法
  15. Chromium for mac(谷歌浏览器)V89.0.4336.0官方最新版
  16. 新加坡国立大学计算机系访学,高盛华课题组徐衍钰(博)2019年8月-2020年1月于新加坡国立大学交流访学...
  17. 我可以抱你吗?linux
  18. MYSQL天花板函数和地板函数_2020-08-04常用函数
  19. Excel VBA自动化办公:选择Excel文件合并订单数据生成订单汇总表、生成发货单并导出pdf文件、自动统计业绩生成业绩表
  20. 职场规划的行动路径是什么?

热门文章

  1. 【笔记】Seaborn和Pyecharts
  2. fpu测试_正点原子STM32F4/F7水星开发板资料连载第五十章 FPU 测试实验
  3. VTK:体绘制裁剪——Clipping技术
  4. 联想A800新蜂ROM刷机包 官方4.0.4优化 精简省电稳定 V1.2
  5. HTML 列表标签<ol><ul><dl>详解
  6. 直播系统源码的基础功能有哪些?
  7. Google账户设置
  8. 【设计模式】Java设计模式 - 享元模式
  9. 如何查看网页上已经保存的密码
  10. 六款好用的视频编辑软件推荐