工具:
https://blog.csdn.net/qq_44204058/article/details/122995362
这是一张单纯的图片
用winhex打开图片,发现下面有一些编码明显不同,Unicode解码为 ASCII,得到flag
隐写1
打开压缩包,发现是一张图片
补充一些png格式的内容
一个PNG文件可以看作是由多个数据块(chunk)部分组成,如同积木一样,一个数据块就是一个小积木,不同类型的积木组合搭建成了我们的PNG图像。
PNG图像至少由文件署名域和三个关键数据块IHDR,IDAT,IEND组成
PNG文件中,每个数据块由4个部分组成
1: IHDR数据块
结构 :
1.Width ( 宽度 ) : 4 Bytes , 图像的宽度 , 单位 : 像素 ;
2.Height ( 高度 ) : 4 Bytes , 图像的高度 , 单位 : 像素 ;
3.Bit depth ( 位深度 ) : 1 Byte , 图像深度 ; 下面是位深度的取值范围 :
① 真彩色图像 : 8 位 , 16 位 ;
② 灰度图像 : 1 位 , 2 位 , 4 位 , 8 位 , 16 位 ;
③ 索引彩色图像 : 1 位 , 2 位 , 4 位 , 8 位 ;
4.ColorType ( 颜色类型 ) : 1 Byte , 下面是可取值的范围和意义 :
① 类型 0 : 灰度图像 ;
② 类型 2 : 真彩色图像 ;
③ 类型 3 : 索引彩色图像 ;
④ 类型 4 : 带 α \alpha α 通道数据的灰度图像 ;
⑤ 类型 6 : 带 α \alpha α 通道数据的真彩色图像 ;
5.Compression method ( 压缩方法 ) : 1 Byte , 使用 LZ77 压缩算法 ;
6.Filter method ( 滤波器方法 ) : 1 Byte ;
7.Interlace method ( 扫描方法 ) : 1 Byte , 可取值的选择 :
① 方法 0 : 非隔行扫描法 ;
② 方法 1 : Adam7 扫描方法 ( 7遍隔行扫描方法 ) ;
2: IDAT数据块
IDAT存放着图像真正的数据信息,因此,如果能够了解IDAT的结构,用户就可以很方便的生成PNG图像
IDAT数据块存储的格式取决于PNG的格式以及是否压缩。
PNG文件格式分为PNG-24和PNG-8,其最大的区别是PNG-24是用24位来保存一个像素值,是真彩色,而PNG-8是用8位索引值来在调色盘 中索引一个颜色,因为一个索引值的最大上限为2的8次方既128,故调色盘中颜色数最多为128种,一旦使用了压缩我们必须使用zlib解压才能看见它的具体颜色。
2: IEND数据块
图像结束数据IEND:它用来标记PNG文件或者数据流已经结束,并且必须要放在文件的尾部。如果我们仔细观察PNG文件,我们会发现,文件的结尾12个字符看起来总应该是这样的:
00 00 00 00 49 45 4E 44 AE 42 60 82
不难明白,由于数据块结构的定义,IEND数据块的长度总是0(00 00 00 00,除非人为加入信息),数据标识总是IEND(49 45 4E 44)
解题步骤
刚开始文件时500-420的像素,尝试使用winhex打开图片,修改一下IHDR ,改成500-500的像素,既就是,将长和高改成一样的数值,在这里将A4改成F4,保存,打开图片,发现flag
隐写2
打开图片,看见是后半段是日文,翻译了一下,感觉被侮辱了。用winhex打开,也没有任何发现。
将文件后缀改为zip,解压出来一个压缩包和一个图片,根据图片得知压缩包的密码为三个数字
使用工具RAR Password Unlocker爆破,得到密码为871
再解压,得到一张图片,用winhex打开,终于看到了想要的东西
拿去base64解码,得到f1@g{y0u Are a h@cker!}
easy_ nbt
由于本人不玩游戏,所以是直接没有一点思路,根据评论区发现,好像是MC的一个游戏数据,让我去看level.dat
由于本人不玩游戏,所以是直接没有一点思路,根据评论区发现,好像是MC的一个游戏数据,让我去看leave.dat
首先搜索一下什么是nbt:
我的世界二进制命名标签(Name Binary Tag),NBT格式为Minecraft中用于向文件中存储数据的一种存储格式。
NBT格式以树形结构并配以许多标签的形式存储数据。所有的标签都有一个独立的ID和名称。
再去搜索我的世界nbt,发现一个插件-explorer,去下载(找不到官方,后面再说吧!)
第二种方法,找到level.bat,将文件格式改为zip,然后使用解压缩软件解压,出现一个文件为level,再将后缀改为txt,用记事本打开,ctrl+f查找flag ,得到flag
telnet
这道题就非常简单了,用winhex打开文件,就可以看见flag 了
眼见非实
下载后发现文件名为zip,感觉有一点点奇怪,第一次看见用zip命名的文件。解压后有个docx文件,打开什么都没有发现眼见不一定为实啊,说的不就是他虽然是.docx后缀,但他不一定是真的.dcox文件。所以使用winhex打开,看看它的文件类型。这个时候就需要一些文件头的知识了,这里整理了一些常见的文件头。
JPEG (jpg),文件头:FFD8FF
PNG (png) ,文件头:89504E47
GIF (gif),文件头:47494638
XML (xml),文件头:3C3F786D6C
HTML (html),文件头:68746D6C3E
MS Word/Excel (xls.or.doc),文件头:D0CF11E0
Adobe Acrobat (pdf),文件头:255044462D312E
ZIP Archive (zip),文件头:504B0304
RAR Archive (rar),文件头:52617221
MPEG (mpg),文件头:000001BA
Rar的文件头:52617221Rar的文件头一般是52617221
接下来用winhex打开这个“docx”文件,通过文件头对比发现它应该是一个zip文件,将后缀改回为zip,之后再进行解压,用压缩软件搜索flag定位到文件
然后再使用记事本打开document.xml文件,搜索flag,成功找到
啊哒
打开是一个表情包,刚开始想用winhex打开看一看,有没有什么编码加密。结果没有获得任何信息,看看图片的属性,发现相机型号是一个16进制的数
尝试在线(https://www.bejson.com/convert/ox2str/)解码为字符串,说明思路没有错,它指定是一个密码,第一时间能想到的是解压密码
将图片后缀改为.txt,用记事本打开,搜索flag,发现flag.txt
再将后缀改为.zip,解压时果然需要密码,
解压成功后出现flag.txt,打开发现flag
ping
使用wireshark打开,发现最后一个字符是f,逐个点击,一个一个地拼起来,得到flag为flag{dc76a1eee6e3822877ed627e0a04ab4a}
赛博朋克
下载文件是个压缩包,尝试解压,发现需要密码。用winhex打开,看到文件头是png格式,改改后缀
在这里涉及到伪加密的知识,来总结一下
zip伪加密是在文件头的加密标志位做修改,进而再打开文件时识被别为加密压缩包。
一个 ZIP 文件由三个部分组成:
压缩源文件数据区+压缩源文件目录区+压缩源文件目录结束标志
举例:
压缩源文件数据区:
50 4B 03 04:这是头文件标记(0x04034b50)
14 00:解压文件所需 pkware 版本
00 00:全局方式位标记(有无加密)
08 00:压缩方式
5A 7E:最后修改文件时间
F7 46:最后修改文件日期
16 B5 80 14:CRC-32校验(1480B516)
19 00 00 00:压缩后尺寸(25)
17 00 00 00:未压缩尺寸(23)
07 00:文件名长度
00 00:扩展记录长度
6B65792E7478740BCECC750E71ABCE48CDC9C95728CECC2DC849AD284DAD0500
压缩源文件目录区:
50 4B 01 02:目录中文件文件头标记(0x02014b50)
3F 00:压缩使用的 pkware 版本
14 00:解压文件所需 pkware 版本
00 00:全局方式位标记(有无加密,这个更改这里进行伪加密,改为09 00打开就会提示有密码了)
08 00:压缩方式
5A 7E:最后修改文件时间
F7 46:最后修改文件日期
16 B5 80 14:CRC-32校验(1480B516)
19 00 00 00:压缩后尺寸(25)
17 00 00 00:未压缩尺寸(23)
07 00:文件名长度
24 00:扩展字段长度
00 00:文件注释长度
00 00:磁盘开始号
00 00:内部文件属性
20 00 00 00:外部文件属性
00 00 00 00:局部头部偏移量
6B65792E7478740A00200000000000010018006558F04A1CC5D001BDEBDD3B1CC5D001BDEBDD3B1CC5D001
压缩源文件目录结束标志:
50 4B 05 06:目录结束标记
00 00:当前磁盘编号
00 00:目录区开始磁盘编号
01 00:本磁盘上纪录总数
01 00:目录区中纪录总数
59 00 00 00:目录区尺寸大小
3E 00 00 00:目录区对第一张磁盘的偏移量
00 00:ZIP 文件注释长度
根据上面的知识,打开压缩文件,查找504B,成功找到压缩源文件目录区,将0900改为0000,并保存
解压出来一个txt文本,打开,是一团乱码,开头有个NG是格外的显眼啊,和前面的猜测吻合。将后缀改为png
果然,打开是一张完整的图片,这个时候考虑隐写,使用工具Stegsolve,最常见的是lsb隐写,可以参考文章
https://www.dandelioncloud.cn/article/details/1500438054954414081
贝斯手
flag.zip无法解压,需要密码,用winhex打开发现不是伪加密
查到古力娜扎出生于1992年,试了一下,是解压密码,解压出来一个.txt文件
5是MD5加密,百度得知还有base58加密(http://www.metools.info/code/c74.html),联合解密,得到flag
可爱的故事
打开压缩包,
很明显需要翻译,但是真的不知道这是什么语言,看评论,说是提瓦特语言(原神),呃呃呃…我不玩游戏,况且这个没有在线翻译网站,在网上找到了一张对照表,先翻译出flag
通读全文去找带bugku的提瓦特文。发现在第一章图片的最后一句话中。将这一句话全部翻译。得到了一句“i am learning teyvat in bugku”。
得到flag :bugku{iamlearningteyvatinbugku},大冤种们记得把空格去掉
blind_injection
使用工具打开,到处http,把后面的字母拼接起来,emails,flag_e6d3da86fe34a83bbfbdb9d3177a641,referers,uagents,users所以flag为:flag{e62d3da86fe34a83bbfbdb9d3177a641}
又一张图片,还单纯吗
这里需要使用一个工具foremost ,在kali中安装的命令是
sudo apt-get update
sudo apt-get install foremost
将图片复制到虚拟机,foremost +地址进行分离,
接着打开output文件夹,发现分离出两张图片
FileStoragedat
解压得到一个.dat文件,用winhex/改后缀等方法没有任何发现,上网查一下FileStoragedat
这是微信存储数据的一个文件夹,该文件加下存放的是经过加密后微信中发送、接受的图片而形成的文件后缀为dat的文件。找到一个工具
解密结束后打开图片,flag就在最前面,bugku{WeChatwithSteg0}
where is flag 番外篇
这道题脑洞真的好大!!打开所有压缩包,发现key.rar有密码,另一个压缩包有13个txt文档,
那么我们大胆推断,每个文档的字数不一样会对文档的大小产生影响,而有的文档最后之所有有大写字母来填充,那么就是为了凑文档大小的数字!!!用winrar打开,大小果然不一样
根据评论区提示:会不会是两个数值经过某个运算后的数值?
我们试试减法。353-278=75,以此类推。
得到一串数字,75 101 121 58 90 104 117 71 76 64 64 46 48很像ascii码。好像不支持在线数字解码,手动对比,得到密码Key:ZhuGL@@.0 ,解压后得到一张图片。
用记事本打开,发现flag, flag in here {LjFWBuxFNTzEWv6t2NfxjNFSH1sQEwBt5wTTLD1fJ} 再使用base58在线解码,得到flag:bugku{th1s_1s_chu_Sh1_B1A0!!@}
再也没有纯白的灵魂
查看评论区,提到了兽音加密,在线加密一下flag,发现和记事本开头的内容相似,B-嗷 U-呜 G-啊 K-~ 用word替换对应编码。
替换之后拿去解密,发现解不出来尝试解密,但是发现解密不出来,我思考看看有什么问题,把flag加密后的进行下比较
呜嗷嗷嗷嗷呜啊嗷啊呜呜嗷呜呜嗷嗷啊嗷啊呜嗷嗷嗷嗷呜呜嗷呜啊啊 发现前面少了了个啊。把啊加上试试
对于一个全新的加密方式,我们可以在原文处输入flag的关键字尝试找出加密规律
宽带信息泄露
bin文件:
二进制文件,其用途依系统或应用而定。一种文件格式binary的缩写。一个后缀名为".bin"的文件,只是表明它是binary格式。比如虚拟光驱文件常用".bin"作为后缀,但并不意味着所有的bin文件都是虚拟光驱文件。一般来讲是机器代码,汇编语言编译后的结果(磁盘操作系统下汇编语言编译后与".com"文件相类似),用debug、WINHEX,U_EDIT等软件可以打开(通常不一定能看得懂是些什么除非学习过汇编语言)
综上所述,那么bin文件时应用系统而定的,是一个二进制文件,例如虚拟光驱文件、路由器配置文件等等。
题目提示为宽带信息泄露,那么可能就和路由器配置文件些许有点关联了。
其实bin文件的备份,就是因为想要查看路由器的账号和密码,通过备份配置文件而借助某种工具来进行查看。
这种查看路由器配置文件的工具叫做RouterPassView。这是路由器宽带密码查看恢复软件,它能够帮助你找出路由器里保存的宽带拨号帐号密码 (PPPoe拨号)、路由器的管理密码、WiFi连接密码等等,在一些特定的情况下非常实用!
RouterPassView下载地址:http://www.nirsoft.net/utils/router_password_recovery.html
用工具打开,搜索username,根据题目描述,知道flag{053700357621 }
多种方法解决
这个文件提示不能在我的电脑上打开,使用winhex,发现既有jpg,又有base64,猜测是base64转图片,这里有两种处理办法
1:写个html,将文件后缀改为txt打开,按照这个()格式编写 ,并把文件放在phpstudy的www目录下,打开浏览器访问就能看到二维码
2:将文件后缀改为txt,打开得到base64编码,找个网站(在线工具https://tool.chinaz.com/tools/imgtobase)转换成图片,得到二维码就得到KEY{dca57f966e4e4e31fd5b15417da63269}
闪的好快
打开是一个动态图片,有18个二维码,使用动态图片在线分解(https://tu.sioe.cn/gj/fenjie/)
也可以使用wps自带的,一帧一帧地看
每个二维码对应一个字符,挨个扫,得到答案SYC{F1aSh_so_f4sT} (注意大小写,千万不要相信自己的眼睛!)
白哥的鸽子
我们用winhex来打开这张图片。将鼠标滑倒最底部,发现了一点可疑信息。把它复制下来:fg2ivyo}l{2s3_o@aw__rcl@
用bugku的在线工具,fg2ivyo}l{2s3_o@aw__rcl@,发现里面包含flag{}等关键信息,这段字符串是经过某种加密后的算法得出的。此处用的是栅栏密码。
栅栏密码:就是把要加密的明文分成N个一组,然后把每组的第1个字连起来,形成一段无规律的话。若每个组里有2两个元素的话就叫2栏栅栏密码。 不过栅栏密码本身有一个潜规则,就是组成栅栏的字母一般不会太多。(一般不超过30个,也就是一、两句话)
示例
密文:csdn
加密:将csdn分为两个字符一组,分为两行排列。
cs
dn
将第一组的c和第二组的d组成一个新的组cd,在将第一组的s和第二组的n组成一个新的组:sn。拼接到一起为密文:cdsn。
解密:将cdsn分为2个字符一组,为了便于观看,分为上下两行。
cd
sn
将第一组的c和第二组的s组成一个新的组cs,在将第一组的d和第二组的n组成一个新的组:dn。拼接到一起为原文:cdsn。
用bugku的在线工具,得到flag{w22_is_v3ry_cool}
linux
两次解压,然后用记事本打开,搜索key 得到答案, key{feb81d3834e2423c9903f4755464060b}
或者是放在虚拟机linux下,直接解压两次,看到flag ,使用基本命令cat flag
富强民主
奇奇怪怪的加密知识又增加了,兽音加密,栅栏加密,这次居然是价值观加密,打开bugku的在线工具,解密就可以得到flag了
flag{90025f7fb1959936}
简单套娃
kali中安装binwalk????????
安装前如果装过 可以先卸载
apt-get remove binwalk //卸载binwalk
apt-get update //更新软件列表
git clone https://github.com/ReFirmLabs/binwalk //获取binwalk源码,速度慢可以用国内的地址替换
cd binwalk
python setup.py install
apt-get install python-lzma //如果运行的是Python 2.x,强烈建议安装可选的Python lzma模块(但不是必需的),python3中已经包含
//简单安装
sudo apt-get update
sudo apt-get install binwalk
windowns下可以参考这篇文章(https://www.cnblogs.com/0yst3r-2046/p/12218770.html)
用winhex打开,发现有两个文件头,复制第二个文件头后面的内容,另存为一张图片
使用工具StegSolve,查看图层,发现flag ,两张图片结合着看
flag{Mumuzi_the_GOd_of_Matryoshka}
zip伪加密
伪加密的知识之前在赛博朋克中详细介绍过,这里只需要用winhex打开,查找504B0102,再将后面的09改为00就可以了
隐写3
一个简单的改高,就可以爆出flag{He1l0_d4_ba1}
想蹭网先解开密码
创建密码字典:使用命令 crunch 11 11 -t 1391040%%%% -o password.txt
爆破:使用命令 aircrack-ng -a2 所下载文件的地址 -w password.txt
然后输入数字3
得到flag{13910407686},总结kali的工具就是香!
三色绘恋
下载下来的压缩包是一个伪加密,修改09为00,解压得到一张图片,放在kali下的foremost分离
得到一个图片和一个压缩包,压缩包有密码,不是伪加密。
修改图片的高(jpg修改的高度宽度再ffCO之后),得到压缩包的密码,解压后得到 fLag{M0_XIa0_Ju_T1an_XIa_Dl_1!}
kali下
windowns下
想要种子吗
首先需要安装一个工具steghide
//linux安装方法:
apt-get install steghide
//查看帮助
steghide --help
//查看图片中嵌入的文件信息
steghide info 文件路径/文件名
//隐藏文件
steghide embed -cf COVERFILE -ef 文件路径/文件名
//提取文件
steghide extract -sf 文件路径/文件名
使用steghide,分理处图片下隐藏的文本123.txt
打开是一个网址, 用浏览器打开是一个百度提取网盘,输入提取码,下载压缩包
下载后的压缩包有密码,使用工具Ziperello暴力破解,得到密码为666666
解压缩得到一个.txt和一张图片
再利用kali的foremost 分离图片,又得到一个压缩包
解压后得到一张图片,用winhex打开改高,得到一串密文
百度得知是维吉尼亚密码,找到破解网站(https://www.guballa.de/vigenere-solver)得到flag{ThisisYourTorrent}
无止境的图片,基本涵盖了图片题的操作,不错不错,脑洞很大!!
baby_flag.txt
下载了是一张图片,用winhex打开,发现有rar的文件头,剪切去前面的一部分,将后面的部分保存为一个新的文件
rar的文件头一般都是53 61 72 21 ,这里刚好反了,给它改过来
改后缀为rar,得到一个有密码的压缩包
那么密码肯定藏在这个图片中,尝试改高,jpgd的高一般在FFC0后面,将高改为3
解压得到一个文本,里面是加密过的,不知道这个是什么密文,根据评论区提示说是Malbolge语言,找到一个在线解密网址(https://zb3.me/malbolge-tools/)得到flag: bugku{what_An_U91y_pro9ramming_lAngUa9e}
细心的大象
打开图片属性,发现备注里有一串base64编码,拿去解密
然后把图片放在foremost下分离,得到一个压缩包,解压密码正好是刚才解出来
得到一张图片,放在winhex里面改高
得到flag :BUGKU{a1e5aSA}
美丽的烟火
压缩包有密码,猜测可能是伪加密,找到伪加密的地方将09改为00,保存后解压(注意,有两处,都要进行修改)
识别真伪加密:
无加密:
压缩源文件数据区的全局加密应当为00 00
且压缩源文件目录区的全局方式位标记应当为00 00伪加密:
压缩源文件数据区的全局加密应当为00 00
且压缩源文件目录区的全局方式位标记应当为09 00真加密:
压缩源文件数据区的全局加密应当为09 00
且压缩源文件目录区的全局方式位标记应当为09 00
安装隐写工具zsteg
//这个会下载到当前打开的文件夹下
git clone http://www.github.com/zed-0xff/zsteg
要换国内源
//1.查看现有源:
gem sources -l
//2.删除现有源:
gem sources --remove https://rubygems.org/
//3.添加新源:
gem sources -a http://gems.ruby-china.com/
//安装gem(Kali2020版需要root权限,命令前添加sudo)(这一步需要等待一下下)
(如果不换源的话,会等待老长时间然后报个错(等待,永远的等待~)
apt-get install gem
//安装zsteg:
gem install zsteg
steg.py的密码就是,zsteg+图片 出来的shumu
然后打开.txt文本解密,这个解密真的是如果对各种加密不熟悉,真的看不出来,base64–>base58–>栅栏密码
现在就得到了两种数据th1s_1s_passwd aZgs8ImPpQOzO3CVA/wIUVq/M7X8C33ptNZSW2Blenc=
最后一部用 看这password.txt名字,想到密钥这种,试试AES(https://the-x.cn/cryptography/Aes.aspx),即可得到答案 flag{yX73nAutbBozYhge6d2flG}
黑客的照片
使用foremost分离
得到一个文本文件,是rsa解密,解密得到压缩包的密码I_1ove_mumuz1!
得到的图片,放在winhex里面改高得到一段密码
再拿到kali下,进行zsteg,又得到一段flag ,将他们拼接起来即可
flag{m1s3_1s_eas3_bu1_misc_d0n't_love_me}
神秘的文件
打开压缩包是一个flag.zip和一张图片,压缩包需要密码,直接拿去爆破,一直爆不出来,看评论区提到了明文攻击,试一试。
明文攻击需要注意,两个压缩包后缀必须相同,且压缩工具要一样
攻击类型选择明文,明文路径选择压缩的图片压缩包
得到密码,解压,得到一个.docx文本
放在winhex 看一看,一看文件头就不对劲,这是压缩包的文件头,况且后面的pk是压缩包创始人的缩写,提示已经很明显了,将后缀改为zip
解压,得到一对乱七八糟的文件,但是幸好不是很多,随便翻一翻看到flag.txt,打开一看是一段base64编码,解码得到flag