图片隐写:

    • 搜索图片16进制是否存在flag
    • 图片属性是否有flag
    • 图片是否为png更改了高宽
    • 图片是否由多文件组成(是否可分离)
    • 图片是否LSB
    • ZIP加密是否为伪加密
    • 是否可用steghide读取图片信息
    • 是否为F5隐写
    • 是否为outguess隐写
    • vmdk 7z解压
    • 流量包也可检测是否可分离文件

    1.金三胖
    GIF逐帧查看:使用工具:Ulead GIF Animator
    也可用图片隐写查看器stegsolve打开,用Frame Browser查看动态图的每一帧。
    image.png


    2.二维码
    在线平台解码,没有有效信息
    binwalk检测文件分离:

    1. binwalk QR_code.png

    image.png
    foremost分离文件:

    1. foremost QR_code.png

    image.png
    zip加密,根据提示密码爆破:
    image.png
    image.png
    解压得到flag


    3.N种方法解决
    下载是KEY.exe,但是无法执行
    放到linux下file查看文件类型,发现为普通文本文档
    image.png
    base64转图片,也可以直接扔进浏览器自动转换为图片:

    1. import os,base64
    2. str1="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"
    3. imgdata = base64.b64decode(str1)
    4. file = open('1.jpg','wb')
    5. file.write(imgdata)
    6. file.close()

    得到图片是二维码,在线解码得到flag


    4.大白
    看题估计是图片长宽隐写,查看高宽,转换为16进制
    image.png
    使用UE打开,编辑高度改为宽度,得到flag


    5.基础破解
    rar压缩包密码爆破,根据提示4个数字
    image.png
    解压后,base64解密获得flag


    6.你竟然赶我走
    使用winhex或者UE打开,flag在文件最后


    7.LSB

    LSB(Least Significant Bit),意为最低有效位;MSB(Most Significant Bit),意为最高有效位。通常,MSB位于二进制数的最左侧,LSB位于二进制数的最右侧。若MSB=1,则表示数据为负值,若MSB=0,则表示数据为正。 LSB图片隐写:png图片是一种无损压缩的位图片形格式,也只有在无损压缩或者无压缩的图片(BMP)上实现lsb隐写。如果图像是jpg图片的话,就没法使用lsb隐写了,原因是jpg图片对像数进行了有损压缩,我们修改的信息就可能会在压缩的过程中被破坏。而png图片虽然也有压缩,但却是无损压缩,这样我们修改的信息也就能得到正确的表达,不至于丢失。BMP图片一般是特别的大的,因为BMP把所有的像数都按原样储存,没有进行压缩。 png图片中的图像像数一般是由RGB三原色(红绿蓝)组成,每一种颜色占用8位,取值范围为0x00~0xFF(0-255),即有256种颜色,一共包含了256的3次方的颜色,即16777216种颜色。而人类的眼睛可以区分约1000万种不同的颜色,这就意味着人类的眼睛无法区分余下的颜色大约有6777216种。 LSB隐写就是修改RGB颜色分量的最低二进制位也就是最低有效位(LSB),而人类的眼睛不会注意到这前后的变化,每个像数可以携带3比特的信息。 一幅完整的图像,红色绿色蓝色三个通道缺一不可。一幅图像,如果关闭了红色通道,那么图像就偏青色。如果关闭了绿色通道,那么图像就偏洋红色。如果关闭了蓝色通道,那么图像就偏黄色。当然还有个Alpha通道,是一个8位的灰度通道,也可以理解为透明度(粗糙的理解)。

    stegsolve打开图片,按右方向键查看各通道显示的图像。
    一般有些题目会在某一个图像通道中直接显示出flag。
    这道题,题目已经很明显了,用stegsolve打开图片,按右方向键查看各通道显示的图像
    image.png

    可以发现Red,Blue,Green的0通道的图片上方有东西,用Data Extract查看这三个通道结合起来的
    image.png
    保存为png图片,得到一个二维码,扫描二维码得到flag


    8.乌镇峰会种图
    winhex或者ue打开,flag在图片最后


    9.qr
    在线QR解码得到flag


    10.文件中的秘密
    UE打开,文件开头不远部分即可获得flag


    11.ningen
    UE查看图片,未找到flag像压缩包
    binwalk+foremost+zip密码破解三部曲获得flag


    12.wireshark
    wireshark打开,追踪TCP流获得flag


    13.镜子里的世界
    使用steg打开,LSB


    14.小明的保险箱
    binwalk+foremost+rar密码破解


    15.爱因斯坦
    binwalk+foremost
    zip有密码
    密码在图片备注!!!!(这一步经常被忽略~)


    16.被嗅探的流量
    wireshark追踪tcp流,图片末尾


    17.假如给我三天光明
    图片盲文,解压压缩包
    使用Audicity分析,摩斯电码解密


    18.FLAG
    LSB发现是ZIP格式压缩文件
    image.png
    常见文件头:

    JPEG (jpg),文件头:FFD8FFE1 PNG (png),文件头:89504E47 GIF (gif),文件头:47494638 TIFF (tif),文件头:49492A00 Windows Bitmap (bmp),文件头:424D 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 Postscript (eps.or.ps),文件头:252150532D41646F6265 Adobe Acrobat (pdf),文件头:255044462D312E Quicken (qdf),文件头:AC9EBD8F Windows Password (pwl),文件头:E3828596 ZIP Archive (zip),文件头:504B0304 PK RAR Archive (rar),文件头:52617221 C43D7B00400700文件尾 Wave (wav),文件头:57415645 AVI (avi),文件头:41564920

    Real Audio (ram),文件头:2E7261FD

    Real Media (rm),文件头:2E524D46

    MPEG (mpg),文件头:000001BA

    MPEG (mpg),文件头:000001B3

    Quicktime (mov),文件头:6D6F6F76

    Windows Media (asf),文件头:3026B2758E66CF11

    MIDI (mid),文件头:4D546864

    尝试解压失败:
    image.png
    使用指令 jar xvf 1.zip 进行解压, 直接运行也可获得flag
    image.png


    20.另外一个世界
    查看图片末尾一串2进制串
    转换为ASCII,加上flag{}

    1. class conver:
    2. def __init__(self):
    3. pass
    4. # hex=>ASCII
    5. def hex_string(self,s):
    6. return ''.join(chr(int(s[i:i+2],16)) for i in range(0,len(s),2))
    7. # bin =>ASCII
    8. def bin_string(self,b):
    9. return ''.join(chr(int(b[i:i+8],2)) for i in range(0,len(b),8))
    10. # ASCII=>hex
    11. def string_hex(self,h):
    12. return ''.join( hex(ord(i))[2:] for i in h)
    13. # ASCII=>bin
    14. def string_bin(self,b):
    15. return ''.join( bin(ord(i))[2:] for i in b)
    16. if __name__=="__main__":
    17. s=input()
    18. con=conver()
    19. print(con.bin_string(s))

    21.隐藏的钥匙
    使用UE打开,搜索flag
    image.png
    找到flag,base64解密


    22.荷兰宽带数据泄露
    conf.bin文件
    路由器配置文件,使用routerpassview打开
    https://www.52pojie.cn/thread-1033185-1-1.html
    image.png
    搜索username
    加上flag{}得到flag


    23.最简单的MISC
    下载文件是一个加密的zip压缩包
    没有任何密码提示,同时无法分解出其他文件
    怀疑是伪加密
    无加密:
    压缩源文件数据区的全局加密应当为00 00 (504B0304 后2字节)
    压缩源文件目录区的全局方式位标记应当为00 00 (504B0102后4字节)
    伪加密:
    压缩源文件数据区的全局加密应当为00 00(或者偶数,偶数不加密,奇数加密)
    压缩源文件目录区的全局方式位标记应当为09 00
    真加密:
    压缩源文件数据区的全局加密应当为09 00
    压缩源文件目录区的全局方式位标记应当为09 00
    将504B0102后四个字节位置09改为00,解压缩得到一个data
    image.png

    strings data没有有效信息,查看16进制,发现IHDR,怀疑是PNG图片
    image.png
    补上文件头89504E47,打开图片将16进制转换为ASCII得到flag


    24.后门查杀
    下载发现是网站源码
    使用D盾扫描,找到webshell
    查看获得password


    25.来首歌吧
    解压用audicity打开,发现摩斯电码
    解码得flag


    26.A_Beautiful_Picture
    查看字符串无果,LSB无果,binwalk无果
    在这种情况下,哪怕png图片长宽差不多,依旧可以尝试修改长宽
    有些时候长宽差别并不明显


    27.龙卷风
    rar爆破4位
    解压得到brainfuck代码
    在网站:https://www.splitbrain.org/services/ook
    将brainfuck代码转换为text


    28.九连环
    binwalk分离出一个压缩包
    压缩包文件一个可以提取,一个加密
    加密伪加密,解密得到一个图片
    使用steghide得到压缩包密码
    steghide extract -sf xxx.jpg
    解密得到flag


    29.snake
    binwalk分离出两个文件:cipher,key
    cipher加密过,key base64解密
    image.png
    anaconda(水蚺),加密方式是serpent(水蛇)
    http://serpent.online-domain-tools.com/
    image.png


    30.梅花香之苦寒来
    这一题有意思,打开jpg图片,图片末尾一长串16进制数
    尝试把16进制数转换为ASCII码,结果发现是乱码,所以卡住了
    image.png
    看了WP之后,发现思路没错,结果是UE的原因
    UE似乎是Unicode与ASCII混用,将属于2的16进制字符给前面一个Unicode字符给吞了
    写脚本将16进制转换为ASCII,发现是坐标

    1. # 转换为坐标
    2. with open('hex.txt','r') as h:
    3. h=h.read()
    4. tem=''
    5. data=""
    6. for i in range(0,len(h),2):
    7. tem='0x'+h[i]+h[i+1]
    8. tem=int(tem,base=16)
    9. data+=chr(tem)
    10. #print(chr(tem),end='')
    11. with open('ascii.txt','w') as f:
    12. f.write(data)
    13. f.close()

    将坐标处理一下,使用gnuplot进行绘制

    1. # 处理坐标
    2. with open('ascii.txt','r')as a:
    3. a=a.read()
    4. a=a.split()
    5. tem=''
    6. da=""
    7. for i in range(0,len(a)):
    8. tem=a[i]
    9. tem=tem.lstrip('(')
    10. tem=tem.rstrip(')')
    11. for j in range(0,len(tem)):
    12. if tem[j]==',':
    13. tem=tem[:j]+' '+tem[j+1:]
    14. da+=tem+"\n"
    15. with open('gnu.txt','w') as f:
    16. f.write(da)
    17. f.close()

    image.png
    image.png
    image.png


    31.面具下的flag
    分离出压缩包和图片
    压缩包zip伪加密
    解压缩后是flag.vmdk
    使用7z解压缩后获得Brainfuck和ook加密后的flag
    要用Linux下的7z解压缩,windows下解压缩看不到part two,不知道为什么?
    同样也不知道为什么7z能解压缩vmdk文件?

    1. 7z x flag.vmdk

    在线brainfuck and ook解密得到flag


    32.小姐姐
    图片16进制搜索BJD获得flag


    33.数据包中的线索
    追踪TCP流怀疑是base64加密
    但是在线平台解开失败
    结果是因为字符不可见,所以可以自写脚本,将base64解密到文件中
    使用file指令查看文件类型,jpg

    1. import base64
    2. data=""
    3. with open('b64.txt','r') as f:
    4. data=f.read()
    5. f.close()
    6. data=base64.b64decode(data)
    7. #print(data)
    8. with open('res','wb') as f:
    9. f.write(data)
    10. f.close()

    改后缀为jpg获得flag


    34.刷新过的图片
    F5隐写
    使用工具: git clone https://github.com/matthewgao/F5-steganography
    提取flag: java Extract ../Misc.jpg -e ../misc
    file查看是zip压缩包
    binwalk -e 解压缩得到flag


    35.EasyBaBa
    binwalk检测发现压缩包
    解压得到 里面都是出题人.jpg
    file检测为rtff文件,也就是视频流文件
    使用KMPlayer打开视频,F快捷键逐帧步进,Shitf+F逐帧后退
    得到几张二维码,解码得到flag
    image.png


    36.菜刀666
    追踪TCP流
    得到一个加密的压缩包

    1. wireshark中二进制文件提取:
    2. 1.显示数据为YAML
    3. 2.使用脚本base64解密二进制流写入文件
    1. import base64
    2. data=""
    3. with open('b64.txt','r') as f:
    4. data=f.read()
    5. f.close()
    6. data=base64.b64decode(data)
    7. #print(data)
    8. with open('res','wb') as f:
    9. f.write(data)
    10. f.close()

    得到一个图片FF D8
    使用Hxd将图片二进制写入文件
    得到压缩包密码
    获得flag


    37.Real_EasyBaBa
    winhex打开发现图案就是flag
    image.png


    38.Mysterious
    IDA打开,查看字符串
    image.png
    Buff3r似乎像flag,输入发现错误
    尝试到引用字符串的函数位置
    双击字符串,到汇编区域,快捷键Ctrl+x,查看引用位置
    image.png
    发现flag,前面还要加个123_


    39.圣火昭昭
    一张普通的图,属性备注里有佛经
    与佛论禅加密: http://hi.pcmoe.net/buddha.html
    解密出来: gemlove
    尝试了提交,这不是flag
    根据提示我们找到outguess 图片隐写工具

    1. 安装outguess: git clone https://github.com/crorvick/outguess.git
    2. 配置与安装: ./configure && make
    3. 安装: sudo make install
    4. 使用方法: outguess -k key -r filename out.txt

    image.png


    40.sqltest
    分析流量包是sql盲注
    最后利用substr盲注flag
    一步一步跟复写出flag即可。(理论应该有脚本。。。)
    从网上有简易方法:
    文件-导出对象-HTTP
    发现列表中重复判断的即是flag对应字符
    image.png


    41.喵喵喵
    LSB提取出一张二维码PNG图片
    image.png
    使用Hxd将前面两个bytes去掉
    png图片修改高宽,显示完整二维码
    扫描二维码得到flag.rar
    使用WinRAR解压(管理员权限)
    使用ntfsstreamseditor导出附加文件流
    image.png
    pyc在线反编译:https://tool.lu/pyc/

    1. #!/usr/bin/env python
    2. # encoding: utf-8
    3. import base64
    4. def encode():
    5. flag = '*************'
    6. ciphertext = []
    7. for i in range(len(flag)):
    8. s = chr(i ^ ord(flag[i]))
    9. if i % 2 == 0:
    10. s = ord(s) + 10
    11. else:
    12. s = ord(s) - 10
    13. ciphertext.append(str(s))
    14. return ciphertext[::-1]
    15. 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']

    写解密脚本。。。

    1. import base64
    2. 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']
    3. ciphertext = ciphertext[::-1]
    4. def decode():
    5. code = ''
    6. for i in range(24):
    7. if(i%2 == 0):
    8. a = int(ciphertext[i]) - 10
    9. else:
    10. a = int(ciphertext[i]) + 10
    11. a = i ^ a
    12. code = code + chr(a)
    13. print(code)
    14. decode()

    42.神奇的二维码
    binwalk检测并分离
    base64解密获得压缩包密码
    得到mp3,使用audicity分析
    摩斯电码解码得到flag


    43.zip
    https://www.cnblogs.com/harmonica11/p/11365755.html

    1. import zipfile
    2. import string
    3. import binascii
    4. def CrackCrc(crc):
    5. for i in dic:
    6. for j in dic:
    7. for k in dic:
    8. for h in dic:
    9. s = i + j + k + h
    10. if crc == (binascii.crc32(s.encode())):
    11. f.write(s)
    12. return
    13. def CrackZip():
    14. for i in range(0,68):
    15. file = 'out'+str(i)+'.zip'
    16. crc = zipfile.ZipFile(file,'r').getinfo('data.txt').CRC
    17. CrackCrc(crc)
    18. dic = string.ascii_letters + string.digits + '+/='
    19. f = open('out.txt','w')
    20. CrackZip()
    21. print("CRC32碰撞完成")
    22. f.close

    44.被偷走的文件
    本来应该是分析流量包
    但是万万没想到是用binwalk+foremost分离出压缩包
    爆破压缩包密码4位得到flag


    45.弱口令
    无力吐槽,误导爆破压缩包
    实际上压缩包隐藏着不可见字符的注释
    还得把注释复制到sublime ,因为sublime默认显示tab和空格
    尼玛这是摩斯电码,你敢信?
    得到压缩包密码,解压时一张png图片
    用steg查看可能是LSB,但是不对
    原来这里才是弱口令,加密后的LSB
    弱口令123456
    使用工具: https://github.com/livz/cloacked-pixel python2
    python lsb.py extract 女神.png out.txt 123456
    (这工具也太老了。。)


    46.佛系青年
    fo.txt 伪加密
    与佛论禅在线解密得到flag


    47.TARGZ-y1ng
    禁止套娃!
    好吧,其实就是一个压缩包不停解压的故事
    压缩包密码就是文件名本身
    怼到一半写了个脚本,写完脚本才发现出题人简直魔鬼
    脚本如下:

    1. import sys, os, zipfile
    2. def unzip_single(src_file, dest_dir, password):
    3. ''' 解压单个文件到目标文件夹。'''
    4. if password:
    5. password = password.encode()
    6. zf = zipfile.ZipFile(src_file)
    7. try:
    8. zf.extractall(path=dest_dir, pwd=password)
    9. except RuntimeError as e:
    10. print(e)
    11. zf.close()
    12. if __name__=="__main__":
    13. start="hW1ES89jF.tar.gz"
    14. password=start.split('.')[0]
    15. path=os.getcwd()+"\\"+password
    16. os.mkdir(password)
    17. unzip_single(start,path,password)
    18. while True:
    19. start=path+"\\"+os.listdir(path+"\\")[0]
    20. print(start)
    21. password=(start.split('.')[0]).split('\\')[-1]
    22. print(password)
    23. path=os.getcwd()+"\\"+password
    24. os.mkdir(password)
    25. unzip_single(start,path,password)

    48.我有一只马里奥
    运行程序,提示ntfs
    使用ntfsstreamseditor
    得到flag


    49.谁赢了比赛
    binwalk+foremost 分离得到一个加密rar压缩包
    没有任何密码提示,所以尝试爆破
    爆破得到密码,图片hehe.gif
    分帧查看得到可疑一帧,使用steg将帧保存为图片
    steg打开图片,red channel二维码解码得flag
    (大胆尝试,小心求证,宁杀错勿放过~)


    50.藏藏藏
    binwalk+foremost+QR_code