UniCTF(部分)

admin 2026-01-31 23:47:03 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 文档记录了UniCTF比赛Writeup,涵盖WEB、Crypto、Misc及RE板块。核心涉及PDFXXE利用、全角SSTI绕过、SSRF与内网渗透、JWT爆破及云元数据窃取。Crypto包含统计分析、NTRU破解与Z3求解。Misc涵盖工控流量分析与DNS隐写。RE包括多项式求解、SM4解密及Unity内存补丁技术。 综合评分: 90 文章分类: CTF,WEB安全,逆向分析,二进制安全,内网渗透


RE4-r_zip

定位核心循环:在 compress::main 中,通过 while(1) 循环以及对字节高位的判断(b1 & 0x80),我们锁定了这是一个类 LZ77 的滑动窗口压缩算法

标记位:0x80 (最高位) 用于区分“原始数据”和“压缩引用”。

距离 (Distance):由第一个字节的低 7 位和第二个字节的高 4 位拼接而成。

长度 (Length):由第二个字节的低 4 位决定。
def decompress_custom(input_file, output_file):
    with open(input_file, 'rb') as f:
        data = f.read()

    out = bytearray()
    i = 0
&nbsp; &nbsp;&nbsp;while&nbsp;i < len(data):
&nbsp; &nbsp; &nbsp; &nbsp; b1 = data[i]
&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;if&nbsp;b1 & 0x80:
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;# 处理 匹配对 (Distance + Length)
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;if&nbsp;i + 1 >= len(data):&nbsp;break
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; b2 = data[i+1]

&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;# 根据汇编逻辑还原 v34 (dist) 和 v33 (len)
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;# v34 = (b1 & 0x7F) << 4 | (b2 >> 4)
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;# v33 = b2 & 0x0F
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; dist = ((b1 & 0x7F) << 4) | (b2 >> 4)
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; length = b2 & 0x0F

&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;# 从当前输出的末尾向前找
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; start_pos = len(out) - dist
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;for&nbsp;_&nbsp;in&nbsp;range(length):
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; out.append(out[start_pos])
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; start_pos += 1
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; i += 2
&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;else:
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;# 原始字节
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; out.append(b1)
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; i += 1

&nbsp; &nbsp; with open(output_file,&nbsp;'wb') as f:
&nbsp; &nbsp; &nbsp; &nbsp; f.write(out)
&nbsp; &nbsp;&nbsp;print(f"解压完成,结果已保存至 {output_file}")
&nbsp; &nbsp;&nbsp;print("预览内容:", out[:100].decode(errors='ignore'))

decompress_custom('out1.z',&nbsp;'flag_recovered.txt')

unictf{miaoyunmengzip}

RE5-原神!启动!

无壳,Unity (IL2CPP) 编写``使用 il2cpp 逆向工具

关键模块:GameAssembly.dll

关键函数偏移:通过分析发现地址 0x448E4E 附近存在抽卡判定逻辑。

test&nbsp;al, al:检查抽卡结果(1为中,0为不中)。

jne:若抽中则跳转至 Flag 解密流程。

解密算法:位于 0x4481E0,解密函数接受一个 MagicKey(通过 RDX 寄存器传递)

x64dbg 调试半天不会 只能写py硬改代码

import pymem
import pymem.process

def hack_flag():
&nbsp; &nbsp; try:
&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;# 1. 连接游戏进程
&nbsp; &nbsp; &nbsp; &nbsp; pm = pymem.Pymem("GenshinImpactWishSimulator.exe")

&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;# 2. 定位模块
&nbsp; &nbsp; &nbsp; &nbsp; module = pymem.process.module_from_name(pm.process_handle,&nbsp;"GameAssembly.dll")
&nbsp; &nbsp; &nbsp; &nbsp; base = module.lpBaseOfDll

&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;# 3. 目标地址:基址 + 0x448E50 (jne 指令的位置)
&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;# 我们直接把 jne (75 2C) 改成 jmp (EB 2C)
&nbsp; &nbsp; &nbsp; &nbsp; target = base + 0x448E50

&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;print(f"GameAssembly.dll 基址: {hex(base)}")
&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;print(f"正在修改地址: {hex(target)}")

&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;# 4. 写入补丁:EB 是无条件跳转,不管抽没抽中都给 Flag
&nbsp; &nbsp; &nbsp; &nbsp; pm.write_bytes(target, b'\xEB\x2C', 2)

&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;print("--- 修改成功!---")
&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;print("现在回到游戏,点击 [单抽],Flag 就会弹出来。")

&nbsp; &nbsp; except Exception as e:
&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;print(f"错误: {e}")
&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;print("请确保游戏正在运行,并且以管理员权限运行此脚本。")

if&nbsp;__name__ ==&nbsp;"__main__":
&nbsp; &nbsp; hack_flag()


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:玄网安全 玄网安全 oPis 玄网安全 oPis《UniCTF(部分)》

此等K线只在虚拟市场见过 网络安全文章

此等K线只在虚拟市场见过

文章总结: 文章标题提及虚拟市场K线图,正文评论了购买金银者的处境。主要内容为大量指向吃瓜、黑客情感、安全招聘及渗透测试等话题的链接列表,缺乏实质性安全技术内容
评论:0   参与:  0