前言
之前做杂项的题比较佛,主要是比赛里面考的大多是脑洞,弯路多,有时候没有hint挺难找到思路,做多了也没什么提升,还是喜欢实打实的脚本题和取证分析。4月25号到五一假期结束那段时间,一口气刷了五页题,实际上考点就那些。小学期搞完了之后,来总结一下知识体系,有些很简单的签到题就一语带过了,用到脚本的题,我会把代码贴上去
题解
[签到]
flag在题干里面
[jsp]
下载的是一个gif,用WPS图片打开,保存所有帧,flag分成三个部分放在了21,51,79帧上,连起来
[二维码]
用CQR扫一下这个二维码,提示是secret is here
拖进winhex看一看,发现PNG文件后面跟了zip(PK是文件头)
于是foremost一下
得到一个加密的zip,里面的文件是4number.txt
联想到暴力破解,四位数字密码
破解到密码之后,打开txt就是flag
(涉及到扫二维码的题建议用CQR这种工具,微信扫一扫可能扫不出来,也不方便)
[你竟然赶我走]
winhex拖到最下
[N种方法解决]
winhex打开,发现是一串base64
CaptfEncoder解一下码,发现是个png文件
在线工具the-x中,另存为png,是个二维码
扫一下,不多说
[大白]
题目给的提示是图片太小了,自然联想到修改图片宽高
png格式的图片,有一个数据块叫IHDR(header chunk),存储着图片的基本信息,包括宽和高
拖进winhex,找到高度对应的地方 01 00
改大一点就能看到flag了
(这类改宽高或者涉及到CRC32校验的题可以先放到linux里面,它会报错)
[基础破解]
4位数字,暴力破解一下就行
最后base64解码,没什么好说的
[乌镇峰会种图]
图片拖到winhex,flag在最下面
[文件中的秘密]
右键属性→详细信息→flag在备注里面
[wireshark]
字符串搜索password,选中包之后右键追踪TCP流(HTTP也行),找到password位置就是
(流量分析题可以先搜像key,pass,flag,password,secret这类关键词)
[LSB]
顾名思义就是LSB隐写,用stegsolve打开,analyse→data extract
可以看到隐写的是一个png图片,save bin保存为.png格式的图片
二维码扫一扫就行
LSB隐写原理就是图片中的像素一般是由三种颜色组成,即三原色(红绿蓝),由这三种原色可以组成其他各种颜色,在png图片的存储中,每个颜色占有8bit,即有256种颜色,一共包含256的三次方颜色,即16777216中颜色,人类的眼睛可以区分约1,000万种不同的颜色,剩下无法区分的颜色就有6777216。
因为人眼的视觉冗余,对图片中某点的像素发生上述改变时几乎是察觉不到的。
LSB隐写就是修改了像素中的最低位,把一些信息隐藏起来。png图片是一种无损压缩,也只有在无损压缩或无压缩的图片(bmp图片是一种无压缩)上实现LSB隐写,如果是jpg图片,就没办法使用lsb隐写了。
LSB隐写就是修改RGB颜色分量的最低二进制位也就是最低有效位,每个像素可以携带3比特的信息,10进制的235表示的是绿色,我们修改二进制中的最低位,颜色依旧看不出有什么变化,从而达到隐藏信息的目的。
或者,将最低有效位替换为0和1,然后7位或8位一组组成新的ASCII码,比如说十进制数据253对应的二进制数据是1111 1101,而字符串也可以先转换为二进制数据。
我们只需要把要隐藏的数据先转换为二进制数据,然后再将其按照某种规则差分,按位写入图像的部分像素的二进制数据的最后一位即可。
参考:https://www.jianshu.com/p/f8fc89441be0
[rar]
4位数字,暴力破解一下就行
但是这里要输好几次,也没啥意义
[zip伪加密]
一个zip文件由三部分组成:压缩源文件数据区、压缩源文件目录区和压缩源文件目录结束标志,其中50 4B 是头文件的标记,可以根据之后的两个字节来区分不同区域。
在压缩源文件数据区中,第七和第八个字节是判断文件有无加密的重要标志,00 00表示文件未被加密,09 00表示文件被加密,需要解密密码
在压缩源文件目录区中,第九和第十个字节用来判断打开文件是否需要密码,00 00表示无需密码,09 00表示需要密码
而当压缩源文件数据区中为00 00,压缩源文件目录区中为09 00时,这个文件就是一般伪加密的zip,此时无论怎样爆破密码都进不去,因为根本就不存在密码,只是会弹输入框出来;当源文件数据区和目录区均为00 00时就是无需解密的正常zip;当源文件数据区和目录区均为09 00时就是需要解密的正常zip,可以通过爆破的方式破解密码,同时也可能是另一种伪加密的zip
对于这个题目,拖进winhex中,可以看到压缩源文件数据区中和源文件目录区中对应的加密标志位都是09 00,但实际上这是上述第二种伪加密方法,这样的方法相较于前一种更容易骗住人,都改为00 00后得到flag
[qr]
扫描二维码得到flag
[被嗅探的流量]
用wireshark打开文件,往下翻看到了一个GET /upload.php的请求头,追踪TCP流
在第二个TCP流中看到了flag.jpg的字样,可以判断这里是用户通过POST的方式,上传了带有flag信息的图片
翻到最下面看到flag
当然这里也可以搜索字符串
[镜子里面的世界]
图片上说的是Look closely,但是并没有什么用,先拖到winhex里面看看
除了这一堆神秘的字符串,其他什么信息都没有了
根据文件名steg猜测是把关键信息隐写了,通过stegsolve打开图片,Data Extract一下,看到被隐写的flag,这里是RGB通道
[ningen]
拖到winhex里面,在最后面发现了压缩文件zip的文件头50 4B,通过手工提取或者foremost都可以分离出压缩包来
根据题目描述可知这个压缩包的密码是四位数字,直接爆破
输入密码得到flag
[小明的保险箱]
跟上个题比较类似,在最下面看到rar压缩包的文件头52 61 72 21 1A 07 00
提取出来,根据文件提示爆破四位密码
[爱因斯坦]
拖进winhex,翻到最下面看到zip的文件头,提取出来
初步猜测是伪加密,但将压缩源文件数据区和目录区的字节位更改为00 00后发现打不开,故这个zip文件并不是伪加密
查看图片的属性,在备注中看到密码
输入密码得到flag
[easycap]
用wireshark打开文件,追踪TCP流得到flag
[隐藏的钥匙]
拖进winhex,往下翻找到一串base64加密的字符串
解密得flag
[另外一个世界]
拖进winhex,在最下面发现一串二进制
二进制转化为字符串得flag(网上有在线工具)
[FLAG]
下载图片之后,拖进winhex里面没有其他发现,于是用stegsolve打开,Data Extract之后发现zip压缩文件的文件头
另存为flag.zip,解压之后得到一个无格式文件,用winhex打开,发现flag
[假如给我三天光明]
下载文件下来,有一张图片,还有一个压缩包,压缩包里头是一段wav格式的音频,解压需要密码
这个图片中有八个符号,每个符号都是用3*2的六个点阵中来表示,根据书名联想到盲文
解密后得kmdonowg,用这个密码打开压缩包
这段音频是明显的摩斯电码
翻译过来得到flag
[神秘龙卷风]
根据题目提示可知,这个压缩包的密码是4位数字,爆破一下:
打开后发现是一串由+.>这些符号组成的文档,这种代码叫brainfuck,它是一种极小化的计算机语言,用±<>等标点符号来操作指针
在线解密得flag
[后门查杀]
在attacktest.sql中发现攻击者的注入记录
admin之后的那个字符串正好是32位,符合md5,应该就是管理员的登录密码
于是这就是flag
[数据包中的线索]
用wireshark打开之后,追踪TCP流后发现一串base64
解密之后保存为jpg文件
flag就写在图片里头
[荷兰宽带数据泄露]
这个题要用到RouterPassView,是一个可以查看路由器配置的工具,比如你忘了密码的话可以在这里来找
这个username就是flag
[来首歌吧]
这首歌里面都是喵喵喵喵喵喵
用audacity打开
发现摩斯电码,翻译后得flag
[webshell后门]
这个文件夹里头的文件非常多,可以利用杀毒软件帮我们查找后门的位置
我用的是火绒,D盾也可以
扫出来在member/下有一个后门zp.php
打开后找到pass的值即为flag
[面具下的flag]
把图片拖进winhex,翻到最下面发现有PK文件头,用foremost分离得到一个压缩包
压缩包里头是flag.vmdk文件,可以在linux下用7z解压
得到key_part_one和key_part_two文件夹
第一部分是brain法克,第二部分是Ook!,各自解码后连接起来得到flag
[九连环]
道理类似,拖到winhex之后发现了PK文件头,分离
得到的压缩包是伪加密,修改对应位置7210行中的标记位为00 00后解压
得到一个图片和带密码的压缩包,把这个图片用stegsolve解密得到ko.txt
转换编码可知这个是压缩包的密码
输入密码得到flag