CTF-MISC刷题-图片篇

图片

隐写、盲水印

文件头尾

文件类型文件头文件尾特征
JPEG (jpg)FFD8FFFF D9ÿØÿà
PNG (png)89504E470D0A1A0AAE 42 60 82.PNG…
GIF (gif)4749463800 3BGIF89a
ZIP Archive (zip)504B030450 4BPK…
TIFF (tif)49492A00
Windows Bitmap (bmp)424DBM
RAR Archive (rar)52617221Rar!..
Wave (wav)57415645
AVI (avi)41564920
MPEG (mpg)包含音频数据和视频数据000001BA
MPEG (mpg)只包含视频数据000001B3
7Z377ABCAF271C7z¼¯’
CAD (dwg)41433130
Adobe Photoshop (psd)38425053
Rich Text Format (rtf)7B5C727466
XML (xml)3C3F786D6C
HTML (html)68746D6C3E
Email [thorough only] (eml)44656C69766572792D646174653A
Outlook Express (dbx)CFAD12FEC5FD746F
Outlook (pst)2142444E
MS Word/Excel (xls.or.doc)D0CF11E0
MS Access (mdb)5374616E64617264204A
WordPerfect(wpd)FF575043
Adobe Acrobat (pdf)255044462D312E%PDF
Quicken (qdf)AC9EBD8F
Windows Password (pwl)E3828596
Real Audio (ram)2E7261FD
Real Media (rm)2E524D46
Quicktime (mov)6D6F6F76
Windows Media (asf)3026B2758E66CF11
MIDI (mid)4D546864
Win PE4D5AMZ
ELF7F 45 4C 46.ELF
VMDK4B 44 4DKDM
Java-classCA FE BA BEÊþº¾

outguess

使用outguess

输入outguess -help即可获得相关命令。
加密:
outguess -k “my secret key” -d hidden.txt demo.jpg out.jpg
加密之后,demo.jpg会覆盖out.jpg,hidden.txt的内容是要隐藏的东西。
解密:
outguess -k “my secret key” -r out.jpg hidden.txt
解密之后,紧密内容放在hidden.txt中

[WEEK1]Steganography

careful.jpg文件尾

MTJlcmNzLi4uLi45MDlqaw==
Base64:
12ercs.....909jk

用blindwatermark没解出

blindwatermark没配置好

队友直接暴力破解

imgPassware Kit Forensic暴力美学-已知部分密码自定义解密详细参数设置

flag{4d72e4f3-4d4f-4969-bc8c-a2f6f7a4292c}

看wp中间密码在第二张图备注部分。。。

image-20231030160021029

[WEEK2]奇怪的screenshot

Screenshot 2023-09-19 223406

kaliAcropalypse-Multi-Toolwidow下工具运行失败

image-20231016103135333

杨吕褚朱窦任云伍孙赵孙李伍孙冯李赵李伍袁尤张钱钱伍花张尤曹曹尤张朱伍魏赵赵吕伍尤金伍张赵魏伍花韩蒋陶华韩

百家姓编码

magnet:?xt=urn:btih:flagCVE-2023-28303-Win11-Snipping-t00l-is-n0t-Secure
flag{CVE-2023-28303-Win11-Snipping-t00l-is-n0t-Secure}

[WEEK2]图片里的秘密

QQ截图20231009191431

分离图片zdjd_1

官方wp:根据题目描述,进行单图盲水印提取即可(使用工具或者脚本都可)

???

盲僧能出水银鞋吗?

image-20231103152424354

[WEEK2]可爱的洛琪希

base64解码保存为图片

image-20231014130903662

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

详细信息

736c6e6f7b52626b795f71696966686b76217d

010有

key:nanian

image-20231014162652617

flag{Roxy_daisuki!}

[WEEK1]Jaeger lover

image-20231012151002875

题目提示,一共4个steg,一张图2个steg

两个文件一个zip加密,一个下列jpg,用StegSolve没有有效信息,cloacked-pixel也没有加密

image-20231012145607403

010打开发现结尾这段话:

