看雪 KCTF GMAE 闯关记

编程入门 行业动态 更新时间:2024-10-11 21:24:52

<a href=https://www.elefans.com/category/jswz/34/1432023.html style=看雪 KCTF GMAE 闯关记"/>

看雪 KCTF GMAE 闯关记

第一关:闯关游戏

 -.--/---/..-/.--/../-.

摩斯密码,Morse code,放到在线网站上:.html

如果不能识别把 / 替换成空格

第二关

二维码修复,三个角为定位标志,固定形式,找个正常的二维码替换掉三个角的图标

 

 识别修复后的二维码得到flag

flag{62d0cbb2c69133b52f386701726f29c1}

第三关:错误的MD5

 base64解码得flag,直接提交是错识误的,题中说"错误的md5",一般MD5值是32位由数字“0-9”和字母“a-f”所组成的字符串,所以把里面的唯一可能有问题的字符修改一下提交,正确

正确的flag{b9768a37b47beb2d88e2db0e76a39bb3} 

第四关:盲文参照

 这题卡的有点久,开始一直想0和1去替换,最后发现以列为观察,盲文对照解出

答案:IKANXUE

第五关:看雪的历史

 下载附件得到一个txt文件,字符实有列数目明显不对,用vim打开可见

很显然是零宽度字符隐写,在上图中可以看到共有(<200c><200d><202c><feff>)四种零宽度字符,在线网站弄一下:.html

 勾选对应的字符编码

得到flag:flag{6af971a42782115a594ba2318c0417ad}

第六关:凯撒留下了什么?

 下载info.txt文件,全部为二进制,放到CyberCher会自动转码为文本:iodj{7115i261eig7i42d5fg7412fh86ded7h},{}有这两个符号,位置也对,题意很明确,凯撒加密,放到在线网站,偏移量可以根提第一个字符对应f去计算,也可以一个个数字去试,最后是3

flag{7115f261bfd7f42a5cd7412ce86aba7e}

第七关:110米要跨几个栏?

 下载文本文件,根据提示想到栅栏密码,栅栏密码有传统形和W型,这个是W型

 key为10的时候=号在最后,可base64解码得到flag

第八关:WinXor

 逆向题,取字符集进行异或,超哥解出

第九关:请看附件,一位土著告诉了你应该去哪里寻找你想要的当地特产 “振金”

下载png图片,010查正常,无隐写

 图片的名字为wakanda,找到一张瓦坎达文字对照表

 找到图案对应文字即为答案:YOUGOTIT

第十关:中午时分,云的影子比其它时刻小了许多。提交格式:flag{}.

 821010841088421108841022104084210884021084210841

下载txt文件,只含有5个数字01248,题目中又有云和影的提示,云影编码无疑

python脚本跑出来

#!/usr/bin/python
# -*- coding=utf8 -*-
def de_code(c):dic = [chr(i) for i in range(ord("A"), ord("Z") + 1)]flag = []c2 = [i for i in c.split("0")]for i in c2:c3 = 0for j in i:c3 += int(j)flag.append(dic[c3 - 1])return ''.join(flag)def encode(plaintext):dic = [chr(i) for i in range(ord("A"), ord("Z") + 1)]m = [i for i in plaintext]tmp = [];flag = []for i in range(len(m)):for j in range(len(dic)):if m[i] == dic[j]:tmp.append(j + 1)for i in tmp:res = ""if i >= 8:res += int(i/8)*"8"if i%8 >=4:res += int(i%8/4)*"4"if i%4 >=2:res += int(i%4/2)*"2"if i%2 >= 1:res += int(i%2/1)*"1"flag.append(res + "0")print ("".join(flag)[:-1])c = input("输入要解密的数字串:")
print (de_code(c))
#m_code = input("请输入要加密的数字串:")
#encode(m_code)

 KAMXUEDOTCOM直接提交还是不对,这个题目提示很有深意,我当时是“看”的拼音不对,就把M改为N,提交正确KANXUEDOTCOM

第十一关

 还需要密码吗?看题目想到伪加密

用010editor打开,修改压缩文件加密标志位为00,保存后就没有密码了

flag{d9ae4d859de9b941af40f91f69b13f31}

第十二关:经典RSA

 p=1074058774204108249701494602945344702257295575959111855899071
q=88986629334781577655493187325102894512564116681307655782184342573939069819137
e=9540011292252897217

c=41548063605430288432470295597098485988788870848095534515875709414720207762389334011819123356492264118935214420228741427986850823373300101

已知N、e、c或已知p、q、e、c求m,直接上代码

import gmpy2
p = 1074058774204108249701494602945344702257295575959111855899071
q = 88986629334781577655493187325102894512564116681307655782184342573939069819137
e = 9540011292252897217
c = 41548063605430288432470295597098485988788870848095534515875709414720207762389334011819123356492264118935214420228741427986850823373300101
n = p * q
fn = (p - 1) * (q - 1)
d = gmpy2.invert(e, fn)
h = hex(gmpy2.powmod(c, d, n))[2:]
if len(h) % 2 == 1:h = '0' + h
s = str(bytes.fromhex(h))
print(s)

第十三关:流量分析

 下载流量包文件,wireshack打开,FTP流量。统计--》协议分级

 data上右键,查找,找到对应数据包,追踪TCP流直接出flag

或者直接过虑:tcp contains flag

第十四关

逆向题,不会,求助超哥

第十五关:幸福的小羊,快乐的狼

下载题目附件,解压后有1296张小图片,很明显的CTF拼图题,主要用到了montage和gaps,这两个工具安装是重点:

安装好后,执行命令先把所有小图片拼合成一张图片

montage ./*.png -tile 36x36 -geometry +0+0 flag.png 

由于这些小图片不是正方形,需要把生成的图片调整到长和宽一样的,便于后续操作,这期间做了很多操作,最后都没有得到正常的图片,可能跟小图片数量或者小图片颜色非常相近有关,后面换了一种思路,观察montag生成的图片发现含有flag字符的大概就在两行中(sheep649.png-sheep720.png),共72张小图片,我把拿跟这两行有关的图片复制到一个文件中来生成

montage ./*.png -tile 36x2 -geometry +0+0 flag.png 

调整图片高度为1584*88

gaps run ./flag.png newfalg.png --generations=72 --population=20 --size=44 

最后得到正常显示flag的图片

第十六关

更多推荐

看雪 KCTF GMAE 闯关记

本文发布于:2024-03-06 16:59:29,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1715861.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:看雪   KCTF   GMAE

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!