BUUCTF题解

目录

一、Crypto

1.看我回旋踢

2.摩丝

3.password

4.变异凯撒

5.Quoted-printable

6.Rabbit

7.篱笆墙的影子

 8.RSA

 9.丢失的MD5

 10.Alice与Bob

11.大帝的密码武器

12.rsarsa

13.Windows系统密码

14.信息化时代的步伐

15.凯撒?替换?呵呵!

二、Misc

1.小胖

2.二维码

3.你竟敢赶我走

4.大白

5.N种方式解决

6.乌镇峰会种图


一、Crypto

1.看我回旋踢

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

解法:根据synt可以看出这是一个凯撒加密的题目,设置的偏移量为13

2.摩丝

题目:.. .-.. --- ...- . -.-- --- ..-

解法:这种纯【.-】组成的密码就是摩斯密码

3.password

题目:

姓名:张三 
生日:19900315

key格式为key{xxxxxxxxxx}

 解法:这是一道社工题,key中间的位数正好等于zs+生日

4.变异凯撒

题目:

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

解法:凯撒密码是字母与字母的对应,而题目中不仅有字母也有数字和符号,猜测为ASCII码,利用ASCII码表,对比前四个字符与flag的关系,第一个偏移5,第二个偏移6,第三个偏移7,那么可以推测出后面的字符偏移量会依次增加1

利用python写出脚本

ciphertext = 'afZ_r9VYfScOeO_UL^RWUc'
j = 5
for i in ciphertext:
    print(chr(ord(i) + j), end='')
    j += 1

 最后得到flag{Caesar_variation}

5.Quoted-printable

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

 解法:根据题目可知这是一个quoted-printable编码,查阅资料得知这是“可打印字符引用编码”,编码常用在电子邮件中,它是MIME编码常见一种表示方法! 在邮件里面我们常需要用可打印的ASCII字符 (如字母、数字与"=")表示各种编码格式下的字符!Quoted-printable将任何8-bit字节值可编码为3个字符:一个等号"=“后跟随两个十六进制数字(0–9或A–F)表示该字节的数值。利用工具即可解出flag。

6.Rabbit

题目:U2FsdGVkX1/+ydnDPowGbjjJXhZxm2MP2AgI

解法:根据题目所给的Rabbit,查阅资料后发现是一种编码方式,特点是Rabbit加密开头部分通常为U2FsdGVkX1

7.篱笆墙的影子

题目:felhaagv{ewtehtehfilnakgw}

解法:栅栏密码,就是把明文分成N个组,然后取出每组的第一个,每组的第二个。。接着按顺序排列得出密文。若每个组里有2两个元素的话就叫2栏栅栏密码。

解法一:可以看出整个字符串长为26个字符,而需要构成一个flag,正好可以分成2栏栅栏密码

解法二:直接利用工具

 8.RSA

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

解法:利用RSATOOL这个工具:

1.Number Base 设置为十进制

2.注意:Public Exponent这里要使用16进制的数,如果公钥e=17的话,就应该填入十六进制的11

3.给出p,q,e的话直接填入,再点击Calc.D,获得d

4.给出的是n和e的话,输入n和e,点击Factor N(分解),得到p,q,再重复第3步就能得到d了

 9.丢失的MD5

题目:

import hashlib   
for i in range(32,127):  //取随机数
    for j in range(32,127):
        for k in range(32,127):
            m=hashlib.md5()
            m.update('TASC'+chr(i)+'O3RJMV'+chr(j)+'WDJKX'+chr(k)+'ZM')     //拼接加md5加密
            des=m.hexdigest()     //转化为16进制
            if 'e9032' in des and 'da' in des and '911513' in des:
                print des

 解法:编写脚本,得到结果e9032994dabac08080091151380478a2,额...这就是一题补充代码的

import hashlib
for i in range(32,127):
    for j in range(32,127):
        for k in range(32,127):
            m = hashlib.md5()
            s='TASC'+chr(i)+'O3RJMV'+chr(j)+'WDJKX'+chr(k)+'ZM'
            m.update(s.encode())
            des=m.hexdigest()
            if 'e9032' in des and 'da' in des and '911513' in des:
                print(des)

 10.Alice与Bob

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

解法:

1.先通过大整数分离工具,将这个整数分离成两个素数

2.再通过哈希加密工具加密这个合成数

11.大帝的密码武器

题目:公元前一百年,在罗马出生了一位对世界影响巨大的人物,他生前是罗马三巨头之一。他率先使用了一种简单的加密函,因此这种加密方法以他的名字命名。
以下密文被解开后可以获得一个有意义的单词:FRPHEVGL
你可以用这个相同的加密向量加密附件中的密文,作为答案进行提交。

