前言
可以上网查查了解一下二维码的原理,能学到一些知识也对我们做CTF二维码题有一定帮助。二维码出现在CTF题中一般都是穿插在其他题中,或者整体就是考查都是二维码,整体来说不算太难,如果会PS会更容易一些。推荐文章:CTF中二维码题目及答题技巧总结(二)。
题目复现
实验吧 - 复杂的QR_code
题目地址:http://www.shiyanbar.com/ctf/1856解题链接:http://ctf5.shiyanbar.com/stega/QR_code.png
打开链接,发现是一张二维码,尝试扫一下

扫出来是:secret is here
然后放在winhex里看一下,发现有一个隐藏的zip文件,zip里面有一个txt文件

所以binwalk一下,得到一个压缩包打开,是一个加密的txt文件,文件名叫4number.txt,密码应该就是4个数字了,那就暴力破解,可以用archpr(也可以用kali带的叫fcrackzip的工具)

密码就是7639了,打开文件输入密码得到flag:CTF{vjpw_wnoei}
bugkuCTF - 图穷匕见
解题链接:https://ctf.bugku.com/files/f6697e1f904a0c30b56f72fcf0023434/paintpaintpaint.jpg

保存图片,用winhex打开找到jpg文件尾FF D9发现后有一长串数字

观察下应该是16进制,将之后的数据保存到txt中,用notepad++打开,有一个插件可以解码


得到很多坐标,所以就要“画图”了,用gnuplot(下载)这个工具将这些坐标做成一张图即可,不过要先将坐标改成gnuplot能识别的坐标

把txt文件放到gnuplot的bin目录下,运行gnuplot


得到一个二维码

扫描得到flag:flag{40fc0a979f759c8892f4dc045e28b820}
bugkuCTF - 很普通的数独
题目地址:https://ctf.bugku.com/challenges#%E5%BE%88%E6%99%AE%E9%80%9A%E7%9A%84%E6%95%B0%E7%8B%AC(ISCCCTF)
下载压缩包后缀名改成.zip,打开后发现有25张数独的图片

然后呢??看了大佬wp才明白这题是个啥
把这25张图片弄成5x5排列发现这其实是张二维码。1.png、5.png、21.png仔细看看就是是二维码的定位形状,三个角上的方形块,1.png是二维码右上角、5.png是二维码左下角、21.png是二维码左上角,所以把这三张换下顺序,1.png、5.png、21.png重命名成:5.png、21.png、1.png。
然后把有数字的格记为数字1(代表黑色),没有的记为0(代表白色),保存为txt文件
1 | 111111101010101000101000001111110000101111111 |
再把这些数字用python脚本画出二维码
1 | from PIL import Image |
把txt文件放到python目录下,运行python脚本,得到二维码(如果运行python脚本是出现UnicodeDecodeError: ‘gbk’ codec can’t decode byte 0xfe in position 0: illegal multibyte sequence错误,用notepad++打开txt文件将编码改为utf-8编码就行了)

扫描二维码,得到
1 | Vm0xd1NtUXlWa1pPVldoVFlUSlNjRlJVVGtOamJGWnlWMjFHVlUxV1ZqTldNakZIWVcxS1IxTnNhRmhoTVZweVdWUkdXbVZHWkhOWGJGcHBWa1paZWxaclpEUmhNVXBYVW14V2FHVnFRVGs9 |
多次base64解码应该是7次,得到flag:flag{y0ud1any1s1}
参考文章:https://blog.csdn.net/zz_Caleb/article/details/88800201
bugkuCTF - 闪的好快
解题链接:https://ctf.bugku.com/files/6dcac03199e58749725cbcd9cc958a9b/masterGO.gif
打开后是一个二维码的gif动图

那就把每帧分开,可以用WPS图片查看也可以用stegsolve的Analysis->Frame Browser查看,有18张图片,挨个扫下得到flag:SYC{F1aSh_so_f4sT}
bugkuCTF - 多种方法解决
解题链接:http://123.206.87.240:8002/misc/3.zip
题目内容:在做题过程中你会得到一个二维码图片
下载压缩包打开发现是一个exe文件,放到winhex里面查看发现


所以这里要base64编码还原成图片,将文件后缀名改成.txt复制内容,在线转换,得到二维码

扫描二维码得到flag:KEY{dca57f966e4e4e31fd5b15417da63269}
bugkuCTF - 普通的二维码
题目地址:https://ctf.bugku.com/challenges#%E6%99%AE%E9%80%9A%E7%9A%84%E4%BA%8C%E7%BB%B4%E7%A0%81
下载压缩包打开有一张二维码图片

扫描得到:哈哈!就不告诉你flag就在这里!
没有什么用,那应该有隐藏的文件,放到winhex中查看

末尾有一串数字,观察右边数字只有0~7,所以可能是八进制,查下ASCII码表发现146就是f,然后就是3个数字一组,由八进制转换成字符了,可以使用python脚本:
1 | a=[146,154,141,147,173,110,141,166,145,137,171,60,125,137,120,171,137,163,143,162,151,160,164,137,117,164,143,137,124,157,137,124,145,156,137,101,163,143,151,151,41,175] |
运行脚本得到flag:flag{Have_y0U_Py_script_Otc_To_Ten_Ascii!}