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)
相关推荐
雨奔9 小时前
Kubernetes PodSecurityPolicy 完全指南:Pod 安全准入控制核心
安全·容器·kubernetes
数字供应链安全产品选型10 小时前
2026 AI智能体安全治理深度报告:从“决策黑盒”到“全链路可溯”,悬镜灵境AIDR的技术架构与实践路径
人工智能·安全·架构
数字供应链安全产品选型10 小时前
2026 AI安全左移再进化:从IDE插件到CI门禁,悬镜灵境AIDR的全流程集成实践
ide·人工智能·安全
EasyDSS10 小时前
私有化音视频系统/智能会议管理系统EasyDSS私有化视频门户重构企业安全协作新模式
安全·重构·音视频
上海云盾第一敬业销售10 小时前
云原生时代的安全困境:容器化应用如何正确部署WAF防护?
安全·云原生
byoass10 小时前
企业云盘权限体系实战:从粗放授权到最小权限的踩坑与重构
网络·安全·重构·云计算
小江的记录本10 小时前
【分布式】分布式核心组件——分布式限流:固定窗口、滑动窗口、漏桶、令牌桶算法,网关层/服务层限流实现
java·分布式·后端·python·算法·安全·面试
广州山泉婚姻10 小时前
ECS 服务器的安全防护策略有哪些?
安全
菩提小狗20 小时前
每日安全情报报告 · 2026-04-20
网络安全·漏洞·cve·安全情报·每日安全
云安全助手21 小时前
2026年AI安全大模型实战指南:快快云安全AI能力全景解析
人工智能·网络安全·claude