avatar

CTF-BUUCTF-Crypto刷题之旅-(1)

0x01 看我回旋踢

题目:synt{5pq1004q-86n5-46q8-o720-oro5on0417r1}

1
直接考虑凯撒密码

flag{5cd1004d-86a5-46d8-b720-beb5ba0417e1}

0x02 MD5

题目:e00cf25ad42683b3df678c61f42c6bda

1
2
3
解法:
https://www.cmd5.com/ 直接解密
原文: admin1

flag{admin1}

0x03 Url编码

1
题目:%66%6c%61%67%7b%61%6e%64%20%31%3d%31%7d
1
2
按照题意,直接URL解码
http://tool.chinaz.com/tools/urlencode.aspx

flag{and 1=1}

0x04 摩丝

题目:… .-… — …- . -.-- — …-

1
2
按照题意,直接解密
http://www.zhongguosou.com/zonghe/moErSiCodeConverter.aspx

flag{ILOVEYOU}

0x05 变异凯撒

题目:加密密文:afZ_r9VYfScOeO_UL^RWUc 格式:flag{ }

1
2
3
首先用普通凯撒密码跑了一下,啥也没有
然后根据flag格式,前五位为flag{
可以推算出偏移,脚本如下:
1
2
3
4
5
6
7
8
# -*- coding: utf-8 -*-
s = 'afZ_r9VYfScOeO_UL^RWUc'
flag = ''
offset = 5
for i in s:
flag += str(chr(ord(i) + offset))
offset += 1
print flag

flag{Caesar_variation}

0x06 Quoted-printable

题目:=E9=82=A3=E4=BD=A0=E4=B9=9F=E5=BE=88=E6=A3=92=E5=93=A6

1
2
百度搜索 Quoted-printable
http://web.chacuo.net/charsetquotedprintable

flag{那你也很棒哦}

0x07

题目:姓名:张三 生日:19900315

key格式为key{xxxxxxxxxx}

1
无脑题,不知道有什么意义

flag{zs19900315}

0x08 一眼就解密

下面的字符串解密后便能获得flag:

ZmxhZ3tUSEVfRkxBR19PRl9USElTX1NUUklOR30=

注意:得到的 flag,请包上 flag{} 提交

1
2
典型的base64
https://base64.supfree.net/

flag{THE_FLAG_OF_THIS_STRING}

0x09 伪ZIP加密

注意:得到的 flag 请包上 flag{} 提交

1
2
导入UltraEdit,然后在第二个PK头部(50 4B 01 02)后面跟着1F 00 14 00 09 00
只需要将00 09 00 改成00 00 00就可以解压文件拿到flag

flag{Adm1N-B2G-kU-SZIP}

0x10 丢失的MD5

注意:得到的 flag 请包上 flag{} 提交

1
下载到脚本后,看了一眼,感觉能直接跑出来,好吧。无脑题

flag{e9032994dabac08080091151380478a2}

0x11 Rabbit

题目:U2FsdGVkX1/+ydnDPowGbjjJXhZxm2MP2AgI

1
2
直接上解密网站,右下角选择Rabbit
http://tool.chinaz.com/Tools/TextEncrypt.aspx

flag{Cute_Rabbit}

0x12 传统知识+古典密码

题目:小明某一天收到一封密信,信中写了几个不同的年份

辛卯,癸巳,丙戌,辛未,庚辰,癸酉,己卯,癸巳。

信的背面还写有“+甲子”,请解出这段密文。

key值:CTF{XXX}

1
先去网上找一个顺序表

1
2
3
4
5
根据表找出不同年份对应的数字,背面说+甲子,于是在每个数字上面再加了60,得到
88 90 83 68 77 70 76 90
根据这些数字,我们的第一反应当然是ASCII,于是找出它对应的字符
XZSDMFLZ
于是用工具先进行栅栏解密、再凯撒解密得到flag

flag{SHUANGYU}

0x13 RSA

题目:在一次RSA密钥对生成中,假设p=473398607161,q=4511491,e=17

求解出d作为flag提交

1
2
3
4
5
6
7
p = 473398607161
q = 4511491
e = 17
n = (p-1)*(q-1)
17d + ni = 1 (i = 1、2、3……)
只需要找到这个d即可
也就是符合 (1-ni)/17能被整除

脚本如下

1
2
3
4
5
6
7
8
9
10
11
12
13
from Crypto.PublicKey import RSA
import sys
p = 473398607161
q = 4511491
e = 17
n = (p-1)*(q-1)
i = 0
# 17x + ny = 1
while True:
if((1-n*i)%e == 0):
break;
i-=1
print '%d' % ((1 - n*i)/e)

运行结果: 125631357777427553

flag{125631357777427553}

0x14 Alice与Bob

题目:密码学历史中,有两位知名的杰出人物,Alice和Bob。他们的爱情经过置换和轮加密也难以混淆,即使是没有身份认证也可以知根知底。就像在数学王国中的素数一样,孤傲又热情。下面是一个大整数:98554799767,请分解为两个素数,分解后,小的放前面,大的放后面,合成一个新的数字,进行md5的32位小写哈希,提交答案。

注意:得到的 flag 请包上 flag{} 提交

1
2
3
看到是质因数分解,直接用在线分解
https://zh.numberempire.com/numberfactorizer.php
得到:101999*966233

flag{d450209323a847c8d01c6be47c81811a}

0x15 篱笆墙的影子

题目:felhaagv{ewtehtehfilnakgw}

1
2
看着像栅栏密码
https://www.qqxiuzi.cn/bianma/zhalanmima.php

flag{wethinkwehavetheflag}

0x16 传感器

题目:5555555595555A65556AA696AA6666666955

这是某压力传感器无线数据包解调后但未解码的报文(hex)

已知其ID为0xFED31F,请继续将报文完整解码,提交hex。

提示1:曼联

1
https://blog.csdn.net/zz_Caleb/article/details/89331290

0x17 大帝的密码武器

题目:公元前一百年,在罗马出生了一位对世界影响巨大的人物,他生前是罗马三巨头之一。他率先使用了一种简单的加密函,因此这种加密方法以他的名字命名。

以下密文被解开后可以获得一个有意义的单词:FRPHEVGL

你可以用这个相同的加密向量加密附件中的密文,作为答案进行提交。

密文:ComeChina

1
第一感觉凯撒密码,发现偏移为13时为有意义单词

flag{PbzrPuvan}

0x18 robomunication

题目:给了一个mp3

1
2


0x19 RSA1

1
2
3
4
5
p = 8637633767257008567099653486541091171320491509433615447539162437911244175885667806398411790524083553445158113502227745206205327690939504032994699902053229 
q = 12640674973996472769176047937170883420927050821480010581593137135372473880595613737337630629752577346147039284030082593490776630572584959954205336880228469
dp = 6500795702216834621109042351193261530650043841056252930930949663358625016881832840728066026150264693076109354874099841380454881716097778307268116910582929
dq = 783472263673553449019532580386470672380574033551303889137911760438881683674556098098256795673512201963002175438762767516968043599582527539160811120550041
c = 24722305403887382073567316467649080662631552905960229399079107995602154418176056335800638887527614164073530437657085079676157350205351945222989351316076486573599576041978339872265925062764318536089007310270278526159678937431903862892400747915525118983959970607934142974736675784325993445942031372107342103852

用了Hubei师傅的脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import gmpy2
import binascii
def decrypt(dp,dq,p,q,c):
InvQ = gmpy2.invert(q,p)
mp = pow(c,dp,p)
mq = pow(c,dq,q)
m=(((mp-mq)*InvQ)%p)*q+mq
print (binascii.unhexlify(hex(m)[2:]))
p = 8637633767257008567099653486541091171320491509433615447539162437911244175885667806398411790524083553445158113502227745206205327690939504032994699902053229
q = 12640674973996472769176047937170883420927050821480010581593137135372473880595613737337630629752577346147039284030082593490776630572584959954205336880228469
dp = 6500795702216834621109042351193261530650043841056252930930949663358625016881832840728066026150264693076109354874099841380454881716097778307268116910582929
dq = 783472263673553449019532580386470672380574033551303889137911760438881683674556098098256795673512201963002175438762767516968043599582527539160811120550041
c = 24722305403887382073567316467649080662631552905960229399079107995602154418176056335800638887527614164073530437657085079676157350205351945222989351316076486573599576041978339872265925062764318536089007310270278526159678937431903862892400747915525118983959970607934142974736675784325993445942031372107342103852

decrypt(dp,dq,p,q,c)

解出来是 noxCTF{W31c0m3_70_Ch1n470wn}

flag{W31c0m3_70_Ch1n470wn}

0x11 Rabbit

题目:U2FsdGVkX1/+ydnDPowGbjjJXhZxm2MP2AgI

1
2


0x11 Rabbit

题目:U2FsdGVkX1/+ydnDPowGbjjJXhZxm2MP2AgI

1
2


文章作者: 咲夜南梦
文章链接: http://yoursite.com/2019/08/21/CTF-BUUCTF-Crypto%E5%88%B7%E9%A2%98%E4%B9%8B%E6%97%85-(1)/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 咲夜南梦's 博客
打赏
  • 微信
    微信
  • 支付宝
    支付宝

评论