day23日

一、找找找

1.010打开zip文件末尾,发现了一个png图片和一段base64,base64解密后为flag666,图片显示crc有错误,010打开发现宽度值为0,使用脚本进行爆破

image

点击查看代码
import zlib
import struct

filename = 'crc.png'
with open(filename, 'rb') as f:
    all_b = f.read()
    crc32key = int(all_b[29:33].hex(), 16)
    data = bytearray(all_b[12:29])
    n = 4095  # 理论上0xffffffff,但考虑到屏幕实际/cpu,0x0fff就差不多了
    for w in range(n):  # 高和宽一起爆破
        width = bytearray(struct.pack('>i', w))  # q为8字节,i为4字节,h为2字节
        for h in range(n):
            height = bytearray(struct.pack('>i', h))
            for x in range(4):
                data[x + 4] = width[x]
                data[x + 8] = height[x]
            crc32result = zlib.crc32(data)
            if crc32result == crc32key:
                # 2021.7.20,有时候显示的宽高依然看不出具体的值,干脆输出data部分
                print(data.hex())
                print("宽为:", end="")
                print(width)
                print("高为:", end="")
                print(height)
                exit(0)

2.得到正确的宽度应该为7f,保存后发现结尾部数据块划分有问题,猜测是IDAT块有问题,发现了一段十六进制编码

image

3.转为hex

image

4.这个就是zip的密码,打开,得到snow隐写

image

5.解密,得到flag

SNOW.EXE -p flag666 -C flag.txt

image

二、HK的怪兽

1.得到一个加密的zip和一个流量,提示zip的密码就是shell中的key,看下流量,发现明显是哥斯拉流量,跟题目名字正好对应

image

2.在第14流发现了哥斯拉流量密文解密的key等信息

image

3.在第6流发现了压缩包的十六进制源码,打开发现是加密的

image

4.在第41流,使用解密脚本解密哥斯拉流量的密文,得到了跟密钥有关的信息

image

点击查看代码
<?php
@session_start();
@set_time_limit(0);
@error_reporting(0);
function response_decode($D,$K){
    $D = base64_decode($D);
    for($i=0;$i<strlen($D);$i++){
        $c = $K[$i+1&15];
        $D[$i] = $D[$i]^$c;
    }
    var_dump(gzdecode($D));
}

$pass='DASCTF';
$payloadName='payload';
$key='9854e8aa5568e23c';
$request_data ='J748ZThhYTU1NjWpAz2hCTQ19M0T/tEHhbdtMxYleyEo1z+jjnUl6WGDGRgM72C3dVubLL8qK/w+2iBXOVef67qIQ0lZdGrErqhtlAHkJdugunhkNxN+yJ+91ga/P+TqTgG5t9wvx/bTadLPTl0FDfE6wRw97Qs1NTY=';
echo
response_decode($request_data, $key);


5.但是看后面没有回显到cat txt的内容,尝试后得知zip的密码就是哥斯拉流量密文解密的key:9854e8aa5568e23c,得到的文件是乱码

image

6.密文解密后得到的cat Pass1sHere.txt中txt的名字就是1.pem文件的解密密码,010打开后发现其中是一个PRIVATE KEY

image

7.要使用1.pem中的私钥解密flag文件,具体用法可参考https://blog.csdn.net/as3luyuan123/article/details/16331003

openssl pkeyutl -decrypt -in flag -inkey 1.pem -out flag.txt

image

posted @ 2023-08-04 20:07  CPYQY_orz  阅读(198)  评论(0编辑  收藏  举报