-
-
[分享]分享一下buu的crypto的题目
-
发表于: 2022-12-19 12:50 13078
-
[WUSTCTF2020]佛说:只能四天
看见一堆佛文,我就去百度搜了搜佛文加密,还真有这个东西:
佛文加密
2020年的时候有一道密码题目就是用的这个社会主义核心价值观,果不其然,这个是我之前做过的原题哈哈,然后我就理所应该的找到了社会主义核心价值观加密:
社会主义核心价值观加密
RLJDQTOVPTQ6O6duws5CD6IB5B52CC57okCaUUC3SO4OSOWG3LynarAVGRZSJRAEYEZ_ooe_doyouknowfence
就是什么一大堆看不懂的,然后do you know fence,那么我们就去看看这个fence是什么了:
栅栏加密,这个好弄啊,直接上软件:
栅栏解密
从1到10都试试
然后他又说doyouknowCaesar
再去百度看看Caesar加密:
R5UALCUVJDCGD63RQISZTBOSO54JVBORP5SAT2OEQCWY6CGEO53Z67L_doyouknowCaesar
这就是凯撒加密了:
得到了这个:凯撒密码
O5RXIZRSGAZDA63ONFPWQYLPL54GSYLOM5PXQ2LBNZTV6ZDBL53W67I
然后题目描述:
凯撒不是最后一步.......
然后试试md5,base32,base64咯,最后一般都是这些吧:
base编码解码
wctf2020{ni_hao_xiang_xiang_da_wo}
不容易啊这个题目
Cipher
参考链接
头大,就没听说过这个加密方式,Playfair密码
flag{Itisnotaproblemhavefun}
[GXYCTF2019]CheckIn
看见==,直接base了:
发现不对,再看看别的:
然后看看wp知道了是这些东西:wp
ROT5/13/18/47编码转换
ROT5、ROT13、ROT18、ROT47 编码是一种简单的码元位置顺序替换暗码。此类编码具有可逆性,可以自我解密,主要用于应对快速浏览,或者是机器的读取,而不让其理解其意。
ROT5 是 rotate by 5 places 的简写,意思是旋转5个位置,其它皆同。下面分别说说它们的编码方式:
ROT5:只对数字进行编码,用当前数字往前数的第5个数字替换当前数字,例如当前为0,编码后变成5,当前为1,编码后变成6,以此类推顺序循环。
ROT13:只对字母进行编码,用当前字母往前数的第13个字母替换当前字母,例如当前为A,编码后变成N,当前为B,编码后变成O,以此类推顺序循环。
ROT18:这是一个异类,本来没有,它是将ROT5和ROT13组合在一起,为了好称呼,将其命名为ROT18。
ROT47:对数字、字母、常用符号进行编码,按照它们的ASCII值进行位置替换,用当前字符ASCII值往前数的第47位对应字符替换当前字符,例如当前为小写字母z,编码后变成大写字母K,当前为数字0,编码后变成符号_。用于ROT47编码的字符其ASCII值范围是33-126,具体可参考ASCII编码。
ROT5只能对数字编码 ,ROT13对字母,ROT18对数字和字母,ROT47对数字字母和标点ROT解密
经过上面的学习我们base解密之后得到的这一串数字是字母加符号啥的,所以选择ROT47
flag{Y0u_kNow_much_about_Rot}
robomunication
这个题目打开之后是一个mp3文件,我本打算用010看看来着,010居然到期了,这里跟大家分享一下010的激活码吧:
010激活码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | 用户名:www.budingwang.com 注册码:CR96 - 4B9C - 6470 - 303F 用户名:www.budingwang.com 注册码:CR71 - DD9C - C1D3 - 55D8 用户名:www.budingwang.com 注册码:CRE7 - D59C - 98D4 - EF4E 用户名:www.budingwang.com 注册码:CR2C - A19C - E8F5 - 6185 用户名:www.budingwang.com 注册码:CR5F - BA9C - 6A95 - 9CF6 |
我们可以发现用010并没有发现什么
然后我就听这个mp3文件,什么哔哔啵啵的,吓死我了,阴乐啊!!!!!,(听着像莫斯,找个软件看看吧)
1 | .... . . - .. . - .. - - - . - - .... . - - .. ... - .... . - . - . - . - - .. - .. ... - ... - - - - - - . - - . - ... . . . - - . |
解密一下看看:
flag{BOOPBEEP}
[GUET-CTF2019]BabyRSA
用010看看:
带入rsa脚本:
flag{cc7490e-78ab-11e9-b422-8ba97e5da1fd}
密码学的心声
看看这个图片:
暗示的非常明显了,将乐谱转化成ASCII码,然后还是8进制,那个三个一组,然后转成8进制,然后ASCII码,然后转成字符:
1 2 3 4 5 6 7 | code = [ 111 , 114 , 157 , 166 , 145 , 123 , 145 , 143 , 165 , 162 , 151 , 164 , 171 , 126 , 145 , 162 , 171 , 115 , 165 , 143 , 150 ] flag = '' for i in code: i = str (i) flag + = chr ( int (i, 8 )) print (flag) |
flag{ILoveSecurityVeryMuch}
[BJDCTF2020]这是base
这个简单啊,之前做逆向的时候做过类似的题目,就是换码表的base啊
之前做逆向的时候超过一个脚本,直接拿来用就行l:
flag{D0_Y0u_kNoW_Th1s_b4se_map}
达芬奇密码
这道题看着像斐波那契数列
这个是标准的
1 | 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 10946 17711 28657 46368 75025 121393 196418 317811 514229 832040 1346269 2178309 |
这个是题目的
1 | 1 233 3 2584 1346269 144 5 196418 21 1597 610 377 10946 89 514229 987 8 55 6765 2178309 121393 317811 46368 4181 1 832040 2 28657 75025 34 13 17711 |
我们可以发现了移位顺序
1 2 3 4 5 | 第一个数字 0 第二个数字 13 第三个数字 4 第四个数字 31 第五个数字 12 |
然后居然在论坛发现了之前也有师傅做这个题目
那么那一串达芬奇密码也得是按照这样的顺序进行偏移的:
flag{37995588256861228614165223347687}
SameMod
我们先来了解一下什么是共模攻击,这道题也是类似于rsa的一道题目
共模是指:就是明文m,相同。用两个公钥e1,e2加密得到两个私钥d1,d2 和两个密文c1,c2
共模攻击,即当m不变的情况下,知道n,e1,e2,c1,c2, 可以在不知道d1,d2的情况下,解出m,
RSA的工作原理,RSA涉及的几个参数
明文=>m
密文=>c
模n,负责计算出两个质数p和q p和q计算欧拉函数值Φ(n)
欧拉函数Φ(n)=> Φ(n)=(p-1)*(q-1)
公钥参数e和私钥参数d,可由欧拉函数计算出 ed ≡ 1(mod Φ(n))
加密=> m^e≡c (mod n)
解密=> c^d ≡m (mod n)
了解完这些,我们就可以得到rsa中的参数了:
1 2 3 4 5 | e1 = 773 e2 = 839 n = 6266565720726907265997241358331585417095726146341989755538017122981360742813498401533594757088796536341941659691259323065631249 c1 = 3453520592723443935451151545245025864232388871721682326408915024349804062041976702364728660682912396903968193981131553111537349 c2 = 5672818026816293344070119332536629619457163570036305296869053532293105379690793386019065754465292867769521736414170803238309535 |
知道了参数,直接写解密脚本就好啦:
flag{whenwethinkitispossible}
rot
一开始我打算直接用rot在线解密的网站解密来着,但是ROT5、ROT13、ROT18、ROT47解密之后都得不到我们想要的flag,最后看了看wp才知道这是一个移位的解密
这样得到的flag虽然有一部分,但是后面的不去:
FLAG IS flag{www_shiyanbar_com_is_verygood????}
MD5:38e4c352809e150186920aac37190cbc
但是她给了MD5加密之后的结果,所以我们找一个MD5网站试一试:
他还解不出来,那么我们写脚本爆破吧,就是时间应该挺长的:
flag{www_shiyanbar_com_is_verygood@8Mu}
参考链接
参考链接
这是什么
你说这是什么,这不是安卓题目嘛哈哈,但是jadx打开一看啥也不是
解压之后也没有什么发现,托010看看吧:
然后用这个解密网站
jsfuck编码
flag{a0448fd730b62c13ca80200c4529daa2}
传感器
这一题我在上一篇文章中已经说过了
https://bbs.pediy.com/thread-275477.htm
这个buu把题目链接放混了,我就直接copy上次的分析过程了
5555555595555A65556AA696AA6666666955
这是某压力传感器无线数据包解调后但未解码的报文(hex)
已知其ID为0xFED31F,请继续将报文完整解码,提交hex。
提示1:曼联
他的提示是曼联,居然有大佬想到这是曼彻斯特编码,我记得好像计算机组成原理课程上面讲过这个东西:曼彻斯特编码参考链接
1 2 3 4 | 曼彻斯特编码 曼彻斯特编码(Manchester)又称裂相码、同步码、相位编码。它也是通过电平的高低转换来表示“ 0 ”或“ 1 ”,每位中间的电平转换既表示了数据代码,也作为定时信号使用。曼彻斯特编码常常用在以太网中。 编码原理编辑: 曼彻斯特编码是将时钟和数据包含在信号流中,在传输代码信息的同时,也将时钟同步信号一起传输到对方。曼彻斯特编码的每一个码元都被调制成两个电平,所以数据传输速率只有调制速率的 1 / 2 。 |
那么这个题目就是这样的:二进制转换器
5555555595555A65556AA696AA6666666955
首先转为二进制编码:
二进制编码:
1 | 0101 0101 0101 0101 0101 0101 0101 0101 1001 0101 0101 0101 0101 1010 0110 0101 0101 0101 0110 1010 1010 0110 1001 0110 1010 1010 0110 0110 0110 0110 0110 0110 0110 1001 0101 0101 |
根据之前的参考文档,曼彻斯特编码之后就应该按照01->1,10->0来转化:
1 2 3 4 | 11111111 11111111 01111111 11001011 11111000 00100110 00001010 10101010 10011111 FF FF FE D3 1F 64 50 55 F9 |
flag{FFFFFED31F645055F9}
一张谍报
这个题目的出题人绝对在最高层,不看wp想不到答案
这个是土匪行话密码:
直接上wp吧,感觉这个题目就是看谁脑洞大:
1 2 3 4 5 6 7 8 9 10 11 12 | # -*- coding:utf-8 -*- strs1 = "今天上午,朝歌区梆子公司决定,在每天三更天不亮免费在各大小区门口设卡为全城提供二次震耳欲聋的敲更提醒,呼吁大家早睡早起,不要因为贪睡断送大好人生,时代的符号是前进。为此,全区老人都蹲在该公司东边树丛合力抵制,不给公司人员放行,场面混乱。李罗鹰住进朝歌区五十年了,人称老鹰头,几年孙子李虎南刚从东北当猎户回来,每月还寄回来几块鼹鼠干。李罗鹰当年遇到的老婆是朝歌一枝花,所以李南虎是长得非常秀气的一个汉子。李罗鹰表示:无论梆子公司做的对错,反正不能打扰他孙子睡觉,子曰:‘睡觉乃人之常情’。梆子公司这是连菩萨睡觉都不放过啊。李南虎表示:梆子公司智商捉急,小心居民猴急跳墙!这三伏天都不给睡觉,这不扯淡么!到了中午人群仍未离散,更有人提议要烧掉这个公司,公司高层似乎恨不得找个洞钻进去。直到治安人员出现才疏散人群归家,但是李南虎仍旧表示爷爷年纪大了,睡不好对身体不好。" strs2 = "喵天上午,汪歌区哞叽公司决定,在每天八哇天不全免费在各大小区门脑设卡为全城提供双次震耳欲聋的敲哇提醒,呼吁大家早睡早起,不要因为贪睡断送大好人生,时代的编号是前进。为此,全区眠人都足在该公司流边草丛合力抵制,不给公司人员放行,场面混乱。李罗鸟住进汪歌区五十年了,人称眠鸟顶,几年孙叽李熬值刚从流北当屁户回来,每月还寄回来几块报信干。李罗鸟当年遇到的眠婆是汪歌一枝花,所以李值熬是长得非常秀气的一个汉叽。李罗鸟表示:无论哞叽公司做的对错,反正不能打扰他孙叽睡觉,叽叶:‘睡觉乃人之常情’。哞叽公司这是连衣服睡觉都不放过啊。李值熬表示:哞叽公司智商捉急,小心居民猴急跳墙!这八伏天都不给睡觉,这不扯淡么!到了中午人群仍未离散,哇有人提议要烧掉这个公司,公司高层似乎恨不得找个洞钻进去。直到治安人员出现才疏散人群归家,但是李值熬仍旧表示爷爷年纪大了,睡不好对身体不好。" strs3 = "喵汪哞叽双哇顶,眠鸟足屁流脑,八哇报信断流脑全叽,眠鸟进北脑上草,八枝遇孙叽,孙叽对熬编叶:值天衣服放鸟捉猴顶。鸟对:北汪罗汉伏熬乱天门。合编放行,卡编扯呼。人离烧草,报信归洞,孙叽找爷爷。" m = "" for i in range ( len (strs3)): for j in range ( len (strs2)): if strs3[i] = = strs2[j]: m + = strs1[j] break print (m) |
flag{南天菩萨放鹰捉猴头}
[ACTF新生赛2020]crypto-rsa0
还是一道rsa的题目:
flag是加密的,拿不出来,但是他说是压缩包的伪加密,这个百度去看看:
关于伪加密,大家可以看一下这几篇文章:
伪加密
zip加密
1 2 3 4 5 6 7 8 | 压缩源文件数据区: 50 4B 03 04 :这是头文件标记 ( 0x04034b50 ) 压缩源文件目录区: 50 4B 01 02 :目录中文件文件头标记 ( 0x02014b50 ) 伪加密: 压缩源文件数据区的全局方式位标记应当为 00 00 ( 50 4B 03 04 14 00 后) 且压缩源文件目录区的全局方式位标记应当为 09 00 ( 50 4B 01 02 14 00 后) 我们要做的就是吧 14 00 后面的两个字节改成 00 00 |
修改过程:
修改之后就能解压了:
然后直接套用脚本就好啦
flag{n0w_y0u_see_RSA}
[MRCTF2020]天干地支+甲子
直接按照题目的说明来就行了
从我的上一篇文章中也可以找到这个表格,直接对应相加就行了,然后转成对应的ASCII码值
1 2 3 4 5 6 7 | 甲戌 11 + 60 = 71 甲寅 51 + 60 = 111 甲寅 51 + 60 = 111 癸卯 40 + 60 = 100 己酉 46 + 60 = 106 甲寅 51 + 60 = 111 辛丑 38 + 60 = 98 |
flag{Goodjob}
[BJDCTF2020]signin
一眼16进制字符串,然后直接转字符
16进制转字符串
flag{We1c0me_t4_BJDCTF}
[MRCTF2020]vigenere
经过我的了解,这个是维吉尼亚密码,这个密码就是将明文a,然后自己定义一个密钥b,密文c
也是利用偏移得到的密文
若a+b<=25则c=a+b
若a+b>25 则c=a+b-26
这个密码就是凯撒密码的一种变形,也可以这么理解
维吉尼亚密码
维吉尼亚密码
维吉尼亚密码
如果这样一个个的弄有点麻烦,直接爆破就好啦
爆破网站
flag{vigenere_crypto_crack_man}
[MRCTF2020]古典密码知多少
看看题目是不是很眼熟啊,很像上篇文章中做过的猪圈密码:
https://bbs.pediy.com/thread-275477.htm
然后还有一些不认识的,我看完wp才知道这些事标准银河字母 圣堂武士
flag{CRYPTOFUN}