[MRCTF2020]千层套路1

2023-11-16

BUU题目复现~~

开局一个压缩包,flag全靠懵~

拿到压缩包第一件事直接看能不能直接解压缩(很明显,有密码,不行!)

下一步,使用010Editor查看内部结构,发现确实操作着很多的“.zip”文件,但是我使用binwalk、foremost都没办法分离出什么花来 

没办法了,我直接使用“archive”去硬暴力破解一波(一般是4个数字)

居然真的可以,震惊我老半天~~

这就是脑洞的力量?

不过貌似这个压缩密码有点似曾相识啊!

回到正题了(认真脸)

这个压缩密码跟文件名一致,而且解压后的文件也是一个zip压缩包。

后续也有继续尝试使用“archive”去暴力破解后续的压缩包,发现压缩密码都是文件名!!

(本人曾经忽视题目,直接通过手工的方式去一个个打开压缩包,发现根本解不完,这实在是太多了啊!!!)

所以,只能使用脚本去帮我们工作了,不然真的会犯病的~(认真脸)

这里附上python脚本:

 

import zipfile
import os
path=r"C:\xxxx\attachment (4)\0573\0114\0653\0234\0976\0669\0540\0248\0275\0149\0028\0099\0894\0991\0414\0296\0241\0914" #这个自己把控想在哪里开始使用脚本
file="0140.zip"
def un_zip(Path,File_name): #传入一个路径和当前路径的压缩包名字,返回解压缩后的文件名字
        current_file=Path+os.sep+File_name #路径+'/'+文件名
        #new_path=''
        os.chdir(Path) #改变当前工作路径,方便添加文件夹
        
        zip_file=zipfile.ZipFile(current_file)
        #print(zip_file.namelist()[0])
        new_file=zip_file.namelist()[0] #新解压的压缩文件为新的路径名字
        
        #new_path=current_path + os.sep + new_file
        #os.mkdir(new_path) #新建一个以解压出来的压缩包为名字的文件夹

        #os.chdir(new_path)
        zip_file.extractall( path=Path, members=zip_file.namelist(), pwd=File_name[0:-4].encode() )#因为密码就是文件名
        zip_file.close()
        
        return new_file

new=file
new1=''
while (1):
        #new1=un_zip(path,new) #第一次解压出来了new1
        if(new ==''):  #判断是否解压完毕,是则直接退出
                print("end:"+new1)
                break

        else:   #否则就开始新的解压
                new1=un_zip(path,new)
                print("continue:"+new1)
                new=new1
                
        

最后解压缩出来一个“qr.txt”而且程序报错退出即可。

 下一步,查看这个“qr.txt”文件,发现是一个经典的二维码绘图

 还是直接使用python脚本跑出二维码

这里附上脚本:

from PIL  import Image
import os
os.chdir(r'C:\xxx\attachment (4)\0573\0114\0653\0234\0976\0669\0540\0248\0275\0149\0028\0099\0894\0991\0414\0296\0241\0914')
string=''

file=open('qr.txt')
MAX=200

picture=Image.new("RGB",(MAX,MAX))
for y in range(MAX):
    for x in range(MAX):
        string =file.readline()
        picture.putpixel([x,y],eval(string)) #直接使用eval()可以转为元组
picture.show()
    
    
    

直接运行上述脚本,会自动生成一个二维码展示

 大家可以直接扫描获取flag啦~

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

