png_master
IDAT
块是储存图像数据的块,在这个块中存放在图像真正的数据信息,IDAT 块只有当上一个块充满(正常length最大65524)时,才会继续一个新的块- 完整的图像数据由一个单独的
zlib datastream
表示,它储存在一个IDAT
块中 - 一个png文件中无论有多少个
IDAT
区块,在IDAT
块中只会出现一个zlib
块 789C
在png文件中为zlib
的标志位- 一个
zlib
数据块只有一个标志位,即只会出现一次789C
flag第一段藏在png文件末尾,base64解码后获得DASCTF{2fd9e9ff-e27
binwalk和zsteg都会提示png后有额外块,也可以使用pngcheck -v
检查每个IDAT块是否有错误
在010中把有问题的IDAT块复制,找一张png图片,取其文件头尾,将IDAT块复制出,作为一张新的图片,但因为宽高不知,用Puzzle Solver进行宽高爆破,得到宽高是500*500,获得flag a19131f86216}
StegSlove中可以看到Alpha通道有东西
尝试后可以找到中间段flag d-5405-c5f5-
EZ_zip
直接解压会报错,010打开模板报错,发现解压文件长度不对,可以看到320.zip
长度应该为7(文件长度要加后缀长度),修改为7,要将文件头和目录区长度都修改
解压后提示CRC校验错误,参照着DirEntry改动record段,可以发现是解压方法被改成了store,跟压缩方法对不上,修改解压方式
修改后可以正常进行解压得到320.zip
,查看压缩文件注释可以得到密码的提示just a byte
,密码为一个字节,可以使用python进行爆破。
1 | import pyzipper |
解压得到一个txt,提示加密方法为AES-ECB,并提示key可能在前面的过程中就出现了
联想到前面解压密码是字节形式,通过打印解压密码发现
1 | import pyzipper |
c64e5e2225444a9da66b0f28ad718f798cffa70a48124ec5873a610c5899bb11c64e5e2225444a9da66b0f28ad718f798cffa70a48124ec5873a610c5899bb11c64e5e2225444a9da66b0f28ad718f798cffa70a48124ec5873a610c5899bb11c64e5e2225444a9da66b0f28ad718f798cffa70a48124ec5873a610c5899bb11c64e5e2225444a9da66b0f28ad718f798cffa70a48124ec5873a610c5899bb11c64e5e2225444a9da66b0f28ad718f798cffa70a48124ec5873a610c5899bb11c64e5e2225444a9da66b0f28ad718f798cffa70a48124ec5873a610c5899bb11c64e5e2225444a9da66b0f28ad718f798cffa70a48124ec5873a610c5899bb11c64e5e2225444a9da66b0f28ad718f798cffa70a48124ec5873a610c5899bb11c64e5e2225444a9da66b0f28ad718f798cffa70a48124ec5873a610c5899bb11
是循环的一个64位字符,将其当作key解密AES得到flag
ServerMeM
题面信息如下
公司的服务器遭受了黑客的攻击,经过勘察黑客为维持权限留下了后门,我们获取到了服务器的内存文件,请你分析黑客留下的痕迹
下载附件并解压得到:out.lime、System.map
在WSL中用以下命令搜索一下得到Linux内核的版本号,因此很明显就是Linux内存取证了
strings mem | grep -i ‘Linux version’ | uniq
本题提供两种解法,第一种是常规的通过制作Linux的符号文件来进行取证,另一种就是直接分析内存中的可疑文件
解法一
Linux内核版本信息如下:
Linux version 5.4.27 (root@localhost.localdomain) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)) #1 SMP Sun May 26 03:37:06 EDT 2024
解法二
直接在strings的结果中搜索 ”.tar.gz” 后缀的文件,发现有一个S3rCr3t.tar.gz
知道了文件名后直接在010中搜索,得到了openssl AES加密后的密文(以Salted开头)
还有openssl的具体版本:1.0.2k
用CyberChef提取,注意后面的注释不要一起提取出来
继续往下查看,可以找到 openssl 加密的密钥:P@ssW0rdddd
然后只要安装openssl-1.0.2-k,使用得到的密钥解密即可
具体安装步骤如下,编译完成后openssl可执行文件在apps目录下
wget https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz
tar -xzvf openssl-1.0.2k.tar.gz
cd openssl-1.0.2k.tar.gz
./config --prefix=/usr/
make
使用以下命令解密即可得到flag:DASCTF{c086cd55-b86a-4ee6-8933-c8bee578148a}
./openssl-1.0.2k/apps/openssl enc -d -aes256 -in download.bin -out flag.tar.gz -k P@ssW0rdddd
ez_wav
打开key.grc
可知key文件经过如上流程变成look.txt文件。我们需要根据这个流程逆回key文件
信号源——》xor->数据类型转换->相乘一个常数->写入
下面的Vector Source提供的一个脉冲信号
exp如下
010打开后得到密码 good_job
打开flag.grc
如果我们想要抵消载波的影响,那么就需要给他相乘一个相反的波形,下面是AM解调过程
如果我们想要抵消载波的影响,那么就需要给他相乘一个相反的波形,下面是AM解调过程
如果我们想要抵消载波的影响,那么就需要给他相乘一个相反的波形,下面是AM解调过程
听flag即可