Catf1ag CTF Crypto(六)

前言

Catf1agCTF 是一个面向所有CTF(Capture The Flag)爱好者的综合训练平台,尤其适合新手学习和提升技能 。该平台由catf1ag团队打造,拥有超过200个原创题目,题目设计注重知识点的掌握,旨在帮助新手掌握CTF相关的各种技能 。除了新手题目,平台也包含难度不一的题目,适合不同水平的CTF参与者 。

平台上的题目类型多样,包括WEB、MISC、CRYPTO、LINUX、PWN/ATTACK、REVERSE等,题目分数制度从60分到100分不等,难度从1星到5星 。题目提交时需要包含完整的题目环境、flag以及writeup,以确保题目的完整性和可解性 。

此外,Catf1agCTF平台还提供了一些辅助工具和资源,如在线工具箱、SRC资料和HW资料等,以帮助用户更好地进行学习和实战演练 。平台的网址为 https://catf1ag.cn/,有意向的用户可以通过官方邮箱catf1ag@163.com进行联系 。对于想要加入交流的用户,平台还提供了官方QQ群和频道,方便用户之间的互动和交流 。

需要注意的是,平台上的部分题目可能需要特定的环境配置,例如WEB题目会包含dockerfile,而PWN/ATTACK题目则必须包含dockerfile以确保题目环境的完整性 。对于题目的flag格式,平台有统一的要求,即flag需要以"catf1ag{}"的格式呈现 。

总的来说,Catf1agCTF是一个资源丰富、适合各个水平CTF爱好者的训练平台,无论是新手还是有经验的参与者,都能在这里找到适合自己的学习和提升机会

一、RSA-3

打开靶场

bash 复制代码
n1= 183469842288888698417653802680141427113
c1= 164902072322430301806156830767158214618
n2= 132129814650346877352056990357711290601
c2= 72639976324405495408757557698962328431
n3= 231012220957834183374915196020656181347
c3= 43776935818299645885303359439033653256
python 复制代码
import gmpy2
import libnum

n1 = 183469842288888698417653802680141427113
c1 = 164902072322430301806156830767158214618
n2 = 132129814650346877352056990357711290601
c2 = 72639976324405495408757557698962328431
n3 = 231012220957834183374915196020656181347
c3 = 43776935818299645885303359439033653256


def GCRT(mi, ai):
    # 当前的模数,初始化为第一个模数 mi[0]
    # 当前的余数,初始化为第一个密文 ai[0]
    curm, cura = mi[0], ai[0]

    # 遍历后续的模数 m 和对应的密文 a
    for (m, a) in zip(mi[1:], ai[1:]):
        # 计算当前模数和新模数的最大公约数 d
        d = gmpy2.gcd(curm, m)

        # 计算余数的差 c
        c = a - cura

        # 通过乘以逆元计算出新余数的比例 K
        K = c // d * gmpy2.invert(curm // d, m // d)

        # 更新当前的余数 cura,并根据广义中国剩余定理重新计算新的 curm
        cura += curm * K
        curm = curm * m // d
        cura %= curm
    return cura % curm, curm


C, N = GCRT([n1, n2, n3], [c1, c2, c3])
print(libnum.n2s(int(C)))

二、神秘的坐标

打开靶场

得到一堆数字

一组数字代表一个键盘上字母,例如28,表示键盘第二行第八个即 K

catf1ag{keyboradcoordinates}

三、倪九岚

打开靶场

根据题目的谐音"逆九栏"尝试先将字符串逆序,再栅栏解密

catf1ag{RailfenceCipher}

四、偶变异了

打开靶场

打开文件如下

python 复制代码
bcwb4g`s;hj>;j:t<%"$q;&)|y6%x-
AG@ELINP

推测经过了异或规则

python 复制代码
a = '''bcwb4g`s;hj>;j:t<%"$q;&)|y6%x-
AG@ELINP'''

f = 1

for i in a:
    # ord(i): 将字符 i 转换为其对应的ASCII值(整数)
    # ord(i) ^ f: 将这个ASCII值与当前的 f 进行XOR操作
    #   XOR(异或)操作的特性是相同的二进制位会被置0,不同的会被置1。这意味着可以使用XOR操作来加密和解密字符,只要使用相同的关键值
    # chr(...):将XOR后的值转换回字符
    # end=''确保所有字符在同一行输出,不加任何额外的换行符
    print(chr(ord(i) ^ f), end='')
    f += 1

提交时将 * 改为 -

五、XOR

打开靶场

用'flag{'和密文前5个字符异或,推出字符'GAMEG',推测是GAME循环异或

python 复制代码
s='!-,"<#}|!#}q#lt#w#`qpw.h~wyvjru#"x.p$s/v%<'

x='GAME'

result=''

for i in range(len(s)):
    result += chr(ord(s[i]) ^ ord(x[i % 4]))

print(result)

六、原九小时AK赛 疑惑

打开靶场

题目

简单的异或运算

python 复制代码
keys1 = 'welcome_to_nine-ak_match_is_so_easy_!@!'

keys2 = '20 4 24 5 94 12 2 36 26 6 49 11 68 15 14 114 12 10 43 14 9 43 10 27 31 31 22 45 10 48 58 4 18 10 38 31 14 97 92'

keys2 = keys2.split()

flag = ''

for i in range(len(keys1)):
    flag += chr(ord(keys1[i]) ^ int(keys2[i]))
    
print(flag)
相关推荐
zhengfei61116 小时前
小白级手册——全面剖析红队信息收集思考
网络·安全·web安全
爱网络爱Linux16 小时前
网络安全与渗透测试实用工具大全
web安全·网络安全·信息安全·cisp-pte·cisp·cissp
xsc-xyc17 小时前
用 Tailscale + Syncthing 实现手机、电脑与 NAS 的跨网络文件同步
linux·网络·网络安全·智能手机·电脑
qq_4523962317 小时前
第十三篇:《K8s 安全基础:RBAC、ServiceAccount、Pod Security》
java·安全·kubernetes
TechWayfarer17 小时前
苏超赛事网站安全防护:WAF、DDoS与仿冒页面如何联动治理
网络·python·安全·flask·ddos
持敬chijing17 小时前
Web渗透之SQL注入-常用sql语句
sql·安全·web安全·网络安全
顾凌陵17 小时前
Web安全二阶段综合测试:知识点速查与实战技巧
安全·web安全
小羽网安18 小时前
2026年服务器安全防护实战:从被DDoS到完整防护体系搭建
服务器·安全·ddos
DolitD18 小时前
点盾云新增VR加密功能:一机一码,让VR内容分发安全可控
安全·vr·视频
marsh020619 小时前
62 openclaw金融级应用开发:安全与性能的双重挑战
安全·青少年编程·ai·金融