[MRCTF2020]千层套路1 的相关文章

  • 如何在 PyCharm 中设置运行配置的默认工作目录

    当我想运行众多 python 脚本之一时 我点击运行 这会创建一个新的运行配置 该配置的工作目录是 python 脚本文件所在的文件夹 相反 它应该从项目范围的固定文件夹运行 我想以某种方式进行设置 但我真的不明白为什么 这有点奇怪 因为我
  • django 管理站点导航侧边栏搞砸了

    我最近在我的项目中添加了一个包并做了一个pip freeze gt requirements txt然后 然后我做了pip install r requirements txt到我的本地 它添加了一个侧边栏 I did a pip inst
  • 使用 Tkinter 进行多线程 Python

    我用这些函数在画布上画小圆圈 这是绘制圆圈的函数 class Fourmis def init self can posx posy name radius self can can self largeur can int self ca
  • 属性错误:未找到下层;在 scikit-learn 中使用带有 CountVectorizer 的 Pipeline

    我有一个这样的语料库 X train this is an dummy example in reality this line is very long here is a last text in the training set 和一
  • CodingBat sum67:为什么这个解决方案是错误的?

    我正在解决以下codingbat问题 返回数组中数字的总和 但忽略以 6 开头并延伸到下一个 7 的数字部分 每个 6 后面至少有一个 7 如果没有数字则返回 0 sum67 1 2 2 5 sum67 1 2 2 6 99 99 7 5
  • 添加反斜杠而不转义[重复]

    这个问题在这里已经有答案了 我需要逃离 字符串中的 字符 问题是每当我string string replace 结果是 添加额外的反斜杠来转义原始反斜杠 如何删除这个多余的反斜杠 结果 仅显示 实际上字符串是 gt gt gt str g
  • 如何从字典列表中查找键的值?

    如何从字典列表中获取给定键的值 mylist powerpoint color blue client name Sport Parents Regrouped sort order ascending chart layout 1 cha
  • 定义Python字典时,如何使用给定字段的值来计算其他字段?

    考虑代码 a 2 b 3 mylist a a b b product a b 这会生成一个包含三个字段的字典 其中第三个字段是使用第一个和第二个字段的值计算的 我正在寻找更紧凑的定义mylist 我已经尝试过 1 mylist a 2 b
  • 在 Django 中上传文件

    我在 Django 1 6 版本 中上传文件时遇到问题 当我尝试做的时候new file data save 在我的views py 中我收到此错误 quiz patent 22 medical record 2 exams 处的属性错误
  • BeautifulSoup 抓取街道地址

    我正在使用最底部的代码来获取weblink 以及清真寺名称 不过我也想得到面值 and 街道地址 请帮助我被困住了 目前我得到以下信息 Weblink div class subtitleLink a href http www salat
  • 散景服务器获取鼠标位置

    我正在开发一个带有散景 0 12 2 的交互式应用程序 它根据特定的交互更新绘图 现在 我使用滑块来更改图中字形的位置 但实际上我想访问鼠标在特定图中的位置 数据集是一个多维矩阵 张量 密集数据 每个图在特定位置显示一个维度 如果我更改一个
  • 为什么 PySpark 中的 agg() 一次只能汇总 DataFrame 的一列? [复制]

    这个问题在这里已经有答案了 对于下面的数据框 df spark createDataFrame data Alice 4 300 Bob 7 677 schema name High 当我尝试找到最小值和最大值时 我只得到输出中的最小值 d
  • UTF-8 在 Python 日志记录中,如何?

    我正在尝试使用 Python 的日志记录包将 UTF 8 编码的字符串记录到文件中 作为一个玩具示例 import logging def logging test handler logging FileHandler home ted
  • 如何检查两个数据集的匹配列之间的相关性?

    如果我们有数据集 import pandas as pd a pd DataFrame A 34 12 78 84 26 B 54 87 35 25 82 C 56 78 0 14 13 D 0 23 72 56 14 E 78 12 31
  • 无法运行bjam编译boost python教程

    我正在尝试跟随本教程 http www boost org doc libs 1 55 0 libs python doc tutorial doc html python hello html关于为 Windows 的 python 包装
  • 解释 scipy.stats.entropy 值

    我正在尝试使用scipy stats 熵来估计库尔巴克 莱布勒 KL 两个分布之间的散度 更具体地说 我想使用 KL 作为衡量标准来确定两个分布的一致性 但是 我无法解释 KL 值 例如 t1 numpy random normal 2 5
  • 为什么 Python 布尔值占用超过一个字节?

    显然 Python 中整数占用 24 个字节 我可以理解 它这样做是因为代表无限数字的额外花哨 然而 布尔数据类型看起来也花费了高达 24 个字节 尽管它只能表示两个可能值之一 为什么 除了 1 位表示之外 还可能需要存储哪些额外数据Tru
  • 使用 PyQt5 拖放 QLabels

    我正在尝试使用 PyQt5 将 Qlabel 拖放到另一个 Qlabel 上 from PyQt5 QtWidgets import QApplication QWidget QToolTip QPushButton QMessageBox
  • 如何在 Windows 上为“flask run”设置环境变量?

    我刚刚开始学习 Flask 我一直停留在设置 Flask 环境变量上 我不知道如何设置环境变量 每当我使用flask run命令 我遇到以下错误 错误消息 无法找到 Flask 应用程序 您没有提供 FLASK APP 环境变量 并且在当前
  • Pandas:根据是否为 ​​NaN 来移动列

    我有一个像这样的数据框 phone number 1 clean phone number 2 clean phone number 3 clean NaN NaN 8546987 8316589 8751369 NaN 4569874 N

