转眼就一月十号了,本来今天不想更的,(因为我懒)是因为明天要考python,好像还不止
但是呢,发现BUUCTF的密码学模块刚好可以用到py的脚本,那就当时复习一下吧!!
这里就要介绍BUUCTF了,这里有CTF的各种题型,供我们练手哦 !! ~~
1.Base64编码
这个一眼就解密,嘶~~~~,感觉我盯好一会也没看出来,不对再看多一眼
有个 =号,就能立刻想起base家族啦,于是就去找base64解一下码
就出来啦,First flag 😍😍😍😍
flag{THE_FLAG_OF_THIS_STRING}
2.MD5
这题直接告诉我们是MD5解密,那就直接去找一个md5的解密就好了~!!!
解出的flag如下 :
flag{admin1}
3.URL编码
像这题就没什么好说的了,就是直接url编码,找个工具解码就行
flag{and 1=1}
4.凯撒密码
这题我们可以拿到如下题目,想到刚好提交的模式就是以flag{}提交
synt{5pq1004q-86n5-46q8-o720-oro5on0417r1}
而且,!!!!!,它是不是没有加密{},什么密码会不加密{}???,不就是大名鼎鼎的凯撒密码嘛!!
知道凯撒密码之后,我们就要判断它往后推了几位了 f ->s 可以算出来是13位 那复原的数就是-13
成功又拿下一个flag
flag{5cd1004d-86a5-46d8-b720-beb5ba0417e1}
5.莫斯密码
看到这种题目,有什么想法??
想啥,不就是莫斯密码呗
BYD还挺浪漫🤣🤣🤣
flag{ILOVEYOU}
6.?????
当时看到这个,我也没思路,但是看到他的key的格式,再去数了一下x ,刚好有10个,那不就是组合吗 19900315张三 or 张三19900315,但是提交都是不对的,于是就试了一下首字母
flag{zs19900315}
7. ASCII码
这题算的上是一个很好的题目了,很锻炼思维,还很靠积累
这题虽然说是”变异凯撒“但是怎么变,还是要自己去找规律
这时候就能看到一个 ^,反应过来,这不就是ASCII编码吗,而且ascii会把{也编码,于是就兴奋地去凯撒解密,就拿5去解码
发现好像不太对???
但是,第一个字母是F证明了还没有完全错,再观察 f->l 相差6 Z->a 相差7 看出来啦吧,他是按照ascii码递增地规律的!!那就写个脚本吧(用python)
a="afZ_r9VYfScOeO_UL^RWUc"
auto_increase=5
for sample in a:print("%s"%(chr(ord(sample)+auto_increase)),end="")auto_increase+=1
这样就能解出flag了,有没有感受它的趣味,hhhh
flag{Caesar_variation}
8.Quoted-printable
这个就是一种加密方式,丢去工具就好不多说
flag{那你也很棒哦} ///hhha 有点绷不住了
9.Rabbit编码
这个也是一种加密方式,也不多说
flag{Cute_Rabbit}
10.栅栏密码
看题 felhaagv{ewtehtehfilnakgw} 隐隐约约能看见flag的字眼 但是参杂了一些其他的字眼,将他们剔除出来就能找到规律了
按照一个不拿出来,下一个拿出来的规律,再进行拼接
flag{wethinkwehavetheflag} //这就是大名鼎鼎的栅栏密码
11.RSA!!!!
开始之前想让我啰嗦两句,rsa作为CTF中最常见的题目,SSH的依靠算法,其可谓是老朋友了,这题的rsa只能算是一个基础
rsa的计算原理我就不多说了,这里我们之直接提供他的计算过程
就是(17*d)%(473398607160*4511490)=1,如果你用py进行普通的跑,就会发现根本跑不出来因为数据太大了!!!!!
所以就要用到gmpy2 这个库,至原理是什么,不用管,只要知道invert可以求逆模(就算很大的数!!!!!!!)
flag{125631357777427553}
当然了,rsa还不止这些,还有对信息的幂次方加密的,到时候我们遇到再讲(不是我懒)
12.MD5的py文件补全
一打开就是一堆报错,先把最基本的补全一下,然后就会发现这个报错
查找发现原来要先对其编码
m.update("'TASC'+chr(i)+'O3RJMV'+chr(j)+'WDJKX'+chr(k)+'ZM'".encode("UTF-8"))
但是!!!!编码完之后????? 我flag呢????
但是我们再来细看一下 'TASC'+chr(i)+'O3RJMV'......虽然经过编码不报错了,但是如果直接再他们外面加上”“ 是不是chr(i)就根本没有起到字符转换的功能, 所以bug就在这里!!!
这样,就能让 chr(i,j,k)发挥作用之后在进行编码了
flag{e9032994dabac08080091151380478a2}
这样就能成功拿到flag了
以上就是BUUCTF的密码学的前十二关了,做的时候我脑子里只有一个想法”我flag呢???“
hhh,写完这篇还要去复习😭😭不然明天真得挂科wuwuuwuu~~~~
保命Flag{我不想挂科}