青少年CTF论坛»论坛 学习资源 竞赛WP 查看内容

0 评论

0 收藏

分享

【ISCC2023】MISC-好看的维吾尔族小姐姐

题目描述
五十六个民族,五十六支花,五十六个兄弟姐妹是一家。现如今,民族团结的思想早已深入人心,而维吾尔族又是中华民族的重要组成部分,解决本题需要各位解题人知晓维吾尔族同胞的说话方式。
64744805f3489.png
题目分析
下载附件,得到一个名为” 古力娜扎” 的文件。
6474481b4f251.png
由于 Mac 上没有 010Editor(不是么有,是要付费呀!),我就经验分析了。
647448350b16f.png
64744842a409a.png
得出这玩意是个 PNG 图片。
6474484fe721d.png
Mac 和 Linux 是有 CRC 效验的,所以这题应该是宽高的问题。

解题 1
64744864421bd.png
得到 PNG 宽高,修复宽高。
64744876bf6f6.png
我们观察发现,这下面是一个被翻转的 data matrix,接下来我们还要识别,这些 Python 都可以完成。

[Python] 纯文本查看 复制代码
import cv2
import pylibdmtx.pylibdmtx as dmtx

img = cv2.imread("timu.png")

flipped_img = cv2.flip(img, 1) # 翻转图片

cv2.imwrite("1.png", flipped_img)

img = cv2.imread("1.png") # 识别码

gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
decoded_objects = dmtx.decode(gray)
flags = ""
for obj in decoded_objects:
    flags+= obj.data.decode()

print(flags)


接着我们发现了一串反着的 HTML 实体编码

我们修改上面的代码,做出一把梭脚本:

[Python] 纯文本查看 复制代码
import cv2
import pylibdmtx.pylibdmtx as dmtx
from html.parser import HTMLParser
import html

img = cv2.imread("test.png")

flipped_img = cv2.flip(img, 1) # 翻转图片

cv2.imwrite("1.png", flipped_img)

img = cv2.imread("1.png") # 识别码

gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
decoded_objects = dmtx.decode(gray)
flags = ""
for obj in decoded_objects:
    flags+= obj.data.decode()

flag=flags[::-1]
print(html.unescape(flag)) # 解HTML实体编码



至此,我们就可以完整的做出这道题目并拿到 FLAG 了。


第二种步骤(Windows做法可以参考文库文章):https://docs.qsnctf.com/qsnctf/3833.html#%E8%A7%A3%E9%A2%982



回复

举报 使用道具

上一篇: 【Pikachu 靶场】皮卡丘靶场使用说明

下一篇: 没有了

全部回复
暂无回帖,快来参与回复吧
Moxin
管理员
主题 51
回复 30
粉丝 0
快速回复 返回顶部 返回列表