Misc-机密信息(Write_up)

Misc-机密信息(Write_up)

Tags

题目信息

来源:2017-赛客夏令营-Misc-机密信息
难度:⭐⭐⭐⭐
平台地址CTFHub
notion image

技术要点

  • 后缀名更改
  • 压缩包暴力破解
  • 简单的Python编程

解题思路

题目附件给出一张图片,首先第一步思路,尝试扫描图片信息,查看是否可能隐藏flag
使用StegOnline对所给图片进行扫描,查看其RGBA值和字符串数值
notion image
  • 字符串数值
notion image
可以看到,有对应的flag.txt文件隐写在图片中,因此只要找到对应的txt文件就能找到flag的下落。
同时尝试修改图片对应的文件后缀名,发现当修改到.zip格式文件打开需要密码
notion image
因此,需要对该文加进行密码破译,此处采用暴力破解,此处我使用了Ziperello进行破解
notion image
破解成功,得到密码为:7878
成功得到对应的flag.txt文件
notion image
打开对应的txt文件,分析内容
可看到对应的文件为01组成的字符串,则可以联想到最后的flag一定是通过对应的编码进行而隐藏的信息
notion image
编写python程序把01字符串转化成二维码,扫码既得对应的flag信息
notion image
python代码如下(python代码):
from PIL import Image MAX = 70 img = Image.new("RGB",(MAX,MAX)) str  = "0000000000000000000000000000000000000000000000000000000000000000000000" str += "0000000000000000000000000000000000000000000000000000000000000000000000" str += "0011111111111110110000111110000001001111110000000110000011111111111100" str += "0011111111111110110000111110000001001111110000000110000011111111111100" str += "0011000000000110110000001111100110111111001111111001110011000000000100" str += "0011000000000110110000001111100110111111001111111001110011000000000100" str += "0011001111100110111111110001100111000011110111100111110011011111100100" str += "0011001111100110001111001000011111001111111000011111110011011111100100" str += "0011001111100110001111001000011111001111111000011111110011011111100100" str += "0011001111100110000011000000011001110011000111111000000011011111100100" str += "0011001111100110000011000000011001110011000111111000000011011111100100" str += "0011000000000110110000000110011111000011110001111111110011000000000100" str += "0011000000000110110000000110011111000011110001111111110011000000000100" str += "0011111111111110110011001001100110110011001001100110110011111111111100" str += "0011111111111110110011001001100110110011001001100110110011111111111100" str += "0000000000000000111100000110000110111100000111111000000000000000000000" str += "0000001111100110110000001110000111110011111000000111111111100001111100" str += "0000001111100110110000001110000111110011111000000111111111100001111100" str += "0000110111100001110011110000000000000011000110000001001100111110011000" str += "0000110111100001110011110000000000000011000110000001001100111110011000" str += "0011000000000110000011111110011000110000001000011111111111100111100100" str += "0011000000000110000011111110011000110000001000011111111111100111100100" str += "0000000001111001000011110110011111000000001001100001001100100000000000" str += "0000000001111001000011110110011111000000001001100001001100100000000000" str += "0000001110011110000011110111100000110000000110011001111111111001100100" str += "0000000001111001000011110000011000001111000000011110001100000000011000" str += "0000000001111001000011110000011000001111000000011110001100000000011000" str += "0011111110011110111111001001100111111111001111100001110011011111100100" str += "0011111110011110111111001001100111111111001111100001110011011111100100" str += "0011001000011000001100000001111111111111110001100001111111100000000100" str += "0011001000011000001100000001111111111111110001100001111111100000000100" str += "0011001001100111111100111110011111001100000111111111110011011111100100" str += "0011001001100111111100111110011111001100000111111111110011011111100100" str += "0000110110011001111111000111100001110011001001100000001100100110000000" str += "0011001110000111110011001111100000000011110000000111111111011111111100" str += "0011001110000111110011001111100000000011110000000111111111011111111100" str += "0011000001100000111100000001111000111100110110000000000000100110011000" str += "0011000001100000111100000001111000111100110110000000000000100110011000" str += "0000001000011110111100000111111000110000000000011111110011011001111000" str += "0000001000011110111100000111111000110000000000011111110011011001111000" str += "0000111111111001000000111110011111001111110001100000001100100111111100" str += "0000111111111001000000111110011111001111110001100000001100100111111100" str += "0000111001111110110000111110000001000011000111100001111111100000011100" str += "0011001111111001000011000001111000111111000111100111000011000000011000" str += "0011001111111001000011000001111000111111000111100111000011000000011000" str += "0000110000000110001100110000011110001111111000000001000011000111100000" str += "0000110000000110001100110000011110001111111000000001000011000111100000" str += "0011000001100001110011001110011000001100111001100111110011000110000000" str += "0011000001100001110011001110011000001100111001100111110011000110000000" str += "0011001000000111000011001110011110110011110000000110000000000001111100" str += "0011001000000111000011001110011110110011110000000110000000000001111100" str += "0011001111111001111100111111100111001111001001100110111100000110011100" str += "0011001000011111110011110111111001001111001000011110111111111000000100" str += "0011001000011111110011110111111001001111001000011110111111111000000100" str += "0000000000000000111111110000000111110011110001100001110000011001111000" str += "0000000000000000111111110000000111110011110001100001110000011001111000" str += "0011111111111110000011001000011000001111000001111000110011011110000100" str += "0011111111111110000011001000011000001111000001111000110011011110000100" str += "0011000000000110000011110000000110111111111001100000110000011000000000" str += "0011001111100110111111110001100001111111001001111111111111111111100100" str += "0011001111100110111111110001100001111111001001111111111111111111100100" str += "0011001111100110110011001001111110110011001000000001001111011000011100" str += "0011001111100110110011001001111110110011001000000001001111011000011100" str += "0011001111100110110000000110011001000011001111100001110000100000000100" str += "0011001111100110110000000110011001000011001111100001110000100000000100" str += "0011000000000110001111001111100110110011111110000111110011100000000100" str += "0011000000000110001111001111100110110011111110000111110011100000000100" str += "0011111111111110001111110110000000000011001110000000001100000111111100" str += "0000000000000000000000000000000000000000000000000000000000000000000000" str += "0000000000000000000000000000000000000000000000000000000000000000000000" i = 0 for y in range (0,MAX):    for x in range (0,MAX):        if(str[i] == '1'):            img.putpixel([x,y],(0, 0, 0))        else:            img.putpixel([x,y],(255,255,255))        i = i+1 img.show() img.save("flag.png")
最终扫码得到隐藏的flag信息
flag{a365b025fa3c58bab9af68e3da850460}

总结

  • 本题为CTF竞赛类中的典型Misc类型的题目,经常会通过将对应字符串或者数值进行隐藏图片载体中,需要对图片的RGB、后缀、字符串信息、位平面等进行分析和尝试修改,flag往往就藏在这其中。
  • 兵者,诡道也,真真假假,虚虚实实。没有人可以规定flag应该在哪里,不应该在哪里,不是吗?😎😂