一看就知道是摩斯密码,直接摩斯解密,获得密码
根据提示应该是栅栏加密而且是2栏,遂尝试栅栏解密,竖着看就是key
解密网址:http://tool.bugku.com/brainfuck/
全都是Ook就尝试Ook解密,得出flag,如图
解密网址:http://tool.bugku.com/brainfuck/
brainfuck解码就得到flag
凯撒解密后发现有一段Base64,然后再来一波base64解码得到flag
把文件下载下来后,第一次base64之后发现是8进制转义序列,直接复制下来利用python中print函数的默认属性打印一波,得到一个16进制转义序列,再用一次print,下面是我解题时的代码
#encoding:utf-8
import base64
f = open('C:/Users/Vinson Chan/Desktop/bs.txt','r')
str=f.read()
f.close()
#print base64.b64decode(str)
str = [38,35,120,50,54,59,38,35,120,50,51,59,38,35,120,51,49,59,38,35,120,51,48,59,38,35,120,51,50,59,38,35,120,51,98,59,38,35,120,50,54,59,38,35,120,50,51,59,38,35,120,51,49,59,38,35,120,51,48,59,38,35,120,51,56,59,38,35,120,51,98,59,38,35,120,50,54,59,38,35,120,50,51,59,38,35,120,51,57,59,38,35,120,51,55,59,38,35,120,51,98,59,38,35,120,50,54,59,38,35,120,50,51,59,38,35,120,51,49,59,38,35,120,51,48,59,38,35,120,51,51,59,38,35,120,51,98,59,38,35,120,50,54,59,38,35,120,50,51,59,38,35,120,51,51,59,38,35,120,51,55,59,38,35,120,51,98,59,38,35,120,50,54,59,38,35,120,50,51,59,38,35,120,51,53,59,38,35,120,51,53,59,38,35,120,51,98,59,38,35,120,50,54,59,38,35,120,50,51,59,38,35,120,51,54,59,38,35,120,51,54,59,38,35,120,51,98,59,38,35,120,50,54,59,38,35,120,50,51,59,38,35,120,51,57,59,38,35,120,51,57,59,38,35,120,51,98,59,38,35,120,50,54,59,38,35,120,50,51,59,38,35,120,51,49,59,38,35,120,51,49,59,38,35,120,51,54,59,38,35,120,51,98,59,38,35,120,50,54,59,38,35,120,50,51,59,38,35,120,51,49,59,38,35,120,51,48,59,38,35,120,51,50,59,38,35,120,51,98,59,38,35,120,50,54,59,38,35,120,50,51,59,38,35,120,51,57,59,38,35,120,51,53,59,38,35,120,51,98,59,38,35,120,50,54,59,38,35,120,50,51,59,38,35,120,51,49,59,38,35,120,51,49,59,38,35,120,51,54,59,38,35,120,51,98,59,38,35,120,50,54,59,38,35,120,50,51,59,38,35,120,51,49,59,38,35,120,51,48,59,38,35,120,51,50]
str2 = ''
for i in str:
str2 = str2+chr(i)
#print str2
#下面步骤是是百度的
from HTMLParser import HTMLParser
h = HTMLParser()
s = h.unescape(h.unescape(str2))
print s
得到一个Unicode编码,放在站长工具跑一下,得到一串ASCII码,再来转义一下,发现是html编码,解码之后发现还有URL编码,放在站长工具上跑一下就行
其实网上还有一中简单的方法,用一个叫converter的工具,方法自己找
另类的Ook编码
直接去网站解码即可
另类的brainfuck编码,直接去网站解码即可
给的提示不知道是啥,只能一个个试一下,又毫无头绪,再看看题目,发现那一段密文特别像flag,于是对比gndk与flag的ASCII码,突然发现是依次减少的
于是分别用C还有python写个脚本解密,得到flag,代码如下:
C语言的
#include
#include
using namespace std;
char a[]="gndk€rlqhmtkwwp}z";
int main()
{
for (int i = 0; i1);
}
cout<return 0;
}
python的
#encoding:utf-8
str1 = 'gndk€rlqhmtkwwp}z'
#print str1
flag = ''
count = 1
for i in str1:
flag = flag+chr((ord(i)-count))
count=count+1
print flag
这是个杰斐逊密码盘,根据第一个密钥跟密文,把第二行单独取出来,然后从的地方开始,放到内容最前面
例如:
最后得到下面的密文
HGVSFUWIKPBELNACZDTRXMJQOY
CPMNZQWXYIHFRLABEUOTSGJVDK
BVIQHKYPNTCRMOSFEZWAXJGDLU
TEQGYXPLOCKBDMAIZVRNSJUWFH
SLOQXVETAMKGHIWPNYCJBFZDRU
XQYIZMJWAORPLNDVHGFCUKTEBS
WATDSRFHENYVUBMCOIKZGJXPLQ
CEONJQGWTHSPYBXIZULVKMRAFD
RJLXKISEFAPMYGHBQNOZUTWDCV
QWXPHKZGJTDSENYVUBMLAOIRFC
GOIKFHENYVUWABMCXPLTDSRJQZ
LTDENQWAOXPYVUIKZGJBMCSRFH
ENYSRUBMCQWVJXPLTDAOIKFZGH
SWAYXPLVUBOIKZGJRFHENMCQTD
然后一列列去尝试,倒数第六列是flag
最后提交的flag是小写
上次的博客内容就介绍过,不多说,把09改为00即可
发现没有超过F的字母,边猜测是16进制,然后16进制转码,发现一串全都是数字跟字母的字符串,应该是Base64
解码后发现几组英文。。。。
发现跟上次校赛的键盘题格式差不多,猜测应是键盘密码,这题格式试了好久,都快想说MMP了,google之后才知道这题格式是flag:xxxxxxx(全是大写)
坑惨了!!