资讯详情

BugKu_Crypto_(1)

BugKu_Crypto_(1)


文章目录

  • BugKu_Crypto_(1)
  • 前言
  • 0X01 抄错的字符
  • 0X02 聪明的小羊
  • 0X03 /.-
  • 0X04 [ -<>]
  • 0X05 ok


前言

BugKu平台练习wp


提示:以下是本文的文本内容,以下案例可供参考

0X01 抄错的字符

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

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密码


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

标签: bzw04p26抑制二极管bzw04p17抑制二极管bzw04p64抑制二极管bzw04p128抑制二极管bzw22二极管bzw04p16b抑制二极管

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台