BugKu_Crypto_(1)

BugKu_Crypto_(1)



前言

BugKu平台练习wp


提示:以下是本篇文章正文内容,下面案例可供参考

0X01 抄错的字符

示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。看题目提取有用信息:
(1)部分数字抄成了字母
(2)所有字母都换成大写
所以flag中包含了数字、大小写字母。
先把小明抄下来的话按照四个一组分,结果发现最后一组少了一个字母,这题一个是要解码,少了一个应该有问题,看起来像是base64,最后应该有个=

QWIH BLGZ ZXJS XZNV BZW

找出上面每一组可能写错的字母

I(i)=》1

B(b)=》6
L(l)=》1
G(g)=》9
Z(z)=》2

S(s)=》5

尝试对它们进行解码(只列出了解码成功的)

QWIH  base64解码为AB
QWIh  base64解码为Ab!
QW1h  base64解码为Ama
QwIH  base64解码为C
Bl92  base64解码为_v
bl92  base64解码为n_v
ZXJS  base64解码为erR
ZXJ5  base64解码为ery
X2NV  base64解码为_cU
X2Nv  base64解码为_co
XzNV  base64解码为_3U
XzNv  base64解码为_3o
bzw=  base64解码为o<
b2w=  base64解码为ol
b2W=  base64解码为oe

将上面每组的可能进行组合尝试提交flag总有一个是对的

flag{Aman_very_cool}
QW1h bl92 X2Nv b2w=
在这里插入图片描述
这个猜的方法太不稳定了,一旦有一种可能性漏掉都不能得到正确答案,后面我在网上找了一下,可以写代码执行(参考博客:https://blog.csdn.net/jnwlhh/article/details/120096464

import base64
s = "QWIHBLGZZXJSXZNVBZW="
dic = {'I': '1', 'B': '6', 'S':'5','G': '9','Z':'2'}
res = ''

def check(s):
    f = True
    s = str(s)
    for i in range(len(s)):
        if ((s[i] in list('_+=')) or s[i].isdigit() or s[i].isalpha()):
            continue
        else:
            f = False
            break
    return f


def strcon_decode(s,i):
    global res
    if(i==4):
        ss = ''.join(s)
        sss = base64.b64decode(ss)
        sss = str(sss)[2:-1]
        if check(sss):
            # print(ss+' decode: ' + sss)
            ss = res + sss
            res = ss
            return True
        else:
            return False
    else:
        if s[i] in dic.keys():
            ss = s[i]
            s[i] = dic[s[i]]
            f = strcon_decode(s,i+1)
            s[i] = ss
            if f:
                return True
        s[i] = s[i].lower()
        f = strcon_decode(s,i+1)
        s[i] = s[i].upper()
        if f:
            return f
        return strcon_decode(s,i+1)
        
        
for i in range((len(s)//4)):
    ss = s[i*4:(i+1)*4]
#     print(ss+' decode: ')
    ss = list(ss)
    strcon_decode(ss,0)

print(res)

dic这个字典变化得到最后的结果
例如:
在这里插入图片描述在这里插入图片描述

0X02 聪明的小羊

在这里插入图片描述从题目中提取关键信息:
(1)栅栏
(2)2个
那么就可能是一个栅栏密码进行解密,其中的key为2

在这里插入图片描述在这里插入图片描述

0X03 /.-

在这里插入图片描述
瞅一眼题,摩斯密码没错了
复制描述,解码去
在这里插入图片描述把得到的结果稍微微调一下就是最后的结果了
flag{d3fcbf17f9399504}

在这里插入图片描述

0X04 [±<>]

在这里插入图片描述看描述,只有[、+、-、<、>、]这几个组成,应该是brainfuck语言,尝试解密一下
解码网址:www.hiencode.com/brain.html
在这里插入图片描述在这里插入图片描述
小知识:
(参考博客:https://blog.csdn.net/nameofcsdn/article/details/110231730
Brainfuck语言(简称BF)是一种非常接近图灵机的编程语言
BF只有8种有效字符,其实就是8种指令:
在这里插入图片描述BF可以简单的翻译成C/C++语言:
在这里插入图片描述

0X05 ok

在这里插入图片描述下载好文件,一打开人麻了,这么多Ook
在这里插入图片描述去查了一下这是Ook编码
解码网址:https://tool.bugku.com/brainfuck/

在这里插入图片描述在这里插入图片描述
小知识:
Ook密码中有大量Ook,加上一些符号;Ook! has only three distinct syntax elements:Ook.Ook?Ook!这种就是ook密码


又是增长奇奇怪怪知识的一天

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值