news 2026/4/3 6:21:51

Flask任意文件读取+session伪造-NSSCTF-web4

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Flask任意文件读取+session伪造-NSSCTF-web4

1、打开环境,有个超链接readSomtthing,直接跳转到百度首页。

2、观察跳转URL,IP:PORT/read?url=https://baidu.com。结合提示,可能存在任意文件读取漏洞。

3、使用url= /proc/self/cmdline 读取当前进程对应的终端命令时,发现了app.py。审计代码:

# encoding:utf-8 import re, random, uuid, urllib from flask import Flask, session, request app = Flask(__name__) random.seed(uuid.getnode()) #用mac地址作为种子 app.config['SECRET_KEY'] = str(random.random() * 233) #根据上面的Mac地址,生成密钥。 app.debug = True @app.route('/') def index(): session['username'] = 'www-data' #当前用户 return 'Hello World! Read somethings' @app.route('/read') def read(): try: url = request.args.get('url') m = re.findall('^file.*', url, re.IGNORECASE) n = re.findall('flag', url, re.IGNORECASE) if m or n: return 'No Hack' res = urllib.urlopen(url) return res.read() except Exception as ex: print str(ex) return 'no response' @app.route('/flag') def flag(): if session and session['username'] == 'fuck': #需要让username = fuck,才会读取flag return open('/flag.txt').read() else: return 'Access denied' if __name__ == '__main__': app.run(debug=True, host="0.0.0.0")

可以确定,当前用户是www-data,路由为/。当用户为fuck,路由为/flag时,可以读取flag。由此,需要进行session伪造。

4、session伪造必须要知道scret_key,代码里给出了方法:

random.seed(uuid.getnode()) #用mac地址作为种子 app.config['SECRET_KEY'] = str(random.random() * 233) #根据上面的Mac地址,生成密钥。

根据url=/sys/class/net/eth0/address拿到mac地址:02:42:ac:02:16:63。开始生成scret_key(这里需要使用python2,因为这个题目的环境是2,生成密钥用3的话,长度会长一些,伪造结果不对):

import random random.seed(0x0242ac021663) #也可以转为十进制的2485376915043 print(str(random.random()*233))

结果:10.937048099。

5、拿到scret_key之后,尝试对当前的session解密,看看对不对:

用户:www-data,说明密钥是正确的,开始伪造fuck的session:

刚开始用单引号报错,后来使用双引号正常出来session。替换、刷新、才出现flag。

6、/read路由过滤了flag、file关键字,也可以考虑编码绕过直接读取flag。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/30 19:17:06

痛击面试官!CURD系统也能做出技术含量

引子很多朋友可能会因为自己做的工作不是特别核心或者业务简单而引起面试中没有自信。但是很多公司面试的时候是可以接受面试者之前岗位的并发量、交易量低一些的。比如我们要招聘和我们交易量同等级或者以上的出来的人才,业界本来就没有多少,但我们还是…

作者头像 李华
网站建设 2026/3/31 11:03:17

【稀缺技术曝光】:Dify分布式存储在视频帧提取中的极致优化

第一章:视频帧提取的 Dify 存储优化在高并发视频处理场景中,视频帧提取常面临存储效率与访问延迟的双重挑战。Dify 作为支持动态工作流编排的 AI 应用平台,其内置的存储机制可通过策略优化显著提升帧数据的读写性能。存储瓶颈分析 原始帧图像…

作者头像 李华
网站建设 2026/4/2 17:17:39

7、云与虚拟数据存储网络的指标测量与管理

云与虚拟数据存储网络的指标测量与管理 在云、虚拟和数据存储网络环境中,对信息资源进行测量、监控和管理至关重要。有效的指标和测量能够帮助我们实现灵活、可扩展、有弹性且具有成本效益的环境。 1. 指标测量的重要性 指标和测量在资源管理中起着关键作用。它们能展示当前…

作者头像 李华
网站建设 2026/4/1 16:34:09

11、服务器虚拟化:技术剖析与应用洞察

服务器虚拟化:技术剖析与应用洞察 1. 物理服务器与虚拟化趋势 物理服务器是虚拟机运行的基础。随着服务器和处理芯片技术的不断发展,新一代服务器在更小的空间内具备了更强的处理能力,单位计算操作的功耗也更低。然而,这也导致了整体电力和冷却需求的上升。对于一些企业来…

作者头像 李华
网站建设 2026/3/25 9:55:46

一旦发生就无法逆转!如何保护好孩子的视力

近视,已成为威胁我国儿童青少年健康的主要问题之一,其最令人担忧的特质在于:一旦发生,便无法逆转。随着学业压力的不断增大,孩子们的近距离用眼时间持续延长,视力健康防线正不断受到冲击。如何突破传统防控…

作者头像 李华
网站建设 2026/3/27 2:28:49

12、服务器与存储的网络连接:全面解析与应用指南

服务器与存储的网络连接:全面解析与应用指南 在当今数字化时代,数据的存储和处理变得至关重要,而服务器与存储之间的网络连接则是保障数据流畅传输和高效利用的关键。本文将深入探讨服务器与存储网络连接的各个方面,包括网络类型、面临的挑战、基础概念、相关设备以及不同…

作者头像 李华