当前位置:网站首页>2021长城杯WP

2021长城杯WP

2022-04-23 17:32:00 小蓝同学`

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])
#print(s) #文字

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

版权声明
本文为[小蓝同学`]所创,转载请带上原文链接,感谢
https://blog.csdn.net/qq_49422880/article/details/124298861