刷题记录:[DDCTF 2019]homebrew event loop
2024-10-20 09:32:57
刷题记录:[DDCTF 2019]homebrew event loop
题目复现链接:https://buuoj.cn/challenges
参考链接:DDCTF2019-WRITEUP
知识点
1、逻辑漏洞
def trigger_event(event):
session['log'].append(event)
if len(session['log']) > 5:
session['log'] = session['log'][-5:]
if type(event) == type([]):
request.event_queue += event
else:
request.event_queue.append(event)
首先路由异步处理请求,使用了一个队列
def buy_handler(args):
num_items = int(args[0])
if num_items <= 0:
return 'invalid number({}) of diamonds to buy<br />'.format(args[0])
session['num_items'] += num_items
trigger_event(['func:consume_point;{}'.format(num_items), 'action:view;index'])
主要的问题是这里的购买函数是改变余额再判断是否合法,也就是说在调用buy_handler时同时传入get_flag,处理队列中的顺序就是余额+n -> get_flag -> 判断不合法
,这时我们已经成功把flag写进session了。
2、flask session解密
总结
购买类的题很有可能是逻辑漏洞或者溢出
最新文章
- 第12章 Linux系统管理
- Python入门练习
- AI (Adobe Illustrator)详细用法(四)
- 《DSP using MATLAB》示例Example5.1
- realloc,c语言
- 微信小程序的网络设置,及网络请求:wx.request(OBJECT)
- SSH三大框架的整合
- Java基础学习笔记十一 Eclipse开发工具
- [物理学与PDEs]第2章习题5 正应力的平均值
- web 分享到facebook
- node,npm,vue的全局升级
- zabbix监控URL
- Python_configparser模块
- poj 1256 按一定顺序输出全排列(next_permutation)
- vue+axios实现移动端图片上传
- 【大数据系列】windows搭建hadoop开发环境
- unity5 Orthographic模式相机视截体尺寸计算
- HNOI2004 宠物收养所 (Treap)
- Matlab变量、分支语句和循环语句
- CentOS 6.9使用iptables搭建网关服务器(转)