权限获得第一步1
首先我们下载文档,然后看到一串字符串:
可以观察一下806EDC27AA52E314AAD3B435B51404EE,F4AD50F57683D4260DFD48AA351A17A8它们都是32位,很明显这个是md5加密)
它的密文是F4AD50F57683D4260DFD48AA351A17A8然后我们进行md5解密答案就出来了
补充
还原大师1
首先让我们再重温一下题目:
我们得到了一串神秘字符串:TASC?O3RJMV?WDJKX?ZM,问号部分是未知大写字母,为了确定这个神秘字符串,我们通过了其他途径获得了这个字串的32位MD5码。但是我们获得它的32位MD5码也是残缺不全,E903???4DAB???08???51?80??8A?,请猜出神秘字符串的原本模样,并且提交这个字串的32位MD5码作为答案。 注意:得到的 flag 请包上 flag{} 提交
我们要注意题目中的关键字(刻意加粗的字符)
然后我们利用python写一个脚本:
import hashlib
k = 'TASC?O3RJMV?WDJKX?ZM'
for i in range(26):
temp1 = k.replace('?',str(chr(65+i)),1)
for j in range(26):
temp2 = temp1.replace('?',chr(65+j),1)
for n in range(26):
temp3 = temp2.replace('?',chr(65+n),1)
s = hashlib.md5(temp3.encode('utf8')).hexdigest().upper()
if s[:4] == 'E903':
print s
然后我们就可以得到答案了
记得前面加上flag哦,python在线链接
[GKCTF2020]汉字的秘密 1
我们打开题目会看到一个文档,
王壮 夫工 王中 王夫 由由井 井人 夫中 夫夫 井王 土土 夫由
土夫 井中 士夫 王工 王人 土由 由口夫
很明显它是当铺密码
我们利用当前汉字有多少笔画出头,就是转化成数字几,来解密这些文字,同时也可以自己写个脚本这样更方便一些,69 74 62 67 118 83 72 77 86 55 71
57 82 57 64 63 51 107然后我们得到以上数字,聪明的你肯定一眼就看出它是ASCILL码,所以我们对照下表再次解密,或者直接ascill在线解密
然后得到结果EJ>CvSHMV7G9R9@?3k,你以为这个就是结果,太天真了,我们对EJ>CvSHMV7G9R9@?3k再次解密,EJ>C解密应该对应的是flag,刚好f(102)->E(69),l(108)->J(74),a(97)->>(62),g(103)->C(67),它们做差分别是,33,34,35,36,所以它是变异凯撒加密,规律为i+33,所以我们写一个java脚本来解密
package c1;
public class a
{
public static void main(String[] args)
{
String ciphertext = "EJ>CvSHMV7G9R9@?3k";
char[] plaintext = new char[ciphertext.length()];
for(int i = 0; i < ciphertext.length(); i++){
plaintext[i] = (char)(((int)ciphertext.charAt(i) + 33 + i) % 128);
}
for (char i: plaintext) {
System.out.print(i);
}
}
}
运行得到最终的答案
提交flag{you_are_good}
Unencode
打开我们的题目看到一串字符串:89FQA9WMD<V1A<V1S83DY.#<W3$Q,2TM]
我们根据题目判断它应该是Unencode编码在线工具
然后我们进行解密
然后我们的答案就出来了
密码学的心声1
回顾题目:二战时期,某国军官与一个音乐家情妇相好,然而自从那时起,他屡战屡败,敌人似乎料事如神。他也有怀疑过他的情妇,但是他经过24小时观察他的情妇,发现她每天都只是作曲,然后弹奏给战地电台,为士兵们鼓气,并未有任何逾越。那么,间谍到底是谁?这张曲谱是否有猫腻? (答案为一个明文字符串,提交获得的有意义语句通顺字符串即可) 注意:得到的 flag 请包上 flag{} 提交
根据图片提示我们知道它是转换成ascii码,不过不是十进制而是八进制,然后三个一组进行转换,我们写一个python代码:
s = '111 114 157 166 145 123 145 143 165 162 151 164 171 126 145 162 171 115 165 143 150'
tmp = [s.split(' ')[i] for i in range(len(s.split(' ')))]
cipher = ''
for i in tmp:
cipher += chr(int(i,8))
flag = "flag{"+cipher+"}"
print(flag)
然后我们得到flag