【刷题日记】青少年CTF-A2 Crypto(全)

news2024/11/20 8:25:08

Caesar

题目难度:★
题目描述:凯撒大帝在很早的时候发明了这个,你能解密出来吗?flag格式为:qsnctf{xxx}。

下载附件,题目提示告诉我们是凯撒了,一个简单的移位操作。

使用在线解码网站:凯撒密码在线加密解密

def decode_caesar_cipher(cipher):
    decoded_cipher = ""
    for char in cipher:
        if char.isalpha():
            shift = 5
            base = ord('a')
            if char.islower():
                decoded_cipher += chr((ord(char) - base - shift) % 26 + base)
            else:
                decoded_cipher += chr((ord(char) - base - shift) % 26 + base)
        else:
            decoded_cipher += char
    return decoded_cipher

cipher = "vxshyk{g9g9g099-hg33-4f60-90gk-ikff1f36953j}"
decoded_cipher = decode_caesar_cipher(cipher)
print(decoded_cipher)

flag

qsnctf{b9b9b099-cb33-4a60-90bf-dfaa1a36953e}

一组BASE

题目难度:★
题目描述:请用一组绿宝石和村民兑换一组BASE!flag格式为:qsnctf{xxx}。

下载解压文件,扫一眼,base家族就那几个,base16,base32,base64等等等符合这题的就只有base64。

使用在线脚本:Base64 编码/解码 - 在线工具 (toolhelper.cn)

当然,我们同样可以在kali中解base64.

import base64
s = 'cXNuY3RmezY4NjkwOGJjLTFiZjItNGMxOS04YTAxLWIyYzc3NjAwOTkyOH0='
sw = bytes(s,'utf-8')
st = base64.b64decode(sw)
print(st)

flag

qsnctf{686908bc-1bf2-4c19-8a01-b2c776009928}

Base大家族

题目难度:★
题目描述:BASE有一个大家族,flag格式为:qsnctf{xxx}。

下载附件一看,没有=,不可能是base32和base64了。

Base16编码使用16个ASCII可打印字符(数字0-9和字母A-F)对任意字节数据进行编码。Base16先获取输入字符串每个字节的二进制值(不足8比特在高位补0),然后将其串联进来,再按照4比特一组进行切分,将每组二进制数分别转换成十进制,在下述表格中找到对应的编码串接起来就是Base16编码。可以看到8比特数据按照4比特切分刚好是两组,所以Base16不可能用到填充符号“=”。

Base16 编码表

编码编码
0088
1199
2210A
3311B
4412C
5513D
6614E
7715F

使用在线网站解:Base16编码解码,Base16在线转换工具

在这里插入图片描述

得到一串字符,根据题目提示base大家族,这可能是一个base16 -> base32 ->base64。ok,思路有了,我们继续往下走。

Base32编码是使用32个可打印字符(字母A-Z和数字2-7)对任意字节数据进行编码的方案,编码后的字符串不用区分大小写并排除了容易混淆的字符

RFC 4648 Base32 字母表

符号符号符号符号
0A8I16Q24Y
1B9J17R25Z
2C10K18S262
3D11L19T273
4E12M20U284
5F13N21V295
6G14O22W306
7H15P23X317
填充=

在这里插入图片描述

出现了=号,很明显的base64特征。跟我们想的一样。

Base64编码是使用64个可打印ASCII字符(A-Z、a-z、0-9、+、/)将任意字节序列数据编码成ASCII字符串,另有“=”符号用作后缀用途。

Base64 索引表

数值字符数值字符数值字符数值字符
0A16Q32g48w
1B17R33h49x
2C18S34i50y
3D19T35j51z
4E20U36k520
5F21V37l531
6G22W38m542
7H23X39n553
8I24Y40o564
9J25Z41p575
10K26a42q586
11L27b43r597
12M28c44s608
13N29d45t619
14O30e46u62+
15P31f47v63/

在这里插入图片描述

得到flag。

flag

qsnctf{531e3c0e-aca4-4fe3-a818-e3ee3a887444}

Morse code

题目难度:★
题目描述:摩尔斯电码(Morse code)也被称作摩斯密码,是一种时通时断的信号代码,通过不同的排列顺序来表达不同的英文字母、数字和标点符号。它发明于1837年,是一种早期的数字化通信形式。不同于现代化的数字通讯,摩尔斯电码只使用零和一两种状态的二进制代码,它的代码包括五种:短促的点信号“・”,保持一定时间的长信号“—”,表示点和划之间的停顿、每个词之间中等的停顿,以及句子之间长的停顿。flag格式为:qsnctf{xxx}。

下载附件,题目告诉我们是摩斯密码了,我们只需要把中间一部分解出来就行。

