标签:鹏城 plt Misc jpg write flag 2022 使用 np
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
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。