如何做CTF的二维码处理,CTF二维码解题

一、 二维码背景

二维码在当今已经深入我们生活的方方面面,出门带个手机一切都可以搞定。即使是街边小摊位也能轻松扫码支付,真的不要太方便了,既然二维码如此厉害,我们就需要深入去了解一下它,并且二维码也是CTF中的一个重要的考点。今天我们就分享一下二维码的相关知识,以及如何在CTF中解答二维码的问题。

二、了解二维码基本知识

二维码,也被称为二维条码,是一种在平面上通过黑白像素的排列来表示信息的图形符号。它能够在横向和纵向两个维度上存储大量的信息,并且可以被各种设备快速准确地读取。

首先,我们来了解一下二维码的构成。一个标准的二维码通常由四个部分组成:位置检测图案、对齐图案、时间图案和数据图案。其中,位置检测图案和对齐图案用于帮助扫描设备确定二维码的位置和方向;时间图案用于记录二维码生成的时间,以便在扫描时进行有效性验证;而数据图案则是真正存储信息的部分。
如何做CTF的二维码处理,CTF二维码解题_第1张图片
如需要进一步了解二维码可参考二维码实现原理
小结一下,二维码的优点主要体现在以下几个方面:首先,二维码的信息容量大,可以存储大量的数据;其次,二维码的编码方式简单,易于制作和扫描;再次,二维码的识别速度快,可以在瞬间完成;最后,二维码的可靠性高,即使在受损的情况下,也能保持数据的完整性。
然而,二维码也存在一些局限性。例如,由于二维码是通过黑白像素的排列来表示信息的,因此,如果二维码的颜色过于复杂或者背景过于花哨,可能会影响扫描设备的识别效果。此外,二维码的尺寸也有一定的限制,如果尺寸过大或者过小,也可能会影响扫描的准确性。

常用矩阵式二维码,典型的码制如: Aztec、Maxi Code、QR Code、 Data Matrix等,这里不再过多累述。

三.掌握二维码的解码技术

了解了二维码的相关信息之后,对于做CTF,我们更关心如何进行二维码的破解技术。接下来我们要讨论一下CTF中二维码的解码技术
包括使用在线解码工具、扫描二维码、使用命令行工具等方法。
1.如果直接给出是二维码
首推,QR Research工具
适用场景:题目直接给出一个二维码
如何做CTF的二维码处理,CTF二维码解题_第2张图片
也许Flag不会这么轻易给我们,结合之前分享的图片隐写操作,有可能会隐藏其他信息,可以按照这类方式进行破解。

2.给出的二维码高度不足
这种情况是给出的图片高度不够,只需要修改图片高度即可
如何做CTF的二维码处理,CTF二维码解题_第3张图片
打开发现二维码图片只有一半,通过使用010Editor更改图片高度即可
如何做CTF的二维码处理,CTF二维码解题_第4张图片
3.二维码缺失部分(如缺失定位块)
如何做CTF的二维码处理,CTF二维码解题_第5张图片
通过PhotoShop或画图工具,将二维码中缺失的定位块进行补全即可完成扫码,这类问题主要考察对二维码定位块的理解。

PS:二维码的定位块作用:是帮助扫描设备快速准确地识别二维码的位置和大小,从而确保扫描过程的顺利进行。定位块通常位于二维码的四个角落,它们包含了一些特定的图案和编码信息,这些信息可以帮助扫描设备确定二维码的方向和位置。
当扫描设备开始扫描二维码时,它会首先寻找定位块。一旦找到了定位块,扫描设备就可以根据定位块的信息来确定二维码的方向和位置,然后对整个二维码进行解码。这个过程可以大大提高扫描速度和准确性,避免因为二维码的位置或方向错误而导致扫描失败。
此外,定位块还可以用于检测二维码是否被篡改。由于定位块的信息是唯一的,如果扫描设备发现定位块的信息与预期不符,那么它就可以判断二维码可能已经被篡改,从而拒绝解码。