在线网站:在线摩斯密码翻译器

# 摩斯电码解码映射
morse_code_dict = {
    ".-": "A", "-...": "B", "-.-.": "C", "-..": "D", ".": "E", "..-.": "F", "--.": "G",
    "....": "H", "..": "I", ".---": "J", "-.-": "K", ".-..": "L", "--": "M", "-.": "N",
    "---": "O", ".--.": "P", "--.-": "Q", ".-.": "R", "...": "S", "-": "T",
    "..-": "U", "...-": "V", ".--": "W", "-..-": "X", "-.--": "Y", "--..": "Z",

    "-----": "0", ".----": "1", "..---": "2", "...--": "3", "....-": "4",
    ".....": "5", "-....": "6", "--...": "7", "---..": "8", "----.": "9",

    ".-.-.-": ".", "---...": ":", "--..--": ",", "-.-.-.": ";", "..--..": "?",
    "-...-": "=", ".----.": "'", "-..-.": "/", "-.-.--": "!", "-....-": "-",
    "..--.-": "_", ".-..-.": '"', "-.--.": "(", "-.--.-": ")", "...-..-": "$",
    ".-...": "&", ".--.-.": "@", ".-.-.": "+",
}  # 摩斯密码字典

# 摩斯电码字符串
morse_code_str = ".----/-----/.-/----./...--/./-----/-.../-....-/....-/...--/...../...--/-....-/....-/---../....-/.-/-....-/----./..-./..---/--.../-....-/-.-./..-./-..../-..../-.-./--.../.-/---../-.../..---/...--/....."

# 将摩斯电码字符串分割为字符对
morse_code_chars = morse_code_str.split("/")

# 解码摩斯电码
decoded_str = ''.join(morse_code_dict[char] for char in morse_code_chars)

print(decoded_str)

flag

qsnctf{10A93E0B-4353-484A-9F27-CF66C7A8B235}

Bear

题目难度:★
题目描述:今天高高兴兴出门去,遇上一只熊。嗷呜呜!!出题人危险了。

下载附件,看到熊说话了?嗯?

不太懂,上网搜一下

简单的说,熊曰明显有别于传统火星文和佛曰的地方

具有智能的文本压缩处理能力(使用了哈夫曼算法)
针对部分汉字自动转换的场景进行了优化(繁体和简体变化不影响解密)
界面更为友好易用(支持移动端)

在线解码:与熊论道/熊曰加密

在这里插入图片描述

大家可以去搜索一下相关知识,说不定可以找到什么相关姿势(划掉),呸,知识!

flag

qsnctf{80038e81-5f67-4085-a70e-77a3fd74cf96}

百家姓

题目难度:★
题目描述:你知道百家姓是什么吗?flag格式为:qsnctf{xxx}。

下载附件,看一眼,ok不会解。上网搜在线解码器。

在线工具:百家姓加密解密在线工具

在这里插入图片描述

复制解出来的文本,去掉前面的ci力磁链。查看解出来的文本,十六进制(确信)!使用在线工具解

