MISC
你这个flag保熟吗?
打开发现有两张图片一哥压缩包,查看两张图片后发现有附加的压缩包数据,提取出来。 并进行解压,会得到一个xls文件和一个txt文档,根据txt文件来画这个曲线发现有点像希尔伯特曲线,于是按照曲线的含义提取出相关的字符。
import numpy as np
from PIL import Image
from hilbertcurve.hilbertcurve import HilbertCurve
import pandas as pd
arr = pd.read_excel('./password.xls',header=None)
hilbert_curve = HilbertCurve(17, 2)
s = ''
for i in range(np.size(arr)):
[x,y] = hilbert_curve.point_from_distance(i)
s += str(arr[y][x])
with open('flag.txt','w') as f:
f.write(s)
with open("flag.txt",'r') as f:
a = f.read()
import base64
while True:
a = base64.b64decode(a)
print(a)
写入文档后并不断的进行base64解码。 最后得到: 然后对于flag.rar输入我们的密码解压成功,发现flag.php文件里面有brainfuck字符,输入后发现运行不了,这就很尴尬。在八神的指导下调试看了一波文件确实是输出的errpr,但是这里需要看中间的变量才行。
8神:如果它算了半天但是不.那么结果就留在cell里,你看不到 随便找个正经的解释器看一下bf代码运行中的实时内存就行了 相当于把print全删了,运算的内容保留在一个个临时变量里
在线解密即可。
小明的电脑
一道内存取证的题目,首先就是给出的fl4g文件不仅是逆序的还是两个字节相互逆序,然后这里需要使用脚本还原一下。
import binascii
from heapq import _heapify_max
hexdata_all=''
with open('fl4g','rb') as f:
hexdata_all=f.read().hex()
hexdata_all = hexdata_all[::-1]
hexdata_all = list(hexdata_all)
print(type(hexdata_all))
for num in range(0,len(hexdata_all),2):
hexdata_all[num],hexdata_all[num+1] = hexdata_all[num+1],hexdata_all[num]
hexdata_all = ''.join(hexdata_all)
with open('fl4ggg.zip','wb') as f:
f.write(binascii.unhexlify(hexdata_all))
后面就是各种的解码,解到最后一层就需要密码,这个时候来看看这个镜像上有着啥东西。
查看基本信息: 排查一些信息: 直接把这个png给拿出来: (拿出来之后需要把.dat文件改为png文件) 放到Zsteg里直接暴力寻找,找到账户密码。
WEB
|