每日一练:攻防世界:5-1 MulTzor

news2024/11/25 16:32:14

一、XorTool

基于 XOR(异或)运算实现。它可以帮助您快速地对文本、二进制文件进行加密解密操作。

认识XorTool工具:

让我们先去认识一下工具:

xortool.py 是基于 python 的脚本,用于完成一些 xor 分析,包括:

猜想 key 的长度

猜想 key 的值

解密一些经过 xoe 加密的文件

也就是说当遇到不知道文件类型的文件,可以尝试去看看它是否被xoe加密了吗?

安装:

sudo pip install docopt cd /data/src git clone https://github.com/hellman/xortools.git cd xortool sudo python setup.py install (PS:安装不了一点,我老是报错) 直接pip3 install xortool

使用:

加密命令

python xortool-xor.py -f ./text/cmd.exe -s "secret_key" -n -o binary_xored_cmd

-f表示待加密的原文件,-s是密钥,-o是输出文件

注意,必须加上-n保证加密内容就是原本文件,不然会把原本文件加个-n再加密,这样解密出来的文件会多个\n。我不清楚作者为什么这么设计,但还是保留了下来。

输出文件用-o来指定,不要用作者的>重定向来保存,这是win版最大的区别。

上述代码是加密二进制文件的示例,还可以加密字符串,具体的看xortool-xor.py的帮助说明

解密命令:

python xortool.py binary_xored_cmd -l 10 -c 00 xortool -c 20 cipher

其中-l就是指定密钥长度,-c表示出现频率最高的字符。这个需要根据经验,比如文本内容一般是空格(20),二进制文件一般是00

例题:攻防世界:5-1

在刷攻防遇到的题MulTzor:WP中需要使用到xortools这个解密工具。

了解后,先分析一道简单的题:攻防世界:5-1(PS:哦其实也不简单,)

将文件放到vscode中怀疑是二进制文件,所以用xortool工具试一试?

xortool -c 20 cipher

cipher就是要解密的文件

这里拿到key:GoodLuckToYou

之后对原文件异或:用python2跑

key = 'GoodLuckToYou' flag = '' with open('cipher') as f: con = f.read() for i in range(len(con)): flag += chr(ord(con[i]) ^ ord(key[i%13])) f = open('flag.txt', 'w') f.write(flag) f.close()

拿到flag

例题:攻防世界:MulTzor

(PS:看了WP才知道题目错了,最后面少了个2)

我的分析:

一眼十六进制数据。尝试16进制转文件。打开后就不知道怎么做了

16进制转文件脚本:

hex_data = "48656c6c6f20576f726c64" # 这是填十六进制表示 bytes_data = bytes.fromhex(hex_data) # 将十六进制数据转换为字节对象 with open('output.bin', 'wb') as f: # 以二进制写入模式打开文件 f.write(bytes_data) # 写入字节数据

WP:

16进制转文件后用到的是XorTool解密

xortool -c 20 cipher

(那这个不是文本文件啊,应该是二进制文件,为什么不是 -c 00)

解密后查看,有个flag,结果是假的

文章中很明显每隔四个正确的字符就有一个错误的字符。但是它怎么推测出密钥的第一位是错误的?

T-e fla" is: DCTF{udcea3q5ba46s80b0bv23d8a}10643 9}

密钥:w3\xffSY\x8b

之后的思路就是异或。T-e本来为The 现在密钥的第一位w是错的,-和w异或拿到Z。再将Z和h异或拿到正确密钥2

正确密钥:23\xffSY\x8b

后面就卡住了不知道哪里出了问题,这个题到此为止吧。

学到一个新思路:文本文件、二进制文件、词频统计就想到XorTool工具

参考文章:

[CTF] 攻防世界MISC高手区部分题目WriteUp_ctfer2333-CSDN博客

攻防世界 MISC - MulTzor_攻防世界 multzor-CSDN博客

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

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

相关文章

持久化、主从 、分片、哨兵

目录 持久化 RDB(存数据) 使用场景 bgsave 使用方法 原理 AOF(存命令) 使用方法 原理 bgrewriteaof AOF和RDB 主从集群 搭建 数据同步原理(slave宕机) 全量同步 增量同步 集群优化 总结 哨兵机制&…

JAVA学习过程中遇到的问题

前言 记录学习过程中遇见的各种问题。希望对你有帮助。 目录 前言 1、新建maven项目时,archetype项目骨架加载慢 2、maven的pop.xml添加依赖项无法检测到 3、java: 无效的目标发行版: 20 4、idea添加maven依赖太慢 5、CTRLCV复制粘贴太慢 6、Swagger写接口文…

手持弹幕LED滚动字幕屏夜店表白手灯接机微信抖音小程序开源版开发

手持弹幕LED滚动字幕屏夜店表白手灯接机微信抖音小程序开源版开发 专业版 插件版 手持弹幕小程序通常提供多种功能,以便用户在不同的场合如夜店、表白、接机等使用。以下是一些常见的功能列表: 文本输入: 输入要显示的文字内容,…

Android招聘市场技术要求越来越高,从事三年开发是否应该考虑转行?

UI这块知识是现今使用者最多的。当年火爆一时的Android入门培训,学会这小块知识就能随便找到不错的工作了。 不过很显然现在远远不够了,拒绝无休止的CV,亲自去项目实战,读源码,研究原理吧! 《Framework精编…

HeidiSQL导入与导出数据

HeidiSQL两种导入与导出数据的方法:整个库复制,和仅复制数据 一 整个库复制 1 选中需要导出的数据库(这里是MyDBdata),点击导出为SQL脚本。 2 按照如图进行选择 3 选做:删除当前数据库【如果有】 -- 删除数据库 USE mysql; D…

