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)
相关推荐
速盾cdn9 分钟前
速盾:CDN缓存的工作原理是什么?
网络·安全·web安全
亚信安全官方账号28 分钟前
亚信安全发布《2024年第三季度网络安全威胁报告》
网络安全
IPFoxy66635 分钟前
跨境出海安全:如何防止PayPal账户被风控?
安全
龙信科技35 分钟前
【电子物证培训】龙信助力三明市公安局电子物证取证竞赛
安全
zhd15306915625ff1 小时前
库卡机器人维护需要注意哪些事项
安全·机器人·自动化
网络安全-杰克1 小时前
网络安全概论
网络·web安全·php
安全二次方security²2 小时前
ARM CCA机密计算安全模型之概述
安全·安全模型·cca·机密计算·领域管理扩展·arm-v9·平台安全服务
黑客Ela2 小时前
网络安全中常用浏览器插件、拓展
网络·安全·web安全·网络安全·php
西京刀客2 小时前
密码学之柯克霍夫原则(Kerckhoff原则)
安全·密码学
Gworg3 小时前
创建HTTPS网站
安全·https·ssl