0%

CTF中的图片隐写

  1. 所有图片通用方法

    • Stegosolve查看是否颜色通道隐写

    • UE查看内嵌字符串

    • Exiftool查看Exif信息

    • strings命令查看字符串,已知flag格式时可尝试搜索flag格式

    • binwalk查看是否有包含其他文件

  • foremost分离包含文件

  • 确定有包含其他文件,但foremost分离时卡死,使用dd命令

    1
    $dd if=<输入文件名> of=<输出文件名> skip=<输出文件文件块起始地址> bs=1
  • 遇到两张几乎一样的图片,考虑叠加或找不同。叠加使用phototshop,找不同使用image_comperer.py

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    from PIL import Image

    img1 = Image.open('1.png')
    img2 = Image.open('2.png')
    p1 = img1.load()
    p2 = img2.load()
    w = img1.size[0]
    h = img1.size[1]

    img3 = Image.new(img1.mode, img1.size)
    p3 = img3.load()

    for i in range(w):
    cnt = 0
    for j in range(h):
    if p1[i, j] != p2[i, j]:
    p3[i, j] = (255, 255, 255)

    im3.save('result.png')
  1. png文件

    • pngcheck
    • 修改文件头以改变图片高度、宽度
    • zsteg
  2. gif文件

    • Namo Gif Animator分离帧
  3. bmp

    1
    2
    3
    4
    5
    usage:
    $zsteg <filename> '查看LSB信息
    $zsteg <filename> -b 1 -o xy -v '检测zlib
    $zsteg <filename> -v '显示细节
    $zsteg <filename> -a '尝试所有的组合
-EOF-