• 第五届浙江省大学生网络与信息安全竞赛-技能挑战赛WP


    Misc

    一、好怪哦

    下载下来得到一个数据逆置的压缩包,直接用逆置脚本

    1. input = open('fuck.zip', 'rb')
    2. input_all = input.read()
    3. ss = input_all[::-1]
    4. output = open('flag.zip', 'wb')
    5. output.write(ss)
    6. input.close()
    7. output.close()

    然后解压得到一个缺少png文件头的png文件,补上文件头:89 50 4e 47

    打开得到一张CRC有问题的图片,直接上脚本爆破即可拿到flag

    1. import binascii
    2. import struct
    3. import sys
    4. file = input("图片的地址")
    5. fr = open(file,'rb').read()
    6. data = bytearray(fr[0x0c:0x1d])
    7. crc32key = eval('0x'+str(binascii.b2a_hex(fr[0x1d:0x21]))[2:-1])
    8. #原来的代码: crc32key = eval(str(fr[29:33]).replace('\\x','').replace("b'",'0x').replace("'",''))
    9. n = 4095
    10. for w in range(n):
    11.    width = bytearray(struct.pack('>i', w))
    12.    for h in range(n):
    13.        height = bytearray(struct.pack('>i', h))
    14.        for x in range(4):
    15.            data[x+4] = width[x]
    16.            data[x+8] = height[x]
    17.        crc32result = binascii.crc32(data) & 0xffffffff
    18.        if crc32result == crc32key:
    19.            print(width,height)
    20.            newpic = bytearray(fr)
    21.            for x in range(4):
    22.                newpic[x+16] = width[x]
    23.                newpic[x+20] = height[x]
    24.            fw = open(file+'.png','wb')
    25.            fw.write(newpic)
    26.            fw.close
    27.            sys.exit()

    二、神奇的棋盘

    下载解压得到一张棋盘图片和一段棋盘加密后的密码:

    这段密码是古典密码中的Polybius密码,直接去除逗号拉入随波逐流解密

    得到密文:agaxxdaggvggvdvadavxdgadvgdvaaddddfxafafdgdvxxdggdggdxddfddxvgxadgvdfxvvaaddxdxxaddvgggxgxxxxgxxggxgdvvvgggagaaaagaaggagdddagagggaggagagaaavaaaxgxgggxggxgxgxxxv

    然后用zsteg跑那个board的图片,得到一串base32,解密得到位移key:

    JRQXG5CLMV4XWWLVONQXS6LEON6Q====

    LastKey{Yusayyds}

    然后直接输入棋盘中的字符开始解密:

     

    然后得到一串十六进制字符串 ,直接十六进制转字符串得到flag

    【因为省赛不能联网,只能用本地的工具,然后这个Hex好像有点问题】

    后来发现最新版的CyberChef_v9.46.5可以解出来

    三、segmentFlow

    下载后得到一个压缩包,里面有一个流量文件和七个4字节的文本文件

    使用Github上的CRC爆破脚本进行爆破每个文本文件的CRC值,得到解压密码

     

    用tshark导出数据

    tshark -r segmentFlow.pcapng -Y "http.request" -T fields -e http.file_data > data1.txt

    1. f = open('data.txt','r')
    2. data=f.read()
    3. data=data.split('&sa066b32bfb3e7=')
    4. #print(data.split('&sa066b32bfb3e7='))
    5. #以这个字符串为分隔符,后面八位就是我们要的数据
    6. for i in range(1,len(data)):
    7.    #从第一个到最后一个列表
    8.    print(data[i][:8],end='')
    9.    #一个列表元素的前八位

    打开压缩包得到flag

    reverse

    一、ManyCheck

    三层验证,前两层拉入ida看或者直接用计算器算出结果:77、55、49

    第三层根据ida里的算法,直接写个for循环就出来了:1198089844

    1. #include
    2. using namespace std;
    3. int main()
    4. {
    5.   for (int v1 = 0; v1 <= 1718896489; v1++)
    6.   {
    7.       int v2 = 16;
    8.       int v3 = (v1 >> (32 - v2)) | (v1 << v2);
    9.       if (v3 == 1718896489)
    10.           printf("%d", v1);
    11.   }
    12.   return 0;
    13. }

    Web

    一、nisc_easyweb

    1.扫出 /api/record/文件 里面有个发送get请求功能的php,利用hackbar发送get请求即可得到flag

    二、nisc_学校门户网站

    不知道是不是非预期,直接注册然后登录即可得到flag

    三、吃豆人吃豆魂

    进入web开发者工具,找到game的源码,在index.js中有对生命值和分数的定义,修改分数为10000000,再次请求页面,直接弹出flag

  • 相关阅读:
    Jackson 注解 使用示例
    论文阅读_对比学习_SimCLR
    网课搜题公众号 接口查题 查课接口 网课答案题库对接教程
    工业和能源1994-2019年省级面板数据
    C/C++陷阱——临时变量的产生和特性
    计算机体系结构:不同改进方案的性价比计算
    全球No.1集装箱人工智能企业CIMCAI中集飞瞳,集装箱信息识别铅封号识别API免费,集装箱识别率99.98%高泛化性,全球两千+企业用户使用
    Go 命名规范:全面指南
    【游戏引擎Easy2D】学C++还在面对黑框框?那是你没看这篇文,游戏引擎教会你
    Python之FastAPI返回音视频流
  • 原文地址:https://blog.csdn.net/qq_60923912/article/details/126919836