NISACTF_WriteUp [4]

108 阅读2分钟

本文已参与 「新人创作礼」 活动,一起开启掘金创作之路。

normal

直接解码就行 ook => unicode => base64 => BubbleBabble => rot13

xor

分析拿到的文件,将32位的比特,分成左右两部分,与八个16位的密钥做异或。 可以分别得到密钥中1、3、5、7异或结果的等价16位比特,2、4、6、8异或结果的等价16位比特,分别恢复出flag的左右两半部分,再拼起来。

#!/usr/bin/python3.8
# -*- coding: utf-8 -*-
# @Time    : 2022/3/26 14:04 
# @Author  : kinnisoy
# @Email   : kinnisoy@gmail.com
# @File    : xor.py
# @Software: PyCharm
# -*----*--*----*--*----*-
import os
import base64
from Crypto.Util import number, strxor

a_b64='i03yXzXWe4QTiwJHlUZo6iqEdDkwJVviSOQ7CM3vJmM='
enc_a_b64='4EnYOhbivTMP5r4VYLA8cwJBFTXIeeKAoNf/3ctgLLA='
enc_flag_b64='+qyVMEei1eN3YbV/z2kjcaCKngWc2pW2/e7HwpXKaj0='
a=base64.decodebytes(bytes(a_b64, encoding='utf8'))
enc_a=base64.decodebytes(bytes(enc_a_b64, encoding='utf8'))
enc_flag = base64.decodebytes(bytes(enc_flag_b64, encoding='utf8'))

def get_m0(a: bytes, r8: bytes):
    l = a[:16]
    r = a[16:]
    m0 = strxor.strxor(strxor.strxor(r, l), r8)
    return m0

def get_m1(a: bytes, l8: bytes):
    # l = a[:16]
    r = a[16:]
    m1 = strxor.strxor(r, l8)
    return  m1

def get_flag_right(l8: bytes, m1: bytes):
    return strxor.strxor(l8, m1)
def get_flag_left(fr: bytes, m0: bytes, right: bytes):
    return strxor.strxor(strxor.strxor(fr, right), m0)

def get_flag(enc_flag,a,enc_a):
    l8 =enc_a[:16]
    r8 = enc_a[16:]
    m1 = get_m1(a,l8)
    m0 = get_m0(a,r8)
    fl8= enc_flag[:16]
    fr8 = enc_flag[16:]
    right = get_flag_right(fl8,m1)
    left = get_flag_left(fr8,m0,right)
    return  left+right

flag=get_flag(enc_flag,a,enc_a)
print(flag)
# print(flag.decode('utf-8'))

MISC

签到

嗯。

huaji?

查看附件,文件头为jpg,恢复文件后缀。 binwalk 分析,得到压缩包。有密码? 发现图片右键属性中有一串字符 拿去十六进制转字符,emmmm 压缩包密码。 解压,拿到真正的flag。

bqt

查看附件,文件头为pdf,恢复文件后缀。 CTRL+A,选中了点什么,直接复制出来。 字母最大到f,应该是十六进制。 拿去在线解,发现乱码,应该是超出ascii码范围了。 python一下!

#!/usr/bin/python3.8
# -*- coding: utf-8 -*-
# @Time    : 2022/3/26 0:39 
# @Author  : kinnisoy
# @Email   : kinnisoy@gmail.com
# @File    : misc_pdf.py
# @Software: PyCharm
# -*----*--*----*--*----*-
cipher = "c8e9aca0c3f4e6e5f2a1a0d4e8e5a0e6ece1e7a0e9f3baa0e6ece1e7fbf7e5e6e5efe9e4eae7efe5e4f3e6e9eff2f0e5e6e4e6e7e7e6e4f3e5fd"
print(''.join([chr(int(cipher[i:i + 2], 16) - 128) for i in range(0,len(cipher), 2)]))

where_is_here

百度识图,携程的链接点进去,确认是厦门鼓浪屿的旅馆,查看联系电话。

不愉快的地方

百度识图,确认是清溪川,科学上网,google地图记录经纬度,清溪川,看到官网,点进去 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-poAYFKJV-1648434574820)(2022-03-27-22-00-41.png)]

查看组织架构图 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-liLlHSTN-1648434574822)(2022-03-27-22-01-50.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-P4UZ9Ed5-1648434574823)(2022-03-27-22-02-24.png)]

福利题

来晚了,没抢到奶茶!!!

问卷

嗯。