随机推荐

  • 【MATLAB第32期】【更新中】基于MATLAB的降维/全局敏感性分析/特征排序/数据处理分类问题MATLAB代码实现

    MATLAB第32期 更新中 基于MATLAB的降维 全局敏感性分析 特征排序 数据处理分类问题MATLAB代码实现 持续更新 本文敏感性分析主要分析分类问题 fisher rf arf nca等 版本更新 2023 8 2 增加基于拥挤距
  • JAVA 创建学生类

    1 题目 编写程序实现如下功能 已知学生类有域变量 学号 班号 姓名 性别 年龄 和方法 获得学号 获得班号 获得性别 获得年龄 修改年龄 显示基本信息 定义一组学生对象 并初始化他们的基本信息 然后依次输出 2 源代码 Student j
  • linux自动挂载NTFS格式移动硬盘

    转自 http blog 163 com cmh lj blog static 100812304201252522119264 由于移动硬盘还有不少的资料 刚插入移动硬盘的时候发现只能自动挂载FAT FAT32格式分区 按照以往的经验 安
  • Python学习-----模块5.0(文件管理大师-->os模块)

    目录 前言 1 os getcwd 2 os listdir path 3 os walk path 4 os path exists path 5 os mkdir path 6 os makedirs path exist ok Tru
  • URI和URL、URN的作用和区别

    前言 我们都知道URL是使用Web浏览器等访问Web页面时需要输入的网页地址 而对URI URN的认识可能很少 更有甚者会像我一样 把URI与URL搞混 还以为是一个东西的不同别名 其实URI是URL与URN的超集 URI包括URL和URN
  • htons()是什么

    一个数字0x12345678 左边是高字节 右边是低字节 存储到内存中有两种方式 小端法就是把低字节先存入 内存地址里从低到高就会变成 78 56 34 12 相反大端法就是把高字节先存入 内存地址里从低到高存入的数据旧变成了12 34 5
  • ASP连接Excel的方法

    在ASP中 可以将Excel作为一种轻量级数据库 用于存取数据 下面是一个使用ASP连接Excel的代码实例 首先创建excel数据链接 然后打开连接 在excel中名为 招聘 的表格中查询id 1的一条数据 并打印StuName列的数据
  • 操作系统笔记整理3——进程的描述与控制(2)

    点此链接可跳转到 操作系统笔记整理 目录索引页 参考书籍 计算机操作系统 第四版 汤小丹等编著 文章目录 点此链接可跳转到 操作系统笔记整理 目录索引页 线程的概念 线程的运行状态 多线程中的进程 线程的实现 内核支持线程KST 用户级线程
  • 在Surface Pro 4上安装Bliss OS

    安装Bliss OS 起因 为了让已经有点跑不动的苏婆4发挥余热 其实是想玩Arcaea 打算往上面安装安卓系统 之所以不使用模拟器 就是因为模拟器跑起来太慢了 而且像是mumu之类的模拟器还不支持多点触控 失败的尝试 凤凰系统 很漂亮 但
  • websocket中stompjs订阅消息队列消息,无法正常关闭socket带来的浏览器开销问题

    先说一下问题在公司的业务场景 前端页面作为消费者 监听的是rabbitmq中的一个交换机 由此来订阅消息 原生websocket因为无法更好实现监听和数据传输 所以采用stomp来更好创建socket 但是websocket经历一段时间会自
  • 项目启动卡在了Started Application in 10.266 seconds (JVM running for 13.033)

    好端端的项目启动后卡在这一行Started Application in 10 266 seconds JVM running for 13 033 日志中原本打印的执行的banner和程序都没有执行 访问那页面是404 很奇怪 因为啥东西
  • webpack 设置ttf 字体 不报错但是不生效

    webpack config js const path require path module exports entry src index js mode development output filename bundle js p
  • Gitee注册教程

    Gitee注册教程 目录 一 关于Gitee 二 注册Gitee 三 使用Gitee 一 关于Gitee Gitee也叫码云 是开源中国 OSChina 推出的基于Git的代码托管服务 Gitee包括三个版本 分别是 社区版 企业版和高校版
  • prometheus:(二)监控概述

    目录 一 监控系统概论 运维监控平台设计思路 二 prometheus基础资源监控 2 1网络监控 2 2存储监控 2 3服务器监控 2 4中间件监控 2 5应用程序监控 APM 三 常用监控系统介绍 3 1 Cacti 3 2 Nagio
  • tensorflow之Optimizers(tensorflow的优化器)

    一 概述 1 默认情况下 优化器训练目标函数所依赖的所有可训练变量 如果你不想训练某一个变量 你可以将关键词trainable设置为False 举例如下 global step tf Variable 0 trainable False d
  • 图像语义分割方法研究进展

    全监督学习的图像语义分割方法研究进展 简介 1 全监督学习的图像语义分割方法 1 1 基于全卷积的图像语义分割方法 1 2 基于编码器解码器结构的图像语义分割方法 1 3 基于注意力机制的图像语义分割方法 1 4 基于添加特殊模块的图像语义
  • nginx: configuration file /home/xx.local/etc/nginx/nginx.conf test failed

    nginx启动失败 输入 nginx t c HOME local etc nginx nginx conf nginx alert could not open error log file open var log nginx erro
  • 提升代码质量的几点建议

    在我从事编程工作的过程中 提升代码质量是一个极其重要且不可忽视的问题 在我看来 提升代码质量需要注意以下几点 1 遵守规范 包括变量命名规范 文件命名规范 方法命名规范等等 2 保持代码简洁 我们应该尽量避免冗余 复杂的代码 使用有意义的变
  • A - C语言实验——求一个3*3矩阵对角线元素之和

    Description 给定一个3 3的矩阵 请你求出对角线元素之和 Input 按照行优先顺序输入一个3 3矩阵 每个矩阵元素均为整数 Output 从左下角到右上角这条对角线上的元素之和 Sample Input 1 2 3 3 4 5
  • [MRCTF2020]千层套路1

    BUU题目复现 开局一个压缩包 flag全靠懵 拿到压缩包第一件事直接看能不能直接解压缩 很明显 有密码 不行 下一步 使用010Editor查看内部结构 发现确实操作着很多的 zip 文件 但是我使用binwalk foremost都没办