Bugku CTF 加密writeup
本人CTF小白一枚,此wp是参考网上大佬的wp再加上自己操作写出来的,如有纰漏,还请指正。
0x01滴答~滴
从提供的密码可以猜测是摩尔斯密码,利用bugku自带的解码工具进行解码,
space为空格,short为“.”,long为“-”,得到flag。
0x02聪明的小羊
提示中有“栅栏”,则猜测为栅栏密码,并且栏数为2,利用bugku自带工具解码,得到flag。
0x03ok
此加密为ook加密,利用ook解码工具,将文本解码,得flag。
0x04这不是摩斯密码
此加密为brainfuck加密,利用解码工具,得flag。
0x05简单加密
从末尾的AA猜测出可能是凯撒移位和base64的结合,
首先参照ASCII吗,A是65,=是61,偏移4位。用工具中的凯撒移位解码,得到一串base64编码,再进行base64解码,得到flag。(本题的思路需要之前有一定的经验积累)
0x06一段Base64
文件给出了一段base64,先按base64解密,得到如下字符:
通过观察可知是八进制编码,可以将八进制直接转成文本,或者转成“\x”开头的十六进制再转文本,之后得到“\u”开头的Unicode编码,在进行Unicode解码,得到如下:
得到的是十进制数,将此十进制数转换成文本,得到HTML实体字符编码,进行解码,出来还是一串HTML实体字符编码,再解一次,就得到flag了(其中%7B和%7D是URL编码,换成大括号)。
0x07.!?
又是ook编码。(ook特点:有问号,点号,感叹号)
0x08+[]-
又是brainfuck编码。(brainfuck特点:有加号,减号,方括号,尖括号)
0x09奇怪的密码
从密码中看到一个欧元符号和一个右花括号,分析前四个字母,其ASCII码为
103,110,100,107;flag四个字母的ASCII码为
102,108,97,103,可以看出,第一个向前移一位,第二个向前移两位,以此类推。
写一个简单解码脚本(PHP写不来,最后用C语言写的)
#include <stdio.h>
#include <string.h>
int main(void)
{
int i, tmp = 1, len;
char str[] = "gndk€rlqhmtkwwp}z";
len = strlen(str);
for (i = 0; i < len; i++)
{
printf("%c", (char)((int)str[i] - tmp));
tmp++;
}
return 0;
}
0x10托马斯.杰斐逊
这题用到的是关于托马斯杰斐逊的转轮密码。按照密钥数字先将密码本的每一行重新排列,比如密码本的第2行为解码本的第一行,密码本的第5行为解码本的第二行。。。
然后根据密文对每一行进行移位,密文第一个字母为H,就将解码本第一行循环左移至以H开头,成为:HGVSFUWIKPBELNACZDTRXMJQOY,以此类推。
观察每一列,发现倒数第六列有BUGKU字样,那一列就是flag。
0x11zip伪加密
先附上一个关于zip伪加密的讲解:https://blog.csdn.net/u011377996/article/details/79286958(侵权立删)
用HxD打开压缩文件,把文件目录区的全局方式位标记中09改成00或其他偶数即可解压,得到flag.txt。
0x12告诉你个秘密(ISCCCTF)
从编码可以猜测出是十六进制,进行ASCII码转换,得到一串可能为base64的编码,
再进行base64解码,得到四个或三个字母为一组的编码,
(此处脑洞有些大)观察键盘发现,四个或三个字母围起来的字符就是解码的字符,例如:r5yG围的字母“T”,等等。
最后的flag格式网上说是flag:xxxxxxx
但我试过很多种,很多遍没成功,等会儿再试试,不过解题思路是这样。
0x13来自宇宙的信号
这道题挺有意思的。
打开看到一串奇怪的字符,
到百度上搜搜“银河战队”没搜出来相关的文字,再搜一下“银河文字”,找到相关的文字转换,这种文字叫“标准银河字母”,
然后对照解码,得到flag。
0x14散乱的密文
题目给的密文刚开始看以为是维吉尼亚密码,后来仔细想想不是,并且题目说了“散乱”的密码,将密文按顺序排列在数字下方正好排4行,那么就是列移位加密。
2 | 1 | 6 | 5 | 3 | 4 |
---|---|---|---|---|---|
l | f | 5 | { | a | g |
0 | 2 | 4 |