Dual Protection WP 题目信息 题目文件:Dual Protection.exe flag 格式:ISCC{} 一、程序基本行为 程序运行后会提示输入: Input Flag: 输入后只会输出两种结果: Correct. Wrong. 通过字符串可以直接看到: Input Flag: %36s Correct. Wrong. 其中 %36s 已经暗示输入长度和 36 很相关。 二、主逻辑分析 主逻辑位于 0x401100 附近,核心流程可以还原为: memset(buf, 0, 0x63); printf("Input Flag: "); scanf("%36s", buf); if (strlen(buf) !=...

在字符串里可以直接看到目标比较值: 000A9CD32B9E4D0D563A190E6B2DC2923ADA53F5BEF22A7A 主逻辑里一共用了 4 个数字: 344, 21, 89, 233 对 {} 内的内容依次进行: RC4(key="344") 与 "21" 循环异或 与 "89" 循环逐字节相加 用 SHA256("233") 的前 16 字节作为 TEA key 加密 转大写十六进制后与目标常量比较 因此只需要逆向还原: 目标 hex 转字节 TEA 解密 去填充 循环减去 "89" 循环异或 "21" RC4 解密,key="344" 还原后得到明文: deaIoihuwuasyIleolyclrt 所以最终...

源码泄露了一个入口 http://39.105.213.28:12601/?source=1 拿到关键代码后,可知有三层校验。 第一层: $filtered = str_replace("key", "", $_GET['step1']); if ($filtered === "key") 这里利用重叠绕过,构造: step1=kkeyey 因为: str_replace("key", "", "kkeyey") === "key" 第二层: $a = $_POST['a'] ?? null; $obj_a = (object)$a; $user_key = $obj_a->key; if (isset($user_key) &&...