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)
相关推荐
漏洞谷27 分钟前
白帽子为什么几乎都绕不开 httpx:一款 HTTP 资产探测工具的技术价值
web安全·漏洞挖掘·安全工具
用户962377954483 天前
VulnHub DC-3 靶机渗透测试笔记
安全
叶落阁主4 天前
Tailscale 完全指南:从入门到私有 DERP 部署
运维·安全·远程工作
用户962377954486 天前
DVWA 靶场实验报告 (High Level)
安全
数据智能老司机6 天前
用于进攻性网络安全的智能体 AI——在 n8n 中构建你的第一个 AI 工作流
人工智能·安全·agent
数据智能老司机6 天前
用于进攻性网络安全的智能体 AI——智能体 AI 入门
人工智能·安全·agent
用户962377954486 天前
DVWA 靶场实验报告 (Medium Level)
安全
red1giant_star6 天前
S2-067 漏洞复现:Struts2 S2-067 文件上传路径穿越漏洞
安全
用户962377954486 天前
DVWA Weak Session IDs High 的 Cookie dvwaSession 为什么刷新不出来?
安全
cipher8 天前
ERC-4626 通胀攻击:DeFi 金库的"捐款陷阱"
前端·后端·安全