密文:ComeChina

解法:这题是利用了凯撒密码,简单来说就是一个移位加密的方式,最多可以移位25位,写个脚本试试吧

def decode(secret):
    min = ord('a')
    max = ord('z')
    for offset in range(26):
        plaint = ''
        for s in secret:
            o = ord(s) + offset
            o = (o - max + min - 1) if o > max else o  # 超过最大值,移到头部
            plaint += chr(o)
        print(plaint, offset)

str_secret = "FRPHEVGL".lower()
decode(str_secret)

 代码跑出来的结果中13号比较眼熟security,说明这个规则是偏移了13次,即key=13

加密ComeChina,最后flag{PbzrPuvan}

def encode(plaint,offset):
    min = ord('a')
    max = ord('z')
    secret=''
    for p in plaint:
            o = ord(p) - offset
            o = (o + max - min + 1) if o < min else o
            secret += chr(o)
            print(secret)

plaint = "ComeChina".lower()
encode(plaint,13)

12.rsarsa

题目:

Math is cool! Use the RSA algorithm to decode the secret message, c, p, q, and e are parameters for the RSA algorithm.
p =  9648423029010515676590551740010426534945737639235739800643989352039852507298491399561035009163427050370107570733633350911691280297777160200625281665378483
q =  11874843837980297032092405848653656852760910154543380907650040190704283358909208578251063047732443992230647903887510065547947313543299303261986053486569407
e =  65537
c =  83208298995174604174773590298203639360540024871256126892889661345742403314929861939100492666605647316646576486526217457006376842280869728581726746401583705899941768214138742259689334840735633553053887641847651173776251820293087212885670180367406807406765923638973161375817392737747832762751690104423869019034

Use RSA to find the secret message

解法:利用RSATOOL将d求出来

 

d=56632047571190660567520341028861194862411428416862507034762587229995138605649836960220619903456392752115943299335385163216233744624623848874235303309636393446736347238627793022725260986466957974753004129210680401432377444984195145009801967391196615524488853620232925992387563270746297909112117451398527453977

 利用python脚本,求明文,flag{5577446633554466577768879988}

e = 65537
p = 9648423029010515676590551740010426534945737639235739800643989352039852507298491399561035009163427050370107570733633350911691280297777160200625281665378483
q = 11874843837980297032092405848653656852760910154543380907650040190704283358909208578251063047732443992230647903887510065547947313543299303261986053486569407
n = p * q
# 密文
c = 83208298995174604174773590298203639360540024871256126892889661345742403314929861939100492666605647316646576486526217457006376842280869728581726746401583705899941768214138742259689334840735633553053887641847651173776251820293087212885670180367406807406765923638973161375817392737747832762751690104423869019034

d = 56632047571190660567520341028861194862411428416862507034762587229995138605649836960220619903456392752115943299335385163216233744624623848874235303309636393446736347238627793022725260986466957974753004129210680401432377444984195145009801967391196615524488853620232925992387563270746297909112117451398527453977

# 求明文
M = pow(c, d, n)  # 快速进行求幂取模运算
print(M)

13.Windows系统密码

题目:

Administrator:500:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
ctf:1002:06af9108f2e1fecf144e2e8adef09efd:a7fcb22a88038f35a8f39d503e7f0062:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
SUPPORT_388945a0:1001:aad3b435b51404eeaad3b435b51404ee:bef14eee40dffbc345eeb3f58e290d56:::

解法:观察整个CTF的密码,只有字母和数字,发现很像MD5编码,对两串32位字符串进行解密试试,发现后面的可以顺利解出 

14.信息化时代的步伐

题目:也许中国可以早早进入信息化时代,但是被清政府拒绝了。附件中是数十年后一位伟人说的话的密文。请翻译出明文(答案为一串中文!) 注意:得到的 flag 请包上 flag{} 提交

606046152623600817831216121621196386

解法:一串纯数字,很怪,瞄一眼题目,获取关键字【中文】,OK,应该是中文电码,try一try,flag{计算机要从娃娃抓起}

15.凯撒?替换?呵呵!

题目:

MTHJ{CUBCGXGUGXWREXIPOYAOEYFIGXWRXCHTKHFCOHCFDUCGTXZOHIXOEOWMEHZO}

 解法:很怪的东西,像是凯撒偏移的值不定,考虑进行暴力破解,利用在线破解平台quipqiup - cryptoquip and cryptogram solver,将MTHJ替换成FLAG,进行破解

