文章总结: 本文是看雪CTF-GAME闯关秘籍的详细Writeup,共37关。内容涵盖多种CTF题型:摩斯密码、Base64编码、盲文、零宽隐写、二进制凯撒密码、栅栏密码、异或加密、RSA算法(含小e攻击和广播攻击)、.NET逆向、Access数据库密码破解、steghide隐写、多层ZIP压缩包爆破、冰蝎流量解密、F5隐写、PHP弱类型比较、XFF伪造、Cookie伪造、JS逆向等。每关提供解题思路、工具链接及Python/Shell脚本,适合新手入门及CTF备赛参考。
综合评分: 78
文章分类: CTF,渗透测试,安全工具,逆向分析,免杀
看雪CTF-GAME闯关秘籍Writeup
原创
落寞的鱼
落寞的鱼
鱼影安全
2026年2月9日 17:15
浙江
点击上方蓝字·关注我们
前言:
本篇是看雪CTF平台-GAME闯关秘籍,目前37关!
做完一题才可以下一题,原创内容比较长,感谢观看!
csdn主页:https://blog.csdn.net/Aluxian_?type=lately
帮看雪CTF打个广告啦,需要复现地址如下:
https://kctf.kanxue.com/challengesvx:Yu1yuu1(欢迎交流学习)time:2026.2.9
第一关:
此游戏是一系列题目组合而成,您必须解决这个难题才能进入下一题或“关卡”。这些谜题的难度会随着您达到的更高级别而增加,题目内容包括技术、数学、音乐、科学、语言等。
第一题:-.–/—/..-/.–/../-.
在线解密:
https://www.bejson.com/enc/morse/
flag:%ub
第二关:
请个外援,找对象帮我修了一下 PS,牛逼扫出来了
第三关:
ZmxhZ3tiOTc2OGEzN2I0N2JlYjJkODhlMmRib2U3NmEzOWJiM30=
知识点:md5包含[0-9];[a-f]字符 o 不符合所以替换 0
第四关:
○● ●○ ●○ ●● ●● ●○ ●○●○ ○○ ○○ ○● ○○ ○○ ○●○○ ●○ ○○ ●○ ●● ●● ○○
在线解密:
https://www.lddgo.net/common/braille
flag:ikanxue
第五关:
看雪的历史,请下载附件闯关
在线0宽隐写:
https://330k.github.io/misc_tools/unicode_steganography.html
ps:新手可能需要kali中vim查看 老手一看就看出来了
第六关:
凯撒留下了什么?
0110100101101111011001000110101001111011001101110011000100110001001101010110100100110010001101100011000101100101011010010110011100110111011010010011010000110010011001000011010101100110011001110011011100110100001100010011001001100110011010000011100000110110011001000110010101100100001101110110100001111101
第七关:
描述:110米要跨几个栏?
在线解密:
https://ctf.bugku.com/tool/railfence
第八关:
WinXor,分析出flag
在IDA的顶部菜单中选择View -> Open Subviews -> Graph
查看伪代码,flag每个值和0x31异或 写个脚本
flag = [ 0x57, 0x5D, 0x50, 0x56, 0x4A, 0x03, 0x53, 0x04, 0x53, 0x08, 0x54, 0x09, 0x04, 0x00, 0x54, 0x50, 0x06, 0x03, 0x03, 0x08, 0x04, 0x02, 0x08, 0x54, 0x05, 0x02, 0x54, 0x03, 0x07, 0x09, 0x08, 0x05, 0x52, 0x05, 0x03, 0x00, 0x01, 0x4C]
key = 0x31out = bytes([b ^ key for b in flag])
print(out.decode("latin-1")) # 原样打印(不报错)print("hex:", out.hex())
第九关:
请看附件,一位土著告诉了你应该去哪里寻找你想要的当地特产 “振金”
flag:YOUGOTIT
第十关:
提示:中午时分,云的影子比其它时刻小了许多
很明显云影密码,原理就不说了很简单
#821010841088421108841022104084210884021084210841
821→8+2+1=11→K1→1→A841→13→M884211→24→X8841→21→U221→5→E4→4→D8421→15→O884→20→T21→3→C8421→15→O841→13→MM改N#kanxuedotcom 注意格式flag{kanxuedotcom}
第十一关:
还需要密码??
奇数改偶数,随波直接修复
第十二关:
经典RSA!
已知N、e、c或已知p、q、e、c求m
p = 1074058774204108249701494602945344702257295575959111855899071q = 88986629334781577655493187325102894512564116681307655782184342573939069819137e = 9540011292252897217c = 41548063605430288432470295597098485988788870848095534515875709414720207762389334011819123356492264118935214420228741427986850823373300101
n = p * qphi = (p - 1) * (q - 1)
d = pow(e, -1, phi) # Python 3.8+ 支持m = pow(c, d, n)
pt = m.to_bytes((m.bit_length() + 7) // 8, "big")print(pt.decode())## flag{81794a6521b73422e9d5c12ea5b8ccc3}
第十三关:
第十四关:
这个程序会告诉你flag
这是一个.net 的exe使用dnSpy打开分析源码
发现是异或 直接用 KEY=99 去XOR数组A
A = [5,15,2,4,24,91,6,90,0,91,86,0,83,83,90,1,1,5,0,2,0,5,2,0,81,86,86,84,2,86,5,7,2,81,2,81,87,30]KEY = 99 # 0x63
print(''.join(chr(x ^ KEY) for x in A))
第十五关:
幸福的小羊,快乐的狼
这题考的是拼图gaps使用,网上贴个图,这题懒得做了
第十六关:
Access数据库安全吗?
直接小工具查看密码 当然这里试了几个都不行
在线网站:
https://www.mdbopener.com/
第十七关:
我记得在2022年写了一个秘密文件,并添加了密码。 但是时间久了,我也忘了密码是什么,只记得密码格式是flag{32位小写md5(hashcat_DATE)}
第十八关:
简单的RSA,RSA解密,小e攻击
from Crypto.Util.number import long_to_bytes
m = 13040004482819597946418436124455228019659571464985695478448896944501197194023405766321595005
print(long_to_bytes(m))##flag{156a17333e77a3c504018cae5ada8c3b}
第十九关:
蒙娜丽莎背后的秘密
steghide info Mona.jpgsteghide extract -sf Mona.jpg
第二十关:
密码kxyyds,拿走不谢
AI帮忙写个脚本循环:
import os, shutil, subprocess, glob
ZIP0 = "1000.zip"PWD = "kxyyds"WORK = "out"SEVEN_Z = "7z" # Windows 可改成 r"C:\Program Files\7-Zip\7z.exe"
def run(cmd): r = subprocess.run(cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, text=True) return r.returncode, r.stdout
def find_next_zip(folder): zips = [] for root, _, files in os.walk(folder): for f in files: if f.lower().endswith(".zip"): zips.append(os.path.join(root, f)) return zips[0] if zips else None
def find_last_files(folder): out = [] for root, _, files in os.walk(folder): for f in files: if not f.lower().endswith(".zip"): out.append(os.path.join(root, f)) return out
def main(): shutil.rmtree(WORK, ignore_errors=True) os.makedirs(WORK, exist_ok=True)
cur = os.path.abspath(ZIP0)
for depth in range(1, 5000): # 够用,防死循环 lvl = os.path.join(WORK, f"lvl_{depth:04d}") os.makedirs(lvl, exist_ok=True)
# -y 自动覆盖;-p 指定密码;-o 指定输出目录 code, out = run([SEVEN_Z, "x", f"-p{PWD}", "-y", f"-o{lvl}", cur]) if code != 0: print(f"[!] 解压失败 at level {depth}") print(out) return
nxt = find_next_zip(lvl) if not nxt: # 没有下一层 zip,说明到头了 files = find_last_files(lvl) print(f"[+] 解到第 {depth} 层,最终文件:") for p in files: print(" -", p) # 尝试直接打印文本内容(flag 常在 txt) try: data = open(p, "rb").read() if len(data) <= 4096: try: print("[*] 内容:", data.decode(errors="ignore")) except: pass except: pass return
cur = nxt
if __name__ == "__main__": main()
第二十一关:
冰蝎流量解密
第二十二关:
多组信息 广播攻击
import mathfrom functools import reduce
e = 5
n1 = 89949876042409177323867813101117882442829410281842700894839421399069938235984672862652293711555149553911139368450418479695539026665377830420387043967934888420057079580384253446568058071795275438465859196915844311036117789185387905197534622591336675791570668600620181255395895498162948242922900968316004198713n2 = 158070222314237392626974185091017812165079298904679085174521087973603366580430336558736309325348814673436518958534237019970593225438577445591128507171962689942666410413582117610455842920265722477107683035714729632157865401151155447832833704399012220230811610338263397941711465571368032968479517122688063228627n3 = 125833496094734817243695739744230139753928423197094445357568225052210672076185273433284131219115166807589056837913856955225863308421027595706891518436767780997258388225847627344487525437489514108836442278605337394452980254710317777459176113478303804336257756874290812042048776397822097246306839022451765889523
c1 = 64762728744912277080725043589783603499336289903613879425542010904437303230864394867049931048301663521835907241628054764074618224274438266113678460263104551913515445611512529127927334634469590012330179879752372826052734575095603588516920928707755666937711484660415540329627440281701783814310326940135459458953c2 = 81892486587542819638249334759512765967512221904430979434999963327372984400245787170855142342082064007218779449589865653788471102132950970574258098630324976601769573515707970686432744637736530361615660776051603206725763518018744106225576921753326376358274626814763794775824458464959673155703028669516536625027c3 = 5951813988492004672630517384029848886357535922982582111119873076542468016342540731610619531566257550328179319875745469184900825726772278961616888632749897654771951747839709740819475124162149308143933786841856056437565919447824192953499881108366313280112296270910883925700704390324625008961208684382617602325
def egcd(a, b): if b == 0: return a, 1, 0 g, x, y = egcd(b, a % b) return g, y, x - (a // b) * y
def invmod(a, m): g, x, _ = egcd(a, m) if g != 1: raise ValueError("no inverse") return x % m
def crt(cs, ns): N = reduce(lambda x, y: x * y, ns, 1) x = 0 for ci, ni in zip(cs, ns): Mi = N // ni x = (x + ci * Mi * invmod(Mi % ni, ni)) % N return x
def iroot(k, n): lo, hi = 0, 1 while hi ** n <= k: hi *= 2 lo = hi // 2 while lo + 1 < hi: mid = (lo + hi) // 2 if mid ** n <= k: lo = mid else: hi = mid return lo
C = crt([c1, c2, c3], [n1, n2, n3]) # C = m^5m = iroot(C, e)
pt = m.to_bytes((m.bit_length() + 7) // 8, "big")print(pt.decode())
也可以使用工具:
n = 13040004482820525636240491431367348910269992864998390527751870392412347060515991827646735485print(n.to_bytes((n.bit_length()+7)//8, "big").decode())
第二十三关:
GLIBC-2.34,调试需要高版本Linux系统,不调试也可做
第二十四关:
提示信息: Ctrl+U
第二十五关:
提示信息:GET
?value=flag
第二十六关:
提示信息:POST
第二十七关:
提示信息:Compare
$value=$_GET["value"];if(!is_numeric($value)&&$value==65535) { echo $flag;} else { echo $value;}
curl http://77efda23-83b5-4e50-bd50-37b6a564621d.node.pediy.com:81//Game/8-84f7fd029d72f436/challenge8.php?value=65535d
第二十八关:
提示信息:F5隐写
git clone https://gitcode.com/gh_mirrors/f5/F5-steganography.git
java Extract picture.jpg -p ikanxue
第二十九关:
同上:一样的题目
第三十关:
难度:简单,动不了?
第三十一关:
难度:简单 类型:XFF
curl -H "X-Forwarded-For:127.0.0.1" http://03ab9ce1-032a-483a-ae9f-92dab4dac4fc.node.pediy.com:81/Game/6-432f430c11fd0943/challenge6.php
第三十二关:
难度:简单 类型:弱口令
爆破:admin,1234321 弱口令
第三十三关:
给我一块饼干
难度:简单/类型:伪造
时间戳base64编码 替换大一点即可。
第三十四关:
前端登录
难度:简单/类型:js逆向
a = [62, 52, 57, 63, 35, 58, 106, 105, 61, 106, 104, 108, 60, 60, 96, 60, 58, 105, 108, 105, 106, 111, 59, 97, 62, 59, 97, 108, 104, 108, 107, 110, 57, 57, 62, 105, 109, 37]
for c in a: print(chr(c ^ 88),end='')#flag{b21e204dd8db14127c9fc940436aaf15}
第三十五关:
什么东西泄露了
难度:简单/类型:信息泄露
在线解密:
https://www.bejson.com/enc/rsa/
第三十六关:
看不懂/难度:简单/类型:js逆向
在线解密:
https://deobfuscate.io/
第三十七关:
看雪留言板,这题一解,所以到这就结束!
学习总结-电子取证技能辅导!!!
这篇需要总结下,闯关类型题目也是中等适中,对新手比较友好
排版偏手机观看,手机看效果体验更好哦!
需要交流或者培训可以联系小编加群交流!
2025第二届全国行业赛-电子取证师需要资源dd
初赛培训班10+学员全部晋级复赛,可以指导!
此次2025行业赛圆满结束!
需要备战2027第三届网络安全行业赛-电子取证赛道的可以联系小编.适合取证感兴趣的小伙伴,0基础也能学。
数据安全/信息安全评估赛项星球
第二届数字化职工组/数据安全技能大赛(备战第三届可以培训)
第四届全国数据安全职业技能竞赛(美亚数据安全管理员/可培训)
知识星球599/年(后续有最新资源可能涨价,购买前私信小编!)
关注我们
欢迎关注鱼影安全社区,专注CTF,职业技能大赛中高职技能培训,信息安全评估高职组赛项,金砖一带一路诸暨技能大赛:企业信息安全赛道-攻防治理赛道-首届金砖虚拟网络建设赛道-创信大赛,世界技能大赛省选拔赛,企业赛,行业赛,电子取证和CTF系列培训,工控CTF系列,第二届网络安全行业职业技能大赛(电子取证师、渗透测试员、网络安全管理员、网络信息审核员)等。
鱼影安全团队招人啦,有感兴趣的师傅可以私信我
需要学习数据安全管理员和CTF安全培训,可以联系小编!
点分享
点收藏
点在看
点点赞
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:鱼影安全 落寞的鱼
落寞的鱼《看雪CTF-GAME闯关秘籍Writeup》