[MISC]2022DASCTF Apr X FATE 防疫挑战赛

1.SimpleFlow;

2.熟悉的猫;

3.冰墩墩;

1.SimpleFlow:

下载得到SimpleFlow的压缩包,解压得到SimpleFlow.pcapng,流量分析题目。查找 flag. ,可以知道一共有四个flag.txt文件,一个flag.zip文件。用kali的foremost指令可以分离出flag.zip文件,发现flag.zip需要密码。

再追踪每个flag.txt。

发现蚁剑流量,一个一个base64解码,

 在其中一个txt文件中得到:

Y2QgIi9Vc2Vycy9jaGFuZy9TaXRlcy90ZXN0Ijt6aXAgLVAgUGFTc1ppUFdvckQgZmxhZy56aXAgLi4vZmxhZy50eHQ7ZWNobyBbU107cHdkO2VjaG8gW0Vd

base64解码得到:cd "/Users/chang/Sites/test";zip -P PaSsZiPWorD flag.zip ../flag.txt;echo [S];pwd;echo [E]。得到密码:PaSsZiPWorD

解开压缩包得到flag:DASCTF{f3f32f434eddbc6e6b5043373af95ae8}

2:熟悉的猫:

下载得到zip文件,用kali的foremost指令分离得到一个kdbx文件和一个需要密码的flag.zip文件。

len5.kdbx文件用keepass2打开,需要密码。

可以用kali进行爆破,由文件名可以推测密码是5位数。可以用crunch指令生成一个5位数的密码字典。用如下指令爆破出密码: 

 密码为:13152。(ps:得到的keepass.txt需要删去len5)

用keepass2打开len5.kdbx。

copy出zipzip中的密码:jbRw5PB2kFmor6IeYYil。

打开压缩包,得到一个png图片和一个hint;

看大佬的wp,hint中有零宽度字节,太菜具体是啥我也不清楚,解出来是22*160。

塔珀自指公式去解k,网上的脚本需要把17,106改成22,160

import numpy as np
import matplotlib.pyplot as plt
from PIL import Image
a=22
b=160
def Tupper_self_referential_formula(k): 
    aa = np.zeros((a,b))
    def f(x, y):
        y += k
        a1 = 2**-(-a*x - y%a)
        a2 = (y // a) // a1
        return 1 if a2 % 2 > 0.5 else 0
    for y in range(a):
        for x in range(b):
            aa[y, x] = f(x, y) 
    return aa[:,::-1]

k=92898203278702907929705938676672021500394791427205757369123489204565300324859717082409892641951206664564991991489354661871425872649524078000948199832659815275909285198829276929014694628110159824930931595166203271443269827449505707655085842563682060910813942504507936625555735585913273575050118552353192682955310220323463465408645422334101446471078933149287336241772448338428740302833855616421538520769267636119285948674549756604384946996184385407505456168240123319785800909933214695711828013483981731933773017336944656397583872267126767778549745087854794302808950100966582558761224454242018467578959766617176016660101690140279961968740323327369347164623746391335756442566959352876706364265509834319910419399748338894746638758652286771979896573695823608678008814861640308571256880794312652055957150464513950305355055495262375870102898500643010471425931450046440860841589302890250456138060738689526283389256801969190204127358098408264204643882520969704221896973544620102494391269663693407573658064279947688509910028257209987991480259150865283245150325813888942058
aa = Tupper_self_referential_formula(k)
plt.figure(figsize=(15,10))
plt.imshow(aa,origin='lower')
plt.savefig("tupper.png")
img = Image.open('flag.png')
dst1 = img.transpose(Image.FLIP_LEFT_RIGHT).rotate(180)   
plt.imshow(dst1)
plt.show()

得到一张图片。

 翻转一下得到三个值:33,121,144。用猫脸转换去解

from PIL import Image

img = Image.open('flag.png')
if img.mode == "P":
    img = img.convert("RGB")
assert img.size[0] == img.size[1]
dim = width, height = img.size

st = 33
a = 121
b = 144
for _ in range(st):
    with Image.new(img.mode, dim) as canvas:
        for nx in range(img.size[0]):
            for ny in range(img.size[0]):
                y = (ny - nx * a) % width
                x = (nx - y * b) % height
                canvas.putpixel((y, x), img.getpixel((ny, nx)))
canvas.show()
canvas.save('falg(1).png')

得到一张png图片,flag就在图片上:DASCTF{751476c0-6cff-497f-9541-83ede0ebc5a0}

3.冰墩墩

下载文件,这个压缩包解压时间可能有点久。解压后得到10w个txt文本。

文本内容:

其中有个start.txt文本,二进制数据应该就从start开始,用脚本得到压缩包。

import re
from binascii import *


tmp_filename = 'start.txt'
bin_data = ''
while True:
	try:
		file_path = './BinDunDun/' + tmp_filename
		with open(file_path) as f:
			content = f.read()
			next_file = re.findall(r'\w{10}\.txt', content)
			if next_file != []:
				tmp_filename = next_file[0]
				bin_data += content[:content.find(' ')].zfill(16)
			else:
				print(file_path)
				break
	except:
		break

hex_data = ''
with open('BinDun.zip', 'wb') as f1:
	for i in range(0, len(bin_data), 8):
		hex_data += '{:02x}'.format(int(bin_data[i:i+8], 2))
	f1.write(unhexlify(hex_data))

 解压后,得到一个pyc和一个无拓展名的文件,修改无拓展名的文件的文件头可以得到一个jpg图片。

pyc要用剑龙去解,得到BingD@nD@n_in_BeiJing_Winter_Olympics,

看大佬的wp说是jpg隐写,用jphs05解出REFTQ1RGe0dvb2RfSm9kX0dpdmVfVGhlX0ZGRkZMQGdfVG9fWW91IX0=

base64解码得到flag:DASCTF{Good_Jod_Give_The_FFFFL@g_To_You!}

文章脚本来源:https://blog.csdn.net/mochu7777777/category_9858482.html

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值