图片隐写 安恒ctf_图片隐写 安恒ctf_CTF中图片隐写的一些整理总结

1348110947918622720.htm

对历年来国内外CTF中常见的题型图片隐写的一些总结,本文长期更新,及时补充新的题型。

对历年来国内外CTF中常见的题型图片隐写的一些总结

赛题

XMAN-qualifiers-2017 : Misc/SimpleGIf

考察点Gif文件头

隐写相关技巧

Python 脚本编写

工具010Editor

Linux identify命令

Visual Studio Code

附件

Writeup

GIF头补全

首先用file查看下这个文件:

ctf@ubuntu:~/Desktop$ file '/home/ctf/Desktop/100_KHf05OI.gif'

/home/ctf/Desktop/100_KHf05OI.gif: data

binwalk再看下:

ctf@ubuntu:~/Desktop$ binwalk '/home/ctf/Desktop/100_KHf05OI.gif'

DECIMAL HEXADECIMAL DESCRIPTION

--------------------------------------------------------------------------------

可以看出没有识别出什么文件,这里推测它就是一个gif文件,现在来补上gif头。

GIF文件头:47 49 46 38 39 61

1348110947918622720.htm

得到Gif,什么都没有发现,看来题目没有这么简单:

1348110947918622720.htm

分析Gif

使用identify命令去拆解Gif,发现每一帧存在规律。

ctf@ubuntu:~$ identify -format "%s %T \n" '/home/ctf/Desktop/100_KHf05OI.gif'

0 66

1 66

2 20

3 10

4 20

5 10

6 10

7 20

8 20

9 20

10 20

11 10

...

提取每一帧的间隔并进行转化:

ctf@ubuntu:~$ identify -format "%T\n" '/home/ctf/Desktop/100_KHf05OI.gif'

66

66

20

10

20

10

10

20

20

20

20

10

20

...

这里有2种可能:

20 & 10 分别代表 0 & 120 & 10 分别代表 0 & 1

20 & 10 分别代表 1 & 0

使用Visual Studio Code来进行批量替换:

1348110947918622720.htm

去掉最前面2个66,一共是304行,304÷8=38 8个二进制为一组分组。

最后替换是这个样子:

1348110947918622720.htm

数据处理这里20代表0,10代表1,写一个脚本来进行转换,二进制先转换为10进制,10进制转换为ascii码,asscii转换为相应的字符串。# coding:utf-8

# blog:www.sqlsec,com

import re

def file():

text = raw_input("pleast enter your file pa

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值