sdctf2022_Ishihara_test++

sdctf2022_Ishihara_test++

(1)前言

考试月,太忙了,赶紧找点题目来水水博客。

(2)题目描述:

I don’t think the person who made this knew what they were doing. Aren’t you supposed to see some kind of number or something in the middle?

我认为制作这个的人不知道他们在做什么。你不应该在中间看到一些数字吗?
图片.png

(3)根据题目的描述,即flag应该在这张图片的中间,用txt打开,发现这张图是由,c1~c6一共6中颜色的圆,而且每一个圆的大小一般都不同,其实这6种颜色十分相近,如果仅看成颜色则意义不大,所以我们猜测flag与这6种有关。

c1{fill:#89a1d1;}.c2{fill:#89a1d2;}.c3{fill:#89a1d3;}.c4{fill:#89a1d4;}.c5{fill:#89a1d5;}.c6{fill:#89a1d6;}

我们最后要得到的flag在图片中间,那么我们可以删掉一下点,得到我们想要的。我们对c1~c6进行排序,一共有2^6,即64种情况,我们进行尝试。最后发现在C1-C3-C6这1种情况下可以得到flag。

(4)脚本

#!/usr/bin/env python3
header = '''<?xml version="1.0" encoding="UTF-8" ?>
<svg width="1920" height="1080" viewBox="0 0 1920 1080" xmlns="http://www.w3.org/2000/svg" version="1.1">'''
footer = '</svg>'
c = []

with open("flag.svg", "r") as f:
    content = f.read().split('\n')
    for i in content:
        if "c1" in i:
            c.append(i)
        # if "c2" in i:
            # c.append(i)
        if "c3" in i:
            c.append(i)
        # if "c4" in i:
            # c.append(i)
        # if "c5" in i:
            # c.append(i)
        if "c6" in i:
            c.append(i)

with open("flag1.svg", "w") as f:

    f.write(f"{header}\n")

    for i in c:
        f.write(f"{i}\n")

    f.write(f"{footer}")

(5)结果
图片.png

sdctf{c0untle55_col0rfu1-c0lors_cov3ring_3veryth1ng}
打赏
  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2021-2023 00hello00

请我喝杯咖啡吧~

支付宝
微信