在线工具:[十六进制转文本-在线免费十六进制转文本工具-即时工具

全部复制进去解,诶居然解出来了。复制解出来的文本,看到flag

在这里插入图片描述

flag

qsnctf{e20491a9-97ad-404a-9f29-0810bd5c491e}

ASCII和凯撒的约定

题目难度:★★
题目描述:ASCII码和凯撒大帝有一个约定,你能得到FLAG吗?flag格式为:qsnctf{xxx}。MD5只取花括号中的UUID!

ok先别急着启动!先看一下题目,ASCII和凯撒。应该是ASCII转文本了,还有MD5值?先启动再说。

拿到一串字符,进行解码。(每个人拿到的不一样!)

在这里插入图片描述

这解一下就很清晰了啊,ASCII转文本,文本再进行凯撒解码,但是flag后三位被隐藏了,应该需要我们爆破出来。

凯撒解密

def decode_caesar_cipher(cipher):
    decoded_cipher = ""
    for char in cipher:
        if char.isalpha():
            shift = 1
            base = ord('a')
            if char.islower():
                decoded_cipher += chr((ord(char) - base - shift) % 26 + base)
            else:
                decoded_cipher += chr((ord(char) - base - shift) % 26 + base)
        else:
            decoded_cipher += char
    return decoded_cipher

cipher = "MSHN: xzujam{93j57850-i783-4726-il3h-07m8l68kk***} TK5:0k40691186mk5l49m5li024045l3jjk8"
decoded_cipher = decode_caesar_cipher(cipher)
print(decoded_cipher)

拿到转换后的值

flag: wytizl{93i57850-h783-4726-hk3g-07l8k68jj***} md5:0j40691186lj5k49l5kh024045k3iij8

再对flag的后三位进行爆破。

# coding: utf-8

import string
import hashlib

dic1 = string.digits + string.ascii_lowercase + string.ascii_uppercase
for i1 in dic1:
    for i2 in dic1:
        for i3 in dic1:
            t = '93c57850-b783-4726-be3a-07f8e68dd' + i1 + i2 + i3
            md5 = hashlib.md5(t.encode('utf-8')).hexdigest()
            # print t
            if md5[:32] == '0d40691186fd5e49f5eb024045e3ccd8':
                print(t)

得到最后三位cc3

flag

qsnctf{93c57850-b783-4726-be3a-07f8e68ddcc3}

ojbk的,这里也是成功的将A2-crypto成功解决了(所以这个A1,A2是啥意思)!👍👍👍

休息一下,继续我们的刷题!

作为CTF的新手,我非常渴望在这里向各位师傅请教,并期待得到您的宝贵指导。如果我有任何错误或需要改进的地方,请不吝赐教,我会虚心接受并努力改正。

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

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

相关文章

C语言基础语法跟练

题源&#xff1a;牛客网 1、输出"Hello Nowcoder!"。开始你的编程之旅吧。 #include <stdio.h>int main() {printf("Hello Nowcoder!");return 0; } 2、KiKi学会了printf在屏幕输出信息&#xff0c;他想输出一架小飞机。请帮他编写程序输出这架小…

react native中使用tailwind并配置自动补全

使用的第三方库是tailwind-react-native-classnames&#xff0c;同类的也有tailwind-rn&#xff0c;但是我更喜欢前者官方demo&#xff1a; import { View, Text } from react-native; import tw from twrnc;const MyComponent () > (<View style{twp-4 android:pt-2 b…

智能化配网故障定位技术:未来发展趋势与应用前景

在当今这个科技高速发展的时代&#xff0c;智能化技术已经渗透到了我们生活的方方面面。作为电力行业的重要组成部分&#xff0c;配电网的自动化和智能化水平也在不断提高。本文将重点介绍一种基于成熟的行波测距技术的智能化配网故障定位技术——配网行波型故障预警与定位系统…

iPhone语音备忘录怎么导出?这3种方法任你选择!

作为iPhone用户&#xff0c;我们应该会经常使用语音备忘录来记录一些重要的信息。有时候&#xff0c;我们可能需要将这些语音备忘录导出&#xff0c;以方便分享或备份。iphone语音备忘录怎么导出&#xff1f;今天&#xff0c;小编将为大家介绍3种导出iPhone语音备忘录的方法&am…

PyTorch: torch.nn 子模块及其在循环神经网络中的应用

目录 torch.nn子模块详解 nn.utils.rnn.PackedSequence 参数说明 注意事项 示例代码 nn.utils.rnn.pack_padded_sequence 参数说明 返回值 注意事项 示例代码 nn.utils.rnn.pad_packed_sequence 参数说明 返回值 注意事项 示例代码 nn.utils.rnn.pad_sequence …

FPGA之按键消抖

目录 1.原理 2.代码 2.1 key_filter.v 2.2 tb_key_filter.v 1.原理 按键分为自锁式按键和机械按键&#xff0c;图左边为自锁式按键 上图为RS触发器硬件消抖&#xff0c;当按键的个数比较多时常常使用软件消抖。硬件消抖会使用额外的器件占用电路板上的空间。 思路就是使用延…

XS5018B是一款针对 CMOS 图像传感器的高性价比图像信号处理芯片

产品概述 XS5018B 是一款针对 CMOS 图像传感器的高性价比图像信号处理芯片&#xff0c;支持 1M/2M 像素 图像传感器&#xff0c;一组 10-bit DVP 输入接口&#xff0c; ISP 具备优异的 3D 降噪功能&#xff0c;标清模拟输出支持 960H &#xff0c; 高清模拟输出支…

NR cell配置带宽时,如何设置carrierBandwidth?

NR中带宽在38.101中有规定。 如上是FR1 38.101-1中与带宽设定有关的table&#xff0c;协议中根据SCS规定的传输带宽和可以配置的RB 数如上表&#xff0c;也就是说在实网下或者lab测试配置带宽时要根据上表内容去配置&#xff0c;举例如下。 如上图分别是几种带宽的配置参数&…

设备管理系统建设方案书

1.设备管理系统 1.1.系统概述 需求描述 建立设备信息库&#xff0c;对设备相关档案的登录、整理。通过建立完善的设备档案&#xff0c;将设备的各类原始信息进行信息化统一管理&#xff0c;使设备档案查询工作方便快捷&#xff0c;维修管理&#xff0c;针对维修计划、维修工单…

2024律师课程推荐:iCourt律师执行实务集训营(赠《执行实务大礼包》)

律师行业竞争激烈&#xff0c;想要突破困境&#xff0c;就一定要把握蓝海机遇&#xff0c;实现提早布局。 如今&#xff0c;还有哪些业务是尚未被“卷起来”的“蓝海业务”&#xff1f; 从数据来看&#xff0c;执行业务一定是其中之一。 在 Alpha 系统中&#xff0c;以“执行…

JAVA静态引擎企业网站源码带文档

JAVA静态引擎企业网站源码带文档 系统介绍&#xff1a; 1.网站后台采用主流的 SSM 框架 jsp JSTL&#xff0c;网站前台采用freemaker静态化模版引擎生成html5 2.因为是生成的html&#xff0c;无需重复读取数据库&#xff0c;所以访问速度快&#xff0c;轻便&#xff0c;对服务器…

Pytorch张量通过索引获取指定数据

import torch x torch.tensor([1,2,3])x Out[3]: tensor([1, 2, 3])x[0] # 索引操作&#xff1a;取单个数字 Out[4]: tensor(1)x[0:1] # 切片操作&#xff1a;可以保持维度不变 Out[5]: tensor([1])x[torch.tensor([True,False,True])] # 布尔值索引&#xff0c;通过条件筛…

程序员面试技巧:成为HR心动的程序猿

文章目录 程序员必备的面试技巧导语一、准备充分二、突出亮点三、展示解决问题的能力四、良好的沟通能力五、积极展示学习态度示例结语&#x1f636; 写在结尾 程序员必备的面试技巧 “程序员必备的面试技巧&#xff0c;就像是编写一段完美的代码一样重要。在面试战场上&#…

探索Shadowsocks-Android:保护你的网络隐私

探索Shadowsocks-Android&#xff1a;保护你的网络隐私 I. 引言 在数字时代&#xff0c;网络隐私和安全变得愈发重要。我们越来越依赖互联网&#xff0c;但同时也面临着各种网络限制和监控。在这个背景下&#xff0c;Shadowsocks-Android应用程序应运而生&#xff0c;为用户提…

2024PMP考试新考纲-【过程领域】近期典型真题和超详细解析

前面的文章&#xff0c;华研荟讲解了三十多道PMP新考纲下的【人员People领域】的近年真题&#xff0c;这篇文章开始为大家分享【过程Process领域】的新考纲下的真题&#xff0c;进一步帮助大家体会和理解新考纲下PMP的考试特点和如何应用知识来解题&#xff0c;并且举一反三&am…

基于ZU19EG的100G-UDP解决方案

概述 本文档介绍ZU19EG与Mellanox CX6 100G网卡通信解决方案。 环境配置 FPGA硬件&#xff1a;519-ZU19EG的4路100G光纤PCIe加上计算卡 电脑&#xff1a;国产国鑫主板&#xff08;双PCU&#xff09;&#xff1a;Gooxi G2DA-B CPU:Intel Xeon Silver 2.2GHz 内存&#xff1…

React入门 - 04(从编写一个简单的 TodoList 说起)

继上一节我们已经对 React组件和 ”JSX语法“有了大概的了解&#xff0c;这一节我们继续在 react-demo这个工程里编写代码。这一节我们来简单实现一个 TodoList来更加了解编写组件的一些细节。 1、在编辑器中打开 react-demo这个工程 2、打开 index.js文件&#xff0c;将组件 …

Mysql判断一个表中的数据是否在另一个表存在

方式一&#xff1a; 判断A表中有多少条数据在B表中【存在】,并且显示这些数据–EXISTS语句 select A.ID, A.NAME from 表A where EXISTS(select * from 表B where A.IDB.ID) 判断A表中有多少条数据在B表中【不存在】&#xff0c;并且显示这些数据–NOT EXISTS语句 select …

Zookeeper系列(一)集群搭建(非容器)

系列文章 Zookeeper系列&#xff08;一&#xff09;集群搭建&#xff08;非容器&#xff09; 目录 前言 下载 搭建 Data目录 Conf目录 集群复制和修改 启动 配置示例 测试 总结 前言 Zookeeper是一个开源的分布式协调服务&#xff0c;其设计目标是将那些复杂的且容易出错的分…

flex布局(3)

九、骰子 *{margin:0;padding: 0;box-sizing: border-box; } .flex{display: flex;flex-flow: row wrap;justify-content: space-between;align-items: center;align-content: space-between;padding:20px; } .touzi{width: 120px;height: 120px;background-color: aliceblue;…