2022第二届鹏城杯预赛 Misc wp
作者:互联网
Misc_water
先分析图片hex值,发现给的图是由一头一尾两个png和中间一个倒置的jpg组成的。于是分别提取并把jpg正过来
with open('1','rb') as f:
with open('flag.jpg','wb') as g:
g.write(f.read()[::-1])
由于题目是water,自然想到水印,又因为没有一样的图,于是尝试使用傅里叶盲水印,脚本直接提取
import cv2 as cv
import numpy as np
import matplotlib.pyplot as plt
img = cv.imread('/root/桌面/flag.jpg', 0) #直接读为灰度图像,不过此题已经是灰度图片了
f = np.fft.fft2(img) #做频率变换
fshift = np.fft.fftshift(f) #转移像素做幅度谱
s1 = np.log(np.abs(fshift))#取绝对值:将复数变化成实数取对数的目的为了将数据变化到0-255
plt.subplot(121)
plt.imshow(img, 'gray')
plt.title('original')
plt.subplot(122)
plt.imshow(s1,'gray')
plt.title('center')
plt.show()
得到下图,放大后依稀可以看到密码是:ZC4#QaWbW
成功解开压缩包,拿到一张乱码图片。根据经验,应该是宽高错误的图片,拿去爆破得到宽高,复原图片后右下角就是flag。
简单取证
volatility获取版本得到WinXPSP2x86,查看进程发现有一个cmd以及浏览器。
查看iehistory后发现系统里有个secret.jpg
于是使用filescan找到并dump下来,再使用cmdscan发现了一个密码
dump下来的jpg分析后是一个纯base64加密的文本,解密后观察得到这是个倒过来的压缩包
使用上一题的脚本逆序后使用cmd里的密码成功解开压缩包拿到一堆数据。根据经验,这应该是二维坐标拿来画图的,于是使用gnuplot画图。画出来是个二维码,扫一扫就是flag。
babybit
拿到一个磁盘,取证大师一把梭,得到一个假flag和一个flag.zip,flag.zip里是注册表文件。使用MiTeC Windows Registry Recovery打开其中的SYSTEM文件。本题所需的时间数据就在ROOT\ControlSet001\Control\FVEStats里的OsvEncryptInit和OsvEncryptComplete中,如下面两张图所示
按照题目要求拼起来即可。
what_is_log
使用sysdig查看write系统调用
sysdig -r flag2.scap evt.type=write
发现里面有很多数据都包含'data=',猜测秘密可能在里面,于是提取一下
sysdig -r flag2.scap evt.type=write | grep 'data=' > 1.txt
简单看看这个提取出来的数据,发现这个东西
感觉有点像flag,包上PCL{}提交成功
标签:鹏城,plt,Misc,jpg,write,flag,2022,使用,np 来源: https://www.cnblogs.com/zysgmzb/p/16441570.html