CTF隐写中的套路

记录一道很有意思的隐写题目
遵循一般步骤,先右键图片属性看详细信息,然后分析十六进制,文件头文件尾等
最后载入stegsolve观察各个通道,注意到 red,green,blue 三个通道0 均有异常,猜测是 lsb隐写

image.png

然后进行数据提取

image.png

将RGB排列顺序切换到BGR的时候发现PNG文件头,保存为二进制文件
然后载入010 editor打开,去掉头部多余的fffe,此时图片就可以预览了,看到是半个二维码
进行 crc 爆破文件宽度和高度

# coding: utf-8
import os
import binascii
import struct


misc = open("png2.png", "rb").read()

for i in range(1024):
    for j in range(1024):
        data = misc[12:16] + struct.pack('>i',i) + struct.pack('>i', j) + misc[24:29]
        crc32 = binascii.crc32(data) & 0xffffffff
        if crc32 == 0x08ec7edb:
            print i, j

也可以直接修改图片高度(windows 会忽略掉错误的crc校验,图片仍可以打开),显示完整二维码
下一步用PS反色,依次 (图像 -> 调整 -> 反相)
扫描二维码,下载到一个rar压缩文件
解压缩打开flag.txt,显示

image.png

好吧,其实我心态是崩溃的

注意到解压前压缩包大小 766 b,解压后 63,问题应该出在压缩包上

载入 010 editor
仔细查看发现有个 flag.pyc
不过解压时为什么没有识别出来...

image.png

那么现在问题就是怎么把 flag.pyc 提出来了

首先了解一下 rar 文件结构

rar 是由一个一个 block 组成的,每个 block 有以下几个部分

HEAD_CRC    2   全部块或块部分的CRC
HEAD_TYPE   1   块类型
HEAD_FLAGS  2   阻止标志
HEAD_SIZE   2   块大小
ADD_SIZE    4   可选字段 - 添加块大小

手动将 block[1] 的类型改成 file or directory

image.png

然后解压会报错但是可以解压成功
我们得到 一个 pyc 文件

在线反编译失败,我们使用 pycdc 反编译成功得到 py 文件

# Source Generated with Decompyle++
# File: STM (Python 2.7)

import base64

def encode():
    flag = '*************'
    ciphertext = []
    for i in range(len(flag)):
        s = chr(i ^ ord(flag[i]))
        if i % 2 == 0:
            s = ord(s) + 10
        else:
            s = ord(s) - 10
        ciphertext.append(str(s))
    
    return ciphertext[::-1]

ciphertext = [
    '96',
    '65',
    '93',
    '123',
    '91',
    '97',
    '22',
    '93',
    '70',
    '102',
    '94',
    '132',
    '46',
    '112',
    '64',
    '97',
    '88',
    '80',
    '82',
    '137',
    '90',
    '109',
    '99',
    '112']

根据 encode 编写 decode 代码

def decode(ciphertext):
    flag = ""
    text = ciphertext[::-1]
    for i in range(len(text)):
        s = int(text[i])
        if i % 2 == 0:
            s = chr(s - 10)
        else:
            s = chr(s + 10)
        s = chr(ord(s) ^ i)
        flag += s
    print flag

即可得到 flag

image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,284评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,115评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,614评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,671评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,699评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,562评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,309评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,223评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,668评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,859评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,981评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,705评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,310评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,904评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,023评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,146评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,933评论 2 355

推荐阅读更多精彩内容