“华为杯”第二届研究生网络安全创新大赛赛题

sbhglqy   ·   发表于 2023-09-28 10:59:41   ·   CTF&WP专版

前言:“华为杯”第二届研究生网络安全创新大赛是一项国家级的比赛,初赛的形式采用ctf夺旗赛,涉及web、crypto、misc、reverse、pwn五个方面。经过昨天8个小时的奋斗,只做出来三题,遗憾止步于决赛。这里只是做个交流,我会把题目附件上传,希望有兴趣的和有能力的朋友共同交流,只是希望大家不要外传,切记切记!!!

一、A_Small_Secret

1.解压附件,得到一个txt文件和一个zip压缩包,先打开txt看看。

  1. 除了base64还有什么编码
  2. MFZWIYLEMFSA====

一看就是base32编码,解码得到”asdadad”。



2.再看zip压缩包,是加密的,密码就是base32解出来得到的asdadad,解压得到flag.txt。



一看文件头是504b0304,就是一个zip压缩包,复制到16进制编辑器中,保存为1.zip。解压,看到如下目录。



其实是个word文档,修改后缀名为doc后打开。



涉及word隐写了,先全选,然后修改文字颜色,拉到文件末尾,可以看到flag字样。



base64解码一下,发现解出来是个salted文件。



有可能是AES加密或者Rabbit加密,但是还缺少一个密钥。再记起刚刚解压压缩包时候的密码,成功解密,拿到base64编码字符串,再解码即可拿到flag。



二、loopQR

1.解压压缩包,拿到1043张图片。



随便打开几张图片看看,没什么东西。zsteg等隐写命令也没有看到信息,最后用stegsolve工具发现在图片的green plane 0通道或者red plane 0通道或者blue plane 0通道或者alpha plane 0通道存在二维码。





那么这题看来就是要把1043张图片中的二维码全部给提取出来,下面是脚本。

  1. import cv2
  2. import numpy as np
  3. import matplotlib.pyplot as plt
  4. import os
  5. import glob
  6. WSI_MASK_PATH = 'xxxxx' # 存放图片的文件夹路径
  7. paths = glob.glob(os.path.join(WSI_MASK_PATH, '*.png'))
  8. print(paths)
  9. paths.sort()
  10. for path in paths:
  11. # path="xxxx"
  12. # 读取图片文件
  13. img = cv2.imread(path, cv2.IMREAD_UNCHANGED)
  14. # 提取每个像素点的红色分量的最低有效位
  15. red_plane_0 = np.bitwise_and(img[:, :, 2], 1)
  16. # 提取每个像素点的绿色分量的最低有效位
  17. green_plane_0 = np.bitwise_and(img[:, :, 1], 1)
  18. # 提取每个像素点的蓝色分量的最低有效位
  19. blue_plane_0 = np.bitwise_and(img[:, :, 0], 1)
  20. # 提取每个像素点的透明分量的最低有效位
  21. alpha_plane_0 = np.bitwise_and(img[:, :, 3], 1)
  22. tempPath = "xxxxx/loopQR/out/{}".format(path[-8:-4])
  23. os.mkdir(tempPath)
  24. os.chdir(tempPath)
  25. # 将提取后的二维数组转换为8位无符号整数类型,以便保存为图片文件
  26. blue_plane_0 = blue_plane_0.astype(np.uint8)
  27. # 将提取后的二维数组乘以255,以便将0和1转换为0和255,即黑白两色
  28. blue_plane_0 = blue_plane_0 * 255
  29. alpha_plane_0 = alpha_plane_0.astype(np.uint8)
  30. alpha_plane_0 = alpha_plane_0 * 255
  31. green_plane_0 = green_plane_0.astype(np.uint8)
  32. green_plane_0 = green_plane_0 * 255
  33. red_plane_0 = red_plane_0.astype(np.uint8)
  34. red_plane_0 = red_plane_0 * 255
  35. # 保存提取后的二维数组为新的图片文件
  36. cv2.imwrite("green_plane_0.png", green_plane_0)
  37. cv2.imwrite("red_plane_0.png", red_plane_0)
  38. cv2.imwrite("blue_plane_0.png", blue_plane_0)
  39. cv2.imwrite("alpha_plane_0.png", alpha_plane_0)
更多内容已被隐藏
主题内容你需要付费可见 (点击购买) 售价:2 金币
用户名金币积分时间理由
Track-魔方 500.00 0 2023-10-07 20:08:28 深度 200 普适 100 可读200

打赏我,让我更有动力~

附件列表

APACHE-CGI-PWN.zip   文件大小:0.49M (下载次数:0)   售价:1

easy_xors-password123.zip   文件大小:0.006M (下载次数:1)   售价:1

A_Small_Secret.zip   文件大小:0.012M (下载次数:0)   售价:1

EC_Party-I-chall.zip   文件大小:0.001M (下载次数:0)   售价:1

ez_ssp.rar   文件大小:0.643M (下载次数:0)   售价:1

lin-password123.zip   文件大小:1.197M (下载次数:0)   售价:1

loopQR.zip   文件大小:27.463M (下载次数:0)   售价:1

master-of-asm.zip   文件大小:0.001M (下载次数:0)   售价:1

my_lcg_task.zip   文件大小:0.001M (下载次数:0)   售价:1

next-prime-task.zip   文件大小:0.001M (下载次数:0)   售价:1

T4ee-password123.zip   文件大小:0.012M (下载次数:0)   售价:1

src.zip   文件大小:0.104M (下载次数:0)   售价:1

StepBystep.rar   文件大小:0.074M (下载次数:0)   售价:1

Mysterious_Port.zip   文件大小:0.135M (下载次数:0)   售价:1

string_emulator.zip   文件大小:0.827M (下载次数:0)   售价:1

Robbie gave up.zip   文件大小:25.035M (下载次数:0)   售价:1

1 条回复   |  直到 2023-10-8 | 709 次浏览

量如江海
发表于 2023-10-8

佬,搞CTF有没有什么建议的

评论列表

  • 加载数据中...

编写评论内容
登录后才可发表内容
返回顶部 投诉反馈

© 2016 - 2024 掌控者 All Rights Reserved.