D2tuwY3kHFjHkpP6SpgvQwkhrXLpKqbzYvhpbVou4tQgSrPEyaRTNGTHAmUzndjMn1BUwugvZEiskACusKdS9qEXcb5dsWnb8DPCmKeD5emdqPWxRUT5vsS2KhbAsQ7SRqimwsmV4XhXH5W4KeYXMGX7w9pQry4LVUG56pSvvFLfgXyx3REVUDoiQm6PhZhLqjRpMDtYxMRbsjpbvcg4TvzRz8XXWwGKSbcRtoCgjTwyxG53P7kqgrkyvk7eGXvbKAwT2VsCpVw81c8L16uT1bZ8a1ne483fkKHn5JmWHyqf4WKZMv

解密

image-20231012150000197

you know the Windows is a system for PC,but do you know the what is thr Op. System for this Jaeger?
你知道Windows是PC机的操作系统,但你知道这台机甲的操作系统是什么吗?
Tri-sun Horizon Gate
tri-sun horizon gate

原文
机型:第四代(Mark-IV)

所属国家:中国🇨🇳

高度:76米

重量:1722吨

操作系统:“三阳”地平线闸道器(Tri-sun Horizon Gate

stegdetect检测有无

Stegdetect JPHS 教程

Stegdetect,它可以检测到通过JSteg、JPHide、OutGuess、Invisible Secrets、F5、appendX和Camouflage等这些隐写工具隐藏的信息,并且还具有基于字典暴力破解密码方法提取通过Jphide、outguess和jsteg-shell方式嵌入的隐藏信息。

> .\stegdetect.exe -tjopi -s 10.0 C:\Users\18084\Desktop\Typhoon.jpg
: jphide(**)

这时候使用JPHSTri-sun Horizon Gate为密码去提取文件失败,小写也不行

再次使用stegdetect爆破密码

> .\stegbreak.exe -r .\rules.ini -f .\password.txt -t p .\Typhoon.jpg
Loaded 1 files...
.\Typhoon.jpg : negative
Processed 1 files, found 0 embeddings.
Time: 20 seconds: Cracks: 423182,  21159.1 c/s

用自带字典失败

扩容字典

'Tri-sun Horizon Gate'
Tri sun Horizon Gate
tri-sun horizon gate
tri sun horizon gate
Tri-sunHorizonGate
TrisunHorizonGate
tri-sunhorizongate
trisunhorizonhate
'Tri-sun Horizon Gate'

失败

image-20231223210348757

[WEEK1]也许需要一些py

http://shctf.club:8000/games/2/challenges

下载文件,一个加密zip文件

用010 Editor打开

image-20231008202820589

发现文件尾有摩斯密码,解码

image-20231008203020627

根据题目提示发现,转化成小写位zip的密码

提取出两个文件image-20231008203230565

image-20231030165458377

改flag1文件头保存为png文件

image-20231008203309213

63e62fbce22f2757f99eb7da179551d2

尝试用Ciphey工具

Ciphey教程

>activate python38
>ciphey -t '63e62fbce22f2757f99eb7da179551d2'
🌑  Thinking...

失败

对大小写进行转换

import itertools
import hashlib

s = "pNg_and_Md5_SO_GreaT"
md5_hash = "63e62fbce22f2757f99eb7da179551d2"
for c in itertools.product([0, 1], repeat=len(s)):
    tmp = ""
    for i in range(len(s)):
        if c[i]:
            tmp += s[i].upper()
        else:
            tmp += s[i].lower()
    if hashlib.md5(tmp.encode()).hexdigest() == md5_hash:   # 如果这个的字符串的MD5值等于63e62fbce22f2757f99eb7da179551d2
        print("匹配成功:", tmp)															# 那么就输出它
        break
else:
    print("未找到匹配的字符串")


flag{Png_AnD_md5_so_GReAt}

[BUUCTF] FLAG

下载为这样一个图

image-20231011200629771

用StegSolve打开

Stegsolve教程

image-20231011200749681

save Bin

image-20231012111654641

用010Editor打开

ELF

是elf文件,放入kali里,运行得出flag

sudo chmod 777 1 #提权http://t.csdnimg.cn/9sxOF
./1 #运行

image-20231012112106482

[BUUCTF]刷新过的图片

用了其他脚本没有发现隐写

看wp

刷新----F5-steganography

F5-steganorgraphy要JAVA11环境

>java Extract C:\Users\18084\Desktop\Misc.jpg
Huffman decoding starts
Permutation starts
309504 indices shuffled
Extraction starts
Length of embedded file: 190 bytes
(1, 31, 5) code used
output.txt
504b 0304 1400 0000 0800 6686 e14c 3c72
4559 2800 0000 2600 0000 0800 0000 666c
6167 2e74 7874 4bcb 494c afb6 344b 4d4b
3148 3432 3036 4f31 304b 3336 31b4 b44c
b534 3234 30b7 3437 b748 4dad 0500 504b
0102 1f00 1400 0100 0800 6686 e14c 3c72
4559 2800 0000 2600 0000 0800 2400 0000
0000 0000 2000 0000 0000 0000 666c 6167
2e74 7874 0a00 2000 0000 0000 0100 1800
c930 eca9 1811 d401 1f9a 88aa 1811 d401
d86b 2007 1811 d401 504b 0506 0000 0000
0100 0100 5a00 0000 4e00 0000 0000 
flag{96efd0a2037d06f34199e921079778ee}

[BJDCTF2020]just_a_rar

ExifTool完全入门指南

爆破出四位数密码

没有隐藏信息

JEPGsnoop

image-20231025154025510

ExifTool完全入门指南

exiftool也可以

exiftool.exe c:\Users\18084\Desktop\flag.jpg
ExifTool Version Number         : 12.68
File Name                       : flag.jpg
Directory                       : c:/Users/18084/Desktop
File Size                       : 105 kB
File Modification Date/Time     : 2016:07:27 09:40:10+08:00
File Access Date/Time           : 2023:10:25 16:06:01+08:00
File Creation Date/Time         : 2023:10:25 11:20:30+08:00
File Permissions                : -rw-rw-rw-
File Type                       : JPEG
File Type Extension             : jpg
MIME Type                       : image/jpeg
JFIF Version                    : 1.01
Resolution Unit                 : inches
X Resolution                    : 1
Y Resolution                    : 1
Exif Byte Order                 : Big-endian (Motorola, MM)
XP Comment                      : flag{Wadf_123}
Padding                         : (Binary data 2060 bytes, use -b option to extract)
Image Width                     : 580
Image Height                    : 868
Encoding Process                : Baseline DCT, Huffman coding
Bits Per Sample                 : 8
Color Components                : 3
Y Cb Cr Sub Sampling            : YCbCr4:2:0 (2 2)
Image Size                      : 580x868
Megapixels                      : 0.503

**metadata++**更好用

image-20231025163600994

[BJDCTF2020]一叶障目

无隐藏文件,用tweakpng打开显示CRC错误

image-20231026091607970

IHDR块的crc错误(是c20f1fc6,应该是55900eef)

IHDR

0000 000d说明IHDR头块长为13

4948 4452IHDR标识(ascii码为IHDR)

下面是IHDR数据块的实际内容

0000 0018图像的宽,24像素

0000 0018图像的高,24像素

08 表示色深,这里是2^8=256,即这是一个256色的图像

06 颜色类型,查表可知这是带α通道数据的真彩色图像

00 PNG Spec规定此处总为0(非0值为将来使用更好的压缩方法预留),表示使压缩方法(LZ77派生算法)

00 同上

00 非隔行扫描

e0 773d f8 CRC校验

CRC(cyclic redundancy check)域中的值是对Chunk Type Code域和Chunk Data域中的数据进行计算得到的。CRC具体算法定义在ISO 3309和ITU-T V.42中,其值按下面的CRC码生成多项式进行计算:

x32+x26+x23+x22+x16+x12+x11+x10+x8+x7+x5+x4+x2+x+1

PNG格式详解

png 文档格式

CRC(循环冗余校验)在线计算

在网上找到了大佬关于png修复CRC错误的脚本

#coding=utf-8
import zlib
import struct
#读文件
file = '1.png'  #注意,1.png图片要和脚本在同一个文件夹下哦~
fr = open(file,'rb').read()
data = bytearray(fr[12:29])
crc32key = eval(str(fr[29:33]).replace('\\x','').replace("b'",'0x').replace("'",''))
#crc32key = 0xCBD6DF8A #补上0x,copy hex value
#data = bytearray(b'\x49\x48\x44\x52\x00\x00\x01\xF4\x00\x00\x01\xF1\x08\x06\x00\x00\x00')  #hex下copy grep hex
n = 4095 #理论上0xffffffff,但考虑到屏幕实际,0x0fff就差不多了
for w in range(n):#高和宽一起爆破
    width = bytearray(struct.pack('>i', w))#q为8字节,i为4字节,h为2字节
    for h in range(n):
        height = bytearray(struct.pack('>i', h))
        for x in range(4):
            data[x+4] = width[x]
            data[x+8] = height[x]
            #print(data)
        crc32result = zlib.crc32(data)
        if crc32result == crc32key:
            print(width,height)
            #写文件
            newpic = bytearray(fr)
            for x in range(4):
                newpic[x+16] = width[x]
                newpic[x+20] = height[x]
            fw = open(file+'.png','wb')#保存副本
            fw.write(newpic)
            fw.close

image-20231026193848066

这个脚本也行,爆破png长宽高

import binascii
import struct

crcbp = open("C:\\Users\\18084\\Desktop\\1.png","rb").read() #打开图片
crc32frombp = int(crcbp[29:33].hex(),16)#获取图片的crc32值
print(crcbp[29:33])
print(crcbp[29:33].hex())
print(crc32frombp)
print(crc32frombp)

for i in range(4000):
    for j in range(4000):
        data = crcbp[12:16]+ \
            struct.pack(">i",i)+ struct.pack(">i",j)+crcbp[24:29]
        crc32 = binascii.crc32(data)&0xffffffff
        if(crc32 == crc32frombp):
            print(i,j)
            print('hex:',hex(i),hex(j))
            exit(0)

image-20231026194018768image-20231026194038764

flag{66666}

[GDOUCTF 2023]pixelart

伪加密

ZipCen0p处理失败,文件头的加密标识没改,要注意。

手动改,是一张图片,文件尾有320x180字段,图片放大也有像素点

用脚本提取

from PIL import Image

original_image = Image.open('arcaea.png')

new_width = original_image.width // 12
new_height = original_image.height // 12

new_image = Image.new("RGB",(new_width,new_height))

for x in range(new_width):
    for y in range(new_height):
        pixel = original_image.getpixel((x *12,y*12))
        new_image.putpixel((x,y),pixel)

new_image.save("flag.png")

arcaea.png_flag

flag{fade_flag}不是flag

zsteg

zsteg可以检测PNG和BMP图片里的隐写数据。

目前,zsteg支持检测:

  1. LSB steganography in PNG & BMP
  2. zlib-compressed data
  3. OpenStego
  4. Camouflage 1.2.1
  5. LSB with The Eratosthenes set

(这个工具太香了,爱死)

1.查看lsb数据

zsteg xxx.bmp
zsteg xxx.png
zsteg -a (文件名)    #查看各个通道的lsb
123

2.检测zlib

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

3.提取该通道图片

zsteg -e b8,a,lsb,xy 文件.png -> out.png

image-20231031165802254

flag{J3st_2_cats_battlin

[LitCTF 2023]ssvvgg

svg图片提取bas64成jpg

steghide 爆破

密码生成脚本

@echo off
setlocal enabledelayedexpansion

set start=100000
set end=1000000
set filename=mima.txt

(for /l %%i in (%start%, 1, %end%) do (
    echo %%i
)) > %filename%

echo File %filename% generated successfully.

爆破脚本

linux

#bruteStegHide.sh 
#!/bin/bash

for line in `cat $2`;do
    steghide extract -sf $1 -p $line > /dev/null 2>&1
    if [[ $? -eq 0 ]];then
        echo 'password is: '$line
        exit
    fi  
done 

window

@echo off

for /f %%i in (%2) do (
    steghide.exe extract -sf %1 -p %%i > nul 2>&1
    rem echo steghide.exe extract -sf %1 -p %%i
    rem if %errorlevel% equ 0 (
    rem    echo password is: %%i
    rem    exit
    )
)

这两个脚本太慢了,半天都爆破不出来

尝试用Stegseek

Stegseek介绍

Stegseek是迄今为止全世界最快的Steghide破解器,该工具每秒能够处理数百万的密码。虽然Stegseek是一款轻量级工具,但丝毫不影响其功能性的强大。该工具作为原始Steghide项目的一个分支而构建,它的速度比其他破解器快上千倍。在该工具的帮助下,广大研究人员可以轻松从使用了Steghide隐写&加密的文件中提取出隐藏的数据。

除此之外,Stegseek还可以用来提取Steghide的元数据,我们可以利用这些信息来判断一个文件中是否包含了Steghide数据。

值得一提的是,仅需两秒钟,该工具就可以跑完rockyou.txt字典。而众所周知,rockyou.txt是一个包含了超过1400万个密码的强大字典文件。

Stegseek只支持在liunx

stegseek test.jpg mima.txt

image-20231101160812505

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值