可以从中找出一个可读有意义的语句,flag substitution cipher decryption is always easy just like a piece of cake,去掉空格就是FLAG了

16.萌萌哒的八戒

题目:萌萌哒的八戒原来曾经是猪村的村长,从远古时期,猪村就有一种神秘的代码。请从附件中找出代码,看看萌萌哒的猪八戒到底想说啥

解法:根据图片下面的代码,可以看出是猪圈密码,在网上找了一张对应表,对应写出flag{whenthepigwanttoeat}

17.传统知识+古典密码

题目:

小明某一天收到一封密信,信中写了几个不同的年份
          辛卯,癸巳,丙戌,辛未,庚辰,癸酉,己卯,癸巳。
          信的背面还写有“+甲子”,请解出这段密文。

key值:CTF{XXX}

解题:题目中涉及到天干地支纪年法,查找天干地支表

                         

从上表中可以找出对应的数字为:28、30、23、08、17、10、16、30,背后写着”+甲子“说明得到的数据需要再加甲子数,但是加1后还是看不出什么类型,于是加61后发现是ASCII码。

二、Misc

1.小胖

解法:这道题是一个gif图片,在查看的时候发现有FLAG飘过,利用Kali进行逐帧分离,找到FLAG,这个操作利用了Kali中的convert命令

root@kali:~/Desktop# convert aaa.gif bbb.jpg

2.二维码

解题:这道题放进Kali中,利用binwalk查看文件信息,发现文件下存在隐写 4number.txt

root@kali:~/Desktop# binwalk QR_code.png

接着利用binwalk进行文件分离,binwalk可以扫描固件映像以查找许多不同的嵌入式文件类型和文件系统。-e参数:对隐藏文件提取

root@kali:~/Desktop# binwalk -e  QR_code.png

发现文件分离出一个压缩文件且含有密码

密码?哼!暴力破解冲!!!使用fcrackzip工具,猜测密码为4位数

root@kali:~/Desktop/_QR_code.png.extracted#  fcrackzip -b -c1 -u -l4 1D7.zip

OK,密码为7639,最后得到FALG

3.你竟敢赶我走

解题:这道题就是一个jpg图片看着蛮正常的,然后拖到WinHex中发现FLAG就在最下面 

 

4.大白

题目:看不到图? 是不是屏幕太小了 

 解法:打开图片发现大白只有一半身子,题目又暗示了图是不全的,那就可以考虑去改变它的高度,在WinHex中尝试将高度从01改为03

改完后保存发现图像已经改变,可以看到大白下面的FLAG

5.N种方式解决

解法:打开文件是个exe文件,改为txt后,一眼盯真鉴定为base64转图片

利用在线转换网站:图片base64在线转换工具,发现是个二维码,扫描后可得到FLAG

6.乌镇峰会种图

解法 :一张平平无奇的照片,直接将它丢到WinHex拉到最下面找到FLAG

  • 7
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
buuctfmisc是一个CTF比赛中的题目,涉及到网络分析工具Wireshark的使用。Wireshark是一款开源的网络协议分析工具,可以用于捕获和分析网络数据包。在buuctfmisc题目中,可能需要使用Wireshark来解析和分析给定的网络数据包,以获取关键信息或者解决问题。 具体的题解步骤可能因题目而异,但通常的解题思路如下: 1. 下载并安装Wireshark:首先需要从Wireshark官网下载并安装适合你操作系统的版本。 2. 打开Wireshark并开始捕获数据包:打开Wireshark后,选择合适的网络接口开始捕获数据包。可以通过点击"Capture"按钮或者使用快捷键Ctrl + E来开始捕获。 3. 分析捕获的数据包:Wireshark会将捕获到的数据包以列表形式展示出来。你可以通过点击每个数据包来查看其详细信息,包括源IP地址、目标IP地址、协议类型等。 4. 过滤数据包:如果题目要求只关注特定的数据包,你可以使用Wireshark提供的过滤功能来筛选出符合条件的数据包。过滤条件可以根据协议、源IP地址、目标IP地址等进行设置。 5. 提取关键信息:根据题目要求,你可能需要从数据包中提取关键信息。Wireshark提供了多种功能来帮助你提取数据,比如导出数据包、导出特定协议的数据等。 6. 分析数据包内容:根据题目要求,你可能需要进一步分析数据包的内容。Wireshark可以解析多种协议,你可以查看每个数据包的协议栈、协议字段等信息。 7. 解决问题或回答题目:根据你对数据包的分析和提取的关键信息,你可以解决问题或者回答题目。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

muzzert

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值