Linux-cp命令实现-系统调用和函数区别-文件截断-文件空洞

1、实现CP命令 vimdiff file1 file2 vimdiff是Vim编辑器的一个功能,主要用于比较两个或多个文件之间的差异,并在一个Vim窗口中显示这些差异。这个功能特别适合用于比较修改前后的文件,或者比较两个不同版本的文件。 注意:用…

SD卡无法读取:原因解析与数据恢复策略

一、SD卡无法读取的尴尬场景 在数字化日益普及的今天,SD卡作为便携式存储设备,广泛应用于各类电子设备中。然而,当您急需访问SD卡中的数据时,却发现设备无法读取SD卡,这无疑是一个令人沮丧的场景。SD卡无法读取可能表…

【已解决】在IDEA中使用Git拉取代码时提示:Can‘t update / master has no tracked branch

文章目录 问题描述原因分析解决方案 问题描述 在IDEA中使用Git拉取代码,尝试更新本地项目代码,提示 " Cant update / master has no tracked branch ",如下图所示: 原因分析 出现上述问题意味着本地名为master的分支&…

Google Earth Engine(GEE)——ui.DateSlider时间进度条的设置

结果 函数: ui.DateSlider(start, end, value, period, <

排序不等式——AcWing 913. 排队打水

排序不等式 定义 这主要涉及到利用 C 的排序操作对数据进行排序后&#xff0c;基于排序结果进行一些分析和处理。 运用情况 对一组数据进行排序后&#xff0c;根据排序后的顺序来解决一些与顺序相关的问题&#xff0c;比如选取最大或最小的若干个元素。在一些需要按照特定顺…

前端项目结构介绍与Vue-cli(脚手架)环境搭建

传统的前端项目结构 一个项目中有许多html文件 每一个html文件都是相互独立的 如果需要在页面中导入一些外部依赖的组件(vue.js,elementUI),就需要在每一个html文件中引用都导入,十分的麻烦 而且这些外部组件都需要在其官网中自行下载,也增加了导入的繁琐程度 当今的前端项…

NeRF从入门到放弃5: Neurad代码实现细节

Talk is cheap, show me the code。 CNN Decoder 如patch设置为32x32,patch_scale设置为3&#xff0c;则先在原图上采样96x96大小的像素块&#xff0c;然后每隔三个取一个像素&#xff0c;降采样成32x32的块。 用这32x32个像素render feature&#xff0c;再经过CNN反卷积预测…

【C语言】关于字符串函数的使用及模拟实现(1)

一、字符串追加 1.1 库函数srecat的使用 1.2 库函数strncat的使用 1.3 模拟实现库函数 strcat 及 strncat 由上可知&#xff0c;字符串追加的原理是找到所添加字符串的 \0 位置&#xff0c;再对其进行添加。 代码1、 代码2、 二、字符串查找 2.1 库函数strstr的使用 使用…

Android应用保活实践

} override fun onBind(intent: Intent): IBinder? { return mBilder } override fun onStartCommand(intent: Intent, flags: Int, startId: Int): Int { //播放无声音乐 if (mediaPlayer null) { mediaPlayer MediaPlayer.create(this, R.raw.novioce) //声音设置为0 me…

如何打造稳定、好用的 Android LayoutInspector?

速度极慢&#xff0c;遇到复杂的布局经常超时 某些情况无法选中指定的 View 本文将围绕 LayoutInspector 的痛点&#xff0c;分析问题并修复&#xff0c;最终将 LayoutInspector 变成一个稳定、好用的插件。 二、加速 Dump View Hierarchy 2.1 问题描述 开发复杂业务的同学…

JavaWeb——MySQL:DDL操作库

目录 1.DDL&#xff1a;查询数据库&#xff1b; 1.1 查询数据库 1.2 创建数据库 1.DDL&#xff1a;查询数据库&#xff1b; 具体操作&#xff1a;增 删 查 用 &#xff1b; 1.1 查询数据库 SQL语句&#xff1a;show databases; 由于我创建过一些数据库&#xff0c;我查询的…

windows无法启动redis-server

Warning: no config file specified, using the default config. In order to specify a config file use D:\Code_enve\Redis\redis-server.exe /path/to/redis.conf Creating Server TCP listening socket *:6379: bind: No such file or directory以上是问题的报错信息&…

做Android开发怎么才能不被淘汰?

多学一项技能&#xff0c;可能就会成为你升职加薪的利器。经常混迹于各复杂业务线的人&#xff0c;才能跳出重复工作、不断踩坑的怪圈。而一个成熟的码农在于技术过关后&#xff0c;更突出其他技能对专业技术的附加值。 毋须讳言的是&#xff0c;35岁以后你的一线coding能力一…

Tableau数据可视化与仪表盘搭建

Tableau的主要目的 数据赋能和数据探索。 数据赋能&#xff1a; 1.分析师可以将数据看板发布到线上给其他部门使用 2.自动更新看板 3.自由下载数据 4.线上修改图表 5.邮件发送数据 6.设置数据预警 数据探索&#xff1a; 1.支持亿级数据的连接和处理 2.自由地对字段进行各种…

【鸿蒙 HarmonyOS】尺寸设置:size/layoutWeight/constraintSize

一、背景 常见尺寸&#xff1a;width&#xff08;宽度&#xff09;、height&#xff08;高度&#xff09;、padding&#xff08;内边距&#xff09;、margin&#xff08;外边距&#xff09; 主要整理下size&#xff08;设置高宽尺寸&#xff09;、layoutWeight&#xff08;对…