misc5

图片放大就可以看到flag......

CTFshow-misc刷题_ide

flag{so_good_you_are}

misc31

打开file文件是一个base64的图片

CTFshow-misc刷题_CTF_02

CTFshow-misc刷题_Image_03

得到解压密码:dlddddhm

解出pdf,里面是花朵

CTFshow-misc刷题_Image_04

✿✼✿❂❀❀✿✽✿✿✿❄✿❀❀❄❀❊✿✻=

https://www.qqxiuzi.cn/bianma/wenbenjiami.php?s=huaduo

CTFshow-misc刷题_ide_05

解码得到:qwertyuiop

用wbStego4解得ENTYNSTLWNRNTKYW13287484

反正我没解出来

CTFshow-misc刷题_Image_06

关键字解密

CVEFVWETBVDVESFB13287484

解压得到xiaomotuo.wav

再steghide解密

steghide extract -sf xiaomotuo.wav -p xiaomotuo

CTFshow-misc刷题_ide_07

flag{du_du_du_du}

misc49

改后缀名得到压缩包

解压得到hint

字母解密

CTFshow-misc刷题_CTF_08

音乐符号解密

CTFshow-misc刷题_CTF_09

花朵解密

CTFshow-misc刷题_Image_10

得到压缩包密码

welcome_to_ctf

解压得到两张图片

听说水印很强大,我来康康!key{welcome_to_ctf}

提示盲水印

CTFshow-misc刷题_Image_11

CTFshow-misc刷题_压缩包_12

flag{y0u_are_we1l}

misc6

字母解密

YZYPYUYAXOYWXXYZXWYBYSXAZSYRYCYWYYUUXQ=

CTFshow-misc刷题_ide_13

flag{ctfshow_nice!}

misc7

解压得到一个不知道什么的文件

CTFshow-misc刷题_ide_14

微软office的文件头,ppt试成功了

CTFshow-misc刷题_压缩包_15

需要密码,破解一下

CTFshow-misc刷题_CTF_16

9919

CTFshow-misc刷题_CTF_17

找到flag

Flag{okYOUWIN}

mics8

解压得一张图片和一个压缩包

直接爆破就很好了

misc

CTFshow-misc刷题_压缩包_18

56tygh

CTFshow-misc刷题_压缩包_19

flag{ctf_show_ok}

红包题第五弹

先分离得到一张图片,

之后是steghide隐写密码是123456

.\steghide.exe info .\00017508.jpg

CTFshow-misc刷题_压缩包_20

试了下弱口令是123456

CTFshow-misc刷题_ide_21

Get!!!隐藏文本找到

.\steghide.exe extract -sf .\00017508.jpg 解出flag.txt

CTFshow-misc刷题_压缩包_22

打开

CTFshow-misc刷题_ide_23

发现是base64格式的字符串,解密得

https://www.lanzous.com/i9dpjxe

又是附件下载链接

下载得到red5.zip

例行分析完没啥发现直接解压得到flag.txt

CTFshow-misc刷题_Image_24

猜测应该是16进制放到HxD中发现

CTFshow-misc刷题_压缩包_25

有坐标有3个,分隔得十进制数很明显是rgb的图片

复制下来后上代码格式化一下把坐标去掉

import re
str_=""
str_list=[]
with open('flag.txt') as f:
	for i in f.readline():
		str_+=i
		if(str_[-1] is ")"):
			str_ = "".join(re.findall("\(.*\)",str_))
			str_list.append(str_.strip('(').strip(')'))
			str_=""
 
 
with open('rgb.txt','w') as f:
	for i in str_list:
		f.write(i+'\n')

CTFshow-misc刷题_ide_26

接着就是把rgb转化成图像了(网上直接找现成的,x和y就是上面的坐标,从0开始算所以是72和74)

from PIL import Image
 
x = 72    #x坐标  通过对txt里的行数进行整数分解
y = 74   #y坐标  x * y = 行数
 
