[XCTF]red_green(难度2)

得到一个乱码的图片,查看信息,联系“red_green”

目录

前言

一、题目重述

二、解题思路

1.套路来一遍

2.过程中注意到以下两点:

(1)stegsolve图层中只有red/green,与题目暗合

(2)zsteg查看隐写信息发现隐写img

3.对应解题策略

法一

法二

法三

4.flag

总结


前言

掌握互补转为01二进制的思想、zsteg提取隐写文件的操作方法。


 

一、题目重述

二、解题思路

1.套路来一遍

  1. 属性(一般都没有)
  2. 010editor查看是不是有特殊信息
  3. binwalk/foremost查看是否有隐藏信息
  4. stegsolve查看图层/LSB隐写
  5. zsteg方便地再次LSB隐写查看

2.过程中注意到以下两点:

(1)stegsolve图层中只有red/green,与题目暗合

提取出来的两个通道的图片作异或后为空白图——即图片像素只有单红单绿两色

(2)zsteg查看隐写信息发现隐写img

3.对应解题策略

法一

对于发现的(1),红和绿构成了01串信息,意味着可以转化为二进制文件,然后进一步操作。

//代码摘自【愚公移山】博客
from PIL import Image
import os
import bitstring
image_name = 'red_green.png'
current_path = os.path.dirname(__file__)
im = Image.open(os.path.join(current_path,image_name))
image_width = im.size[0]
image_height = im.size[1]
# load pixel
pim = im.load()
bin_result = ''
for row in range(image_height):
    for col in range(image_width):
        if pim[col,row][0] == 255:
            bin_result += '1'
        else:
            bin_result += '0'
with open(os.path.join(current_path,'result.jpg'),'wb') as f:
    f.write(bitstring.BitArray(bin=bin_result).bytes)

法二

或者stegsolve提取LSB隐写信息为二进制文件

法三

对于(2),进一步采用zsteg提取文件命令

关于zsteg的使用方法(摘自):

查看帮助

zsteg -h

查看LSB信息

zsteg pcat.png

检测zlib

# -b的位数是从1开始的
zsteg zlib.bmp -b 1 -o xy -v

显示细节

zsteg pcat.png -v

尝试所有已知的组合

zsteg pcat.png -a

导出内容

zsteg -E "b1,bgr,lsb,xy" pcat.png > p.exe

4.flag

 

总结

非此即彼——二进制的思想,zsteg工具的使用,进一步融会贯通

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值