4.将敏感信息隐藏于二维码扫码结果中
比如题目给一个二维码,进行扫码得到的是一个链接,手机识别后会自动访问。所以将链接单独提取出来:
https://cn.bing.com/search?q=key%E4%B8%8D%E5%9C%A8%E8%BF%99%E9%87%8C&m=10210897103375566531005253102975053545155505050521025256555254995410298561015151985150375568&qs=n&form=QBRE&sp=-1&sc=0-38&sk=&cvid=2CE15329C18147CBA4C1CA97C8E1BB8C

里面比较值得怀疑的有两个信息:
10210897103375566531005253102975053545155505050521025256555254995410298561015151985150375568

2CE15329C18147CBA4C1CA97C8E1BB8C

其中第一条可疑信息直接告诉我们它是flag
为什么?

贴下各类flag的加密密文: flag是flag
01100110 01101100 01100001 01100111是flag(二进制)
146 154 141 147 是flag(八进制)
102 108 97 103 是flag(十进制)
66 6c 61 67是flag(十六进制)
ZmxhZ是flag(base64)
MZWGCZ是flag(base32)
synt是flag(rot13)
…-. .-… .- --.是flag(莫斯码)
21 31 11 22是flag(敲击码)
AABAB ABABB AAAAA AABBA是flag(培根密码)

所以,将第一条信息用脚本或者离线工具10进制转字符串得到:
flag%7B5d45fa256372224f48746c6fb8e33b32%7D
其中%7B和%7D是转义字符,将其改为{}则得到flag

5.二维码需要反色处理
若二维码颜色反了,中间为白或者颜色不对则需要画图工具取反色(不能是画笔状态,要选择状态),再扫描
原因:二维码将应该黑色的地方设置成白色,应该白色的地方设置成黑色,这导致扫码的时候,无法识别二维码格式,所以需要进行反色处理,一般通过画图工具实现。
如何做CTF的二维码处理,CTF二维码解题_第6张图片
6.二维码拼图
场景:给出了多张图,可以看出每张图其实就是二维码的一部分,我们需要根据给出的二维码各个部分,将二维码进行还原
意图:主要考察对二维码的布局格式整体理解
如何做CTF的二维码处理,CTF二维码解题_第7张图片
方法,首先分析定位块,即左上、左下、右上的定位点对不对,其次是中间的6个定位点也不够。考虑是否是应该进行旋转。
工具:使用画图工具,或者使用WPS的PPT功能
如何做CTF的二维码处理,CTF二维码解题_第8张图片
插入图片,会有网格线和旋转功能
如何做CTF的二维码处理,CTF二维码解题_第9张图片
拼接完成之后如果能够扫码,得到结果则正确,否则考虑调整顺序和进行图片旋转。

四、总结

这里已经分享了多种ctf关于二维码的提醒,通常二维码不会单单孤立的出现,一般会配合压缩包,密码学等很多其他的技术进行配合出现。所以单单掌握二维码技术可以帮助我们解题的时候向前一步,可能还得不到结果,所以我们还需要掌握一些其他的技术,配合二维码进行整个CTF赛题的破解。
当然二维码提醒也还有其他很多很溜的操作,比如倒置、旋转、裁剪以及改变颜色、调整亮度、对比度、尺寸等操作。
另外.还可以使用Steganography技术隐藏二维码信息,如将二维码信息隐藏在图片的像素中或使用音频、视频等多媒体文件进行隐藏。

二维码隐写术是一种将信息隐藏在二维码中的方法。这种方法的主要目标是使二维码看起来与普通的二维码无异,但实际上它包含了额外的信息。这种技术可以用于各种目的,例如传递秘密信息、进行安全通信等。为了确保信息的安全性,我们还需要考虑如何防止信息被非法读取或篡改。这可能需要采用一些加密技术,如公钥加密、私钥加密等。总的来说,二维码隐写术是一种非常有趣且实用的技术。通过这种技术,我们可以将信息隐藏在看似普通的二维码中,从而实现各种复杂的应用。

你可能感兴趣的:(二维码安全,信息隐写,CTF二维码)