im = Image.new("RGB", (x, y))   #创建图片
file = open('rgb.txt')    #打开rbg值的文件
 
#通过每个rgb点生成图片
 
for i in range(0, x):
    for j in range(0, y):
        line = file.readline()  #获取一行的rgb值
        rgb = line.split(", ")  #分离rgb,文本中逗号后面有空格
        im.putpixel((i, j), (int(rgb[0]), int(rgb[1]), int(rgb[2])))    #将rgb转化为像素
 
im.save('flag.jpg')  #也可用im.save('flag.jpg')保存下来

得到一张上下颠倒的二维码

CTFshow-misc刷题_Image_27

ps走起!

CTFshow-misc刷题_Image_28

ok最后QR_Research一下得到

CTFshow-misc刷题_Image_29

flag{ctf_show_fight}

stega2

CTFshow-misc刷题_Image_30

修复宽高

flag{na yi nian wo ye bian cheng le guang}

stega3

文件尾部提示NTFS

CTFshow-misc刷题_Image_31

CTFshow-misc刷题_ide_32

flag{ntfs_is_so_cool}

stega4_STEGA

双图盲水印

CTFshow-misc刷题_压缩包_33

CTFshow-misc刷题_CTF_34

flag{ha_ha_ha}

杂项9

foremost分离得到9张图片,在拼接

CTFshow-misc刷题_Image_35

用StegSolve查看

CTFshow-misc刷题_压缩包_36

补全

CTFshow-misc刷题_Image_37

扫描得flag

flag{4ab1507d-d195-4d30-87c0-a0d85a77d953}

文本隐写

打开文本

CTFshow-misc刷题_Image_38

CTFshow-misc刷题_ide_39

NNSXSORRGTSL3DPHTKCOPOVP42K3BZNNS4======

key:14位的纯数字

CTFshow-misc刷题_压缩包_40

补全文件头

单独拿出来保存为docx

CTFshow-misc刷题_Image_41

文件另存为html

CTFshow-misc刷题_CTF_42

右击源代码

CTFshow-misc刷题_CTF_43

Flag{show_ctf_tsw_cc}

misc22

一道游戏题

加载bin文件存档

CTFshow-misc刷题_Image_44

shift+x删除所有城墙之后

CTFshow-misc刷题_ide_45

得到flag

flag{Tower_Defense_Is_Funny}

stega12

CTFshow-misc刷题_Image_46

flag{letmeseesee}

stega5

用工具打开

CTFshow-misc刷题_ide_47

发现二维码

CTFshow-misc刷题_CTF_48

03F30D0A79CB05586300000000000000000100000040000000730D0000006400008400005A000064010053280200000063000000000300000016000000430000007378000000640100640200640300640400640500640600640700640300640800640900640A00640600640B00640A00640700640800640C00640C00640D00640E00640900640F006716007D00006410007D0100781E007C0000445D16007D02007C01007400007C0200830100377D0100715500577C010047486400005328110000004E6966000000696C00000069610000006967000000697B000000693300000069380000006935000000693700000069300000006932000000693400000069310000006965000000697D000000740000000028010000007403000000636872280300000074030000007374727404000000666C6167740100000069280000000028000000007304000000312E7079520300000001000000730A0000000001480106010D0114014E280100000052030000002800000000280000000028000000007304000000312E707974080000003C6D6F64756C653E010000007300000000

导入010存为pyc,之后反编译

CTFshow-misc刷题_Image_49

但是之后我的不知道为什么运行不了

就重新写了一个脚本

str_list = [
    102,
    108,
    97,
    103,
    123,
    51,
    56,
    97,
    53,
    55,
    48,
    51,
    50,
    48,
    56,
    53,
    52,
    52,
    49,
    101,
    55,
    125]

flag = ''.join(chr(i) for i in str_list)
print(flag)

flag{38a57032085441e7}

交通繁忙

gif文件分离,

for /l %i in (2,2,1168) do del Traffic_Light_%i.png

先删除没有用得文件

红绿灯变换一眼二进制

from skimage import io,data
import os
 
img_lists = [i for i in os.listdir(".") if os.path.splitext(i)[1] == ".jpeg"]
bytes_=""
 
for i in range(1,len(img_lists)+1):
	img = io.imread("./Traffic_Light_{}.jpeg".format(i*2-1))
	R=int(img[38,113,0])
	Y=int(img[92,113,0])
	G=int(img[132,113,0])
	if R != 172:
		bytes_+= '1'
	if Y != 172:
		continue
	if G != 172:
		bytes_+= '0'
print(bytes_)

得到

CTFshow-misc刷题_压缩包_50

接下来把它转成字符串

flag{Pl34s3_p4y_4tt3nt10n_t0_tr4ff1c_s4f3ty_wh3n_y0u_4r3_0uts1d3}

和36D有关系

脚本

import cv2 as cv
import numpy as np
import struct
import binascii
from PIL import Image
 
class FileF:
    @staticmethod
    def l2bf(fn='data.txt', dat=b''):
        bst = b''
        if isinstance(dat, str):
            bst = bytes(dat, 'utf-8')
        elif isinstance(dat, list):
            bst = bytes(dat)
        else:
            bst = dat
        with open(fn, 'wb') as f:
            f.write(bst)
 
class PicBits: #像素操作
    img = None
    fn = ''
    def __init__(self, fn=''):
        try:
            self.img = cv.imread(fn)
            self.fn = fn
        except:
            pass
    def show(self):
        cv.imshow(self.fn, self.img)
        cv.waitKey(0)
        cv.destroyAllWindows()
    def getxy(self, x=0,y=0):
        ret = [0,0,0]
        height = self.img.shape[0]
        weight = self.img.shape[1]
        channels = self.img.shape[2]
        if x < 0 : x = -x
        if y < 0 : y = -y
        ret =[]
        for c in range(channels):
            ret.append(self.img[y%height,x%weight,c])
        return ret
    def setxy(self, x=0,y=0 ,col=[0,0,0]):
        ret = [0,0,0]
        height = self.img.shape[0]
        weight = self.img.shape[1]
        channels = self.img.shape[2]
        if x < 0 : x = -x
        if y < 0 : y = -y
        self.img[y%height,x%weight] = col
    def save(this,fn=''):
        if fn=='':fn=this.fn
        cv.imwrite(fn,this.img)
 
 
class CharF:
    @staticmethod
    def SplitByLen(t="", l=8, instr=" "):
        if l < 1: return t
        ret = ""
        for i in range(len(t)):
            ret += t[i]
            if i % (l) == l - 1: ret += instr
        while ret.startswith(instr):
            ret = ret[len(instr):]
        while ret.endswith(instr):
            ret = ret[:-len(instr)]
        return ret
 
    @staticmethod
    def str2num(txt="0", split=' ', bs=16, spl=0):
        txt = txt.lower()
        munl = []
        if spl == 0:
            numl = txt.split(split)
        else:
            numl = CharF.SplitByLen(txt, spl, ' ').split(' ')
        retl = []
        for i in numl:
            try:
                retl.append(int(i, bs))
            except:
                pass
        return retl
#真正有用的就下面这几句,上面的全是我的破烂存货
def dec():
    yt = PicBits('LSB.png')
    bits=""
    for i in range (128):
        for j  in range(128):
            c = yt.getxy(127-i,127-j) #逆序
            bits+=chr(ord('0')+((c[0]^c[1]^c[2])&1))
    l = CharF.str2num(bits,bs=2,spl=8)
    FileF.l2bf('LSB2.png',l)
 
dec()

CTFshow-misc刷题_ide_51

flag{36d@ctf_show}

若有收获,三连加关注,学习不迷路