散乱的密文
- 题目描述:
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的解密工具,找到凯撒加密:
一段base64
- Base64 to Text,之后选择 复制输出到输入:
- unescape,之后复制输出到输入:
- Hex To Text,之后复制输出到输入:
- unescape,之后复制输出到输入:
- Dec To Text,之后复制输出到输入,StringfromCharCode是js的一个函数,可以将一堆数字转化为字符串:
- 我的编码转化之后,因为我直接连着上一步的StringfromCharCode也一起复制到输入了,所以开头少了'&'结尾少了';', 添加上之后选择,Decode HTML:
得到的最后的unicode码为:flag%7Bctf_tfc201717qwe%7D
- 最后进行unicode编码转ASCII
其中的 %7B是'{' %7D是 '}'