古剑山misc01与02详解

蓝书包

下载附件有182个加密压缩包 ,开始没有思路挑一两个尝试爆破看看

这样密码就有点明了了,压缩包的命名为1.zip到182.zip,密码10001到10182正好对应每一个压缩包,写脚本批量解压

import zipfile
import os def extract_zip(zip_file, password, output_dir):
"""解压zip文件"""
try:
with zipfile.ZipFile(zip_file, 'r') as zip_ref:
zip_ref.setpassword(password.encode())
zip_ref.extractall(output_dir)
print(f"解压 {zip_file} 成功")
except Exception as e:
print(f"解压 {zip_file} 失败: {e}") def batch_extract(directory):
"""批量解压指定目录下的所有文件"""
for i in range(1, 183): # 1.zip 到 182.zip
zip_filename = f"{i}.zip"
zip_file_path = os.path.join(directory, zip_filename)
password = str(10000 + i) # 密码从10001到10182 if os.path.exists(zip_file_path): # 确保压缩包存在
extract_zip(zip_file_path, password, directory)
else:
print(f"压缩包 {zip_filename} 不存在") if __name__ == "__main__":
directory = input("请输入文件夹路径: ")
batch_extract(directory)

010打开发现第一个文件头是png的,我们加一下文件后缀(其实无所谓方便观察)

import os

def add_png_extension(directory):
"""将文件夹中所有文件名加上 .png 后缀"""
for filename in os.listdir(directory):
# 获取文件的完整路径
file_path = os.path.join(directory, filename) # 检查是否为文件而非文件夹
if os.path.isfile(file_path):
# 获取文件名和扩展名
name, ext = os.path.splitext(filename) # 新的文件名,加上 .png 后缀
new_filename = name + '.png' # 构建新的文件路径
new_file_path = os.path.join(directory, new_filename) # 重命名文件
os.rename(file_path, new_file_path)
print(f"文件 {filename} 已重命名为 {new_filename}") if __name__ == "__main__":
directory = input("请输入文件夹路径: ")
add_png_extension(directory)

只有文件头的第一张图片用windows自带图片查看打开,发现只有一小部分

在182最后一个文件发现png文件结尾

然后我们需要读取文件夹所有文件的16进制并拼起来保存为一个文件

import os

def read_file_as_hex(file_path):
"""读取文件并返回其16进制内容"""
try:
with open(file_path, 'rb') as f:
file_content = f.read()
hex_content = file_content.hex() # 转换为16进制字符串
return hex_content
except Exception as e:
print(f"无法读取文件 {file_path}:{e}")
return "" def combine_hex_files(directory, output_file):
"""将文件夹中所有文件的16进制内容拼接并保存为一个新文件"""
with open(output_file, 'w') as output:
for filename in os.listdir(directory):
file_path = os.path.join(directory, filename) if os.path.isfile(file_path): # 只处理文件,忽略文件夹
hex_content = read_file_as_hex(file_path)
if hex_content: # 如果读取成功
output.write(hex_content + "\n") # 拼接16进制内容,并换行 print(f"所有文件的16进制内容已保存到 {output_file}") if __name__ == "__main__":
directory = input("请输入文件夹路径: ")
output_file = input("请输入输出文件路径(例如output.txt): ")
combine_hex_files(directory, output_file)

新建一个空png,将数据写进去

import os

def hex_to_bytes(hex_string):
"""将16进制字符串转换为字节"""
try:
# 每对16进制字符转换为1个字节
return bytes.fromhex(hex_string)
except ValueError as e:
print(f"无效的16进制数据: {e}")
return None def save_hex_as_file(hex_file_path, output_file_path):
"""从包含16进制数据的文件恢复文件"""
try:
with open(hex_file_path, 'r') as hex_file:
# 读取文件内容,假设每行是一个16进制字符串
hex_data = hex_file.read().replace('\n', '') # 移除换行符 # 将16进制数据转换为字节
file_data = hex_to_bytes(hex_data)
if file_data is not None:
with open(output_file_path, 'wb') as output_file:
output_file.write(file_data)
print(f"文件已恢复并保存为: {output_file_path}")
else:
print("转换失败,无法保存文件。")
except Exception as e:
print(f"发生错误: {e}") if __name__ == "__main__":
hex_file_path = input("请输入包含16进制数据的文件路径: ")
output_file_path = input("请输入恢复后的文件保存路径: ")
save_hex_as_file(hex_file_path, output_file_path)

得到

最后puzzlesolver解密得flag

jpg

随波逐流检测一下

存在隐藏文件,使用binwalk分离

三个加密文件

用伪加密可以分离出pdf,且只有pdf是伪加密的

wps和浏览器打开pdf都没有任何线索,也不是pdf隐写,查看文件exif信息,发现使用过ps

用ps打开

在download图层看到二维码

用qr扫出信息

67f480eff11781617044bd47fb9535cfb0e4b6a09e51daff2107c536e9d4eebb3d517cfea6e3f176d4e0d37a9f3658845f3d1917cfce30a4f44ffa2e0af58485

回到压缩包,发现文件使用store储存,猜测本题使用明文攻击

新建一个sha512.txt,将内容复制进去

注意原文件压缩格式

使用7z标准压缩sha512.txt

最后使用aapr进行明文爆破

爆破成功

获得flag

古剑山misc01与02详解的更多相关文章

  1. spring原理案例-基本项目搭建 02 spring jar包详解 spring jar包的用途

    Spring4 Jar包详解 SpringJava Spring AOP: Spring的面向切面编程,提供AOP(面向切面编程)的实现 Spring Aspects: Spring提供的对Aspec ...

  2. Spark详解(02) - Spark概述

    Spark详解(02) - Spark概述 什么是Spark Hadoop主要解决,海量数据的存储和海量数据的分析计算. Spark是一种基于内存的快速.通用.可扩展的大数据分析计算引擎. Hadoo ...

  3. kafka详解(02) - kafka_2.11-2.4.1安装部署

    kafka详解(02) - kafka_2.11-2.4.1安装部署 环境准备 下载安装包 官网下载地址:https://kafka.apache.org/downloads.html 2.4.1版本 ...

  4. HBase详解(02) - HBase-2.0.5安装

    HBase详解(02) - HBase-2.0.5安装 HBase安装环境准备 Zookeeper安装 Zookeeper安装参考<Zookeeper详解(02) - zookeeper安装部署 ...

  5. Hive详解(02) - Hive 3.1.2安装

    Hive详解(02) - Hive 3.1.2安装 安装准备 Hive下载地址 Hive官网地址:http://hive.apache.org/ 官方文档查看地址:https://cwiki.apac ...

  6. Zookeeper详解(02) - zookeeper安装部署-单机模式-集群模式

    Zookeeper详解(02) - zookeeper安装部署-单机模式-集群模式 安装包下载 官网首页:https://zookeeper.apache.org/ 历史版本下载地址:http://a ...

  7. Hadoop详解(02)Hadoop集群运行环境搭建

    Hadoop详解(02)Hadoop集群运行环境搭建 虚拟机环境准备 虚拟机节点数:3台 操作系统版本:CentOS-7.6-x86-1810 虚拟机 内存4G,硬盘99G IP地址分配 192.16 ...

  8. maven实战(02)_坐标详解

    (一)  何为mave坐标 maven的世界中拥有数量非常巨大的构件,也就是平时用的一些jar,war等文件. maven定义了这样一组规则: 世界上任何一个构件都可以使用Maven坐标唯一标志,ma ...

  9. adb调试命令详解-2016.02.01

    adb(Android Debug Bridge),调试桥可以让设备的调试监测过程在远端进行,而不必在运行实际运行应用的设备上,方便调试的输出. 1 命令详解 a 查看帮助信息         adb ...

  10. 02.PHP7.x编译详解

    #php7编译安装安装 ``` useradd -M -s /sbin/nologin www yum -y install openssl-devel bzip2-devel curl-devel ...

随机推荐

  1. clickhouse--表引擎

    表引擎 表引擎(即表的类型)决定了: 1)数据的存储方式和位置,写到哪里以及从哪里读取数据 2)支持哪些查询以及如何支持. 3)并发数据访问. 4)索引的使用(如果存在). 5)是否可以执行多线程请求 ...

  2. ABAQUS-循环对称条件的详解

    概括 anlysis of model that exhibit cyclic symmetry 循环对称分析技术用于Standard求解器. makes it possible to analyze ...

  3. python 更新pip镜像源

    前言 默认情况下 pip 使用的是国外的镜像,在下载的时候速度非常慢,下载速度是几kb或者几十kb,花费的时间比较长. 解决办法 国内目前有些机构或者公司整理了对应的镜像源,使得通过内网就能访问即可, ...

  4. elementui|dropdown|下拉菜单作为模态框使用

    elementui|dropdown|下拉菜单作为模态框使用 背景 场景:下拉菜单作为模态框使用: 操作:下拉菜单设置触发条件点击展示/隐藏:trigger="click" 目的: ...

  5. win10/11 禁用移动热点,无法启用

    将网络重制即可

  6. RabbitMQ 延迟任务(限时订单) 思路

    一.场景 我们经常会碰见,一个需求就是,发送一条指令(消息),延迟一段时间执行,比如说常见的淘宝当下了一个订单后,订单支付时间为半个小时,如果半个小时没有支付,则关闭该订单.当然实现的方式有几种,今天 ...

  7. BUUCTF---signin

    题目 welcome to crypto world!! 密文:424a447b57653163306d655f74345f424a444354467d 解题 啥也没有只有一段密文,只能从密文下手了, ...

  8. HackTheBox-Linux-Brainfuck

    brainfuck 一.攻击流程: 使用nmap进行探测开放端口和服务. sudo nmap --min-rate=1000 -sT -sC -sV [target] 通过上图可以看出,有22端口的s ...

  9. Web前端入门第 26 问:CSS 浏览器兼容性怎么查?

    学编码之前,当先学排查问题的能力. 在那个 IE 浏览器 当道的时代,前端开发简直就是刀耕火种一般,一个简单的圆角模块,嘿...不好意思,它不支持,用图片吧. 但凡经历过 IE 的洗礼,就会知道当时哪 ...

  10. LangPipe大语言模型Pipeline应用框架案例介绍

    LangPipe介绍 LangPipe是一个轻量级的大模型工作流应用框架LangPipe,可以轻松解决下面各种问题: text generation(文本生成) chat with LLM(与LLM对 ...