BugkuCTF:散乱的密文,凯撒部长的奖励,一段base64

散乱的密文

  • 题目描述:

                                 lf5{ag024c483549d7fd@@1}
                                 一张纸条上凌乱的写着2 1 6 5 3 4

  • 猜想1:24个字符,规则应该是123456,分为6组一组四个字符,类似于栅栏加密,这个想法验证过后不对
  • 猜想2:24个字符分为四组,按照 216534 的顺序进行读取,然后按照123456的顺序排序后组成序列,之后再进行对于栅栏加密的解密,4个字符为一组,写个脚本:
str_ciphertext = "lf5{ag024c483549d7fd@@1}"
str_temp = ""
key = "216534"
str_plaintext = ""
k = 1
while k <= 6:
    for j, elem in enumerate(key):  # j用来控制密文的下标,k控制顺序是123456
        if k == int(elem):
            str_temp += str_ciphertext[j] + str_ciphertext[j + 6] + str_ciphertext[j + 12] + str_ciphertext[j + 18]
            k += 1
            break
print(str_temp)  # 栅栏密码,4个字符为一组,进行抽取,之后可以得到明文
for i in range(0, 4):
    str_plaintext += str_temp[i] + str_temp[i + 4] + str_temp[i + 8] + str_temp[i + 12] + str_temp[i + 16] + str_temp[i + 20]
print(str_plaintext)
  • 结果为,提交时要去掉两个@@,它们只是用来填充用的字符:

                                               

 

凯撒部长的奖励

  • 题目描述:
    就在8月,超师傅出色地完成了上级的特遣任务,凯撒部长准备给超师傅一份特殊的奖励,兴高采烈的超师傅却只收到一长串莫名的密文,超师傅看到英语字串便满脸黑线,帮他拿到这份价值不菲的奖励吧。
    密文:MSW{byly_Cm_sIol_lYqUlx_yhdIs_Cn_Wuymul_il_wuff_bcg_pCwnIl_cm_u_Yrwyffyhn_guh_cz_sio_quhn_ni_ayn_bcm_chzilguncihm_sio_wuh_dich_om}
  • 猜想:如果根据题目所说,凯撒加密,直接去Bugku的解密工具,找到凯撒加密:
    BugkuCTF:散乱的密文,凯撒部长的奖励,一段base64_第1张图片

 

一段base64

  • Base64 to Text,之后选择    复制输出到输入:              
    BugkuCTF:散乱的密文,凯撒部长的奖励,一段base64_第2张图片
  • unescape,之后复制输出到输入:
    BugkuCTF:散乱的密文,凯撒部长的奖励,一段base64_第3张图片
  • Hex To Text,之后复制输出到输入:
    BugkuCTF:散乱的密文,凯撒部长的奖励,一段base64_第4张图片
  • unescape,之后复制输出到输入:
    BugkuCTF:散乱的密文,凯撒部长的奖励,一段base64_第5张图片
  • Dec To Text,之后复制输出到输入,StringfromCharCode是js的一个函数,可以将一堆数字转化为字符串:
    BugkuCTF:散乱的密文,凯撒部长的奖励,一段base64_第6张图片
  • 我的编码转化之后,因为我直接连着上一步的StringfromCharCode也一起复制到输入了,所以开头少了'&'结尾少了';',  添加上之后选择,Decode HTML:
    BugkuCTF:散乱的密文,凯撒部长的奖励,一段base64_第7张图片
    得到的最后的unicode码为:
    flag%7Bctf_tfc201717qwe%7D

     

  • 最后进行unicode编码转ASCII
    BugkuCTF:散乱的密文,凯撒部长的奖励,一段base64_第8张图片

      其中的 %7B是'{'         %7D是 '}'

 

你可能感兴趣的:(decrypt)