BugKu:0和1的故事(writeup)

Posted 哇哈爱吃糖

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了BugKu:0和1的故事(writeup)相关的知识,希望对你有一定的参考价值。

题目附件包含一个文本文件,内容是一个25x25的01矩阵,在文末给出。从评论区的信息得知如果用0表示一个黑色方块1表示一个白色方块的话该01矩阵实际上是一个缺少定位标志的二维码,如图左。然后通过查询wiki词条可以知道25x25为版本2的二维码尺寸,找一个已有的版本2二维码对比即可得到定位标志的实际图样,将其加到三个角上即可得到一个有效的二维码,如图右。

缺少定位标志添加定位标志

扫描添加定位标志后的二维码即可得到flag为flag{QR_c0de_1s_1nterest1n9},也可以使用一些在线识别二维码的网站,如草料二维码。原始附件转二维码的Python脚本如下:

from PIL import Image

with open("1和0的故事.txt", "r") as f:
    data = [list(i.strip()) for i in f.readlines()]

# 7*7的定位标志
flag = [
    [1, 1, 1, 1, 1, 1, 1],
    [1, 0, 0, 0, 0, 0, 1],
    [1, 0, 1, 1, 1, 0, 1],
    [1, 0, 1, 1, 1, 0, 1],
    [1, 0, 1, 1, 1, 0, 1],
    [1, 0, 0, 0, 0, 0, 1],
    [1, 1, 1, 1, 1, 1, 1]
]

img = Image.new("1", (25, 25))
for i in range(len(data)):
    for j in range(len(data[1])):
        # 左上角定位标志
        if i < 7 and j < 7:
            img.putpixel((i, j), flag[i][j] ^ 1)
        # 左下角定位标志
        elif i > 17 and j < 7:
            img.putpixel((i, j), flag[i-18][j] ^ 1)
        # 右上角定位标志
        elif i < 7 and j > 17:
            img.putpixel((i, j), flag[i][j-18] ^ 1)
        else:
            img.putpixel((i, j), int(data[i][j]) ^ 1)

img.resize((500, 500)).show()

附件内容:

0000000001110010000000000
0000000000011110100000000
0000000001110001000000000
0000000010111100000000000
0000000010101010000000000
0000000001100010100000000
0000000010101010100000000
0000000001000001100000000
1100011101110110100011000
0001000010110010010010100
0100111101000011101110011
0011110100101011001001001
1000001001100001001101000
1111000111111011100101000
1011011111001101111110111
1000110110010010101101100
1000111100111111111110111
0000000010110001100010100
0000000010010100101010001
0000000010101010100011001
0000000000100111111110010
0000000000011001011110111
0000000001001100100100001
0000000011000011011011001
0000000011010000101110101

以上是关于BugKu:0和1的故事(writeup)的主要内容,如果未能解决你的问题,请参考以下文章

第七届“湖湘杯” Bugku战队writeup

第七届“湖湘杯” Bugku战队writeup

bugku-writeup-Crypto-小山丘的秘密

bugku-writeup-web-源代码

bugku—Web_Writeup

bugku-writeup-web-game1