-
-
[原创]看雪 2022 KCTF 秋季赛 第十题 两袖清风 简单思路
-
发表于: 2022-12-9 11:57 9612
-
因为精力限制,这次就简单点写。
程序模拟了一个木马,涉及了 shellcode 解密执行、uuid 免杀、反调试等
我们给的输入分为三个部分:
第一个部分长 85,第二部分长 4。第三部分首字节是长度,其后跟着两倍长度的内容(因为有 hex 编码)
第二部分要求是纯数字,4 个数字两两相同,顺序任意(比如 1212 2233 4554 6666 都可以),然后第一部分经过一波运算,拼在数字之后,作为一段 shellcode 的 AES 解密密钥。这部分 shellcode 是多解的来源(之一),因为即使前两部分不是原先设计好的密钥,也有概率生成合法的 shellcode,直接 ret
然后对输入的每一位判断是数字或大写,或小写,往一个数组里面写 0 或 1 或 2。反调试会改变数组指针,我把相关 jz 判断都改成了 jmp。
最后 uuid 免杀的 shellcode 会取第三段输入,转换成 10*10 的坐标,需要坐标和上面的数组满足一定关系:大概来说,每个坐标之间 |x2-x1|=1 or |y2-y1|=1
,第一个坐标 y=0,最后一个坐标在边缘(0或9);坐标对应点!=1,前100个点全为0
根据上面的要求,我准备给一个纯数字的输入。第一部分随便给,第二部分爆破,找到不会崩,能输出 no 的情况
第三部分的设想是 02 + 10 20,但是需要再长一点,不然 0 不够用。改成 10 +(10 20)*8
。当然,多重复几次,或者改改坐标也可以,多解来源 +1
给几个输入:
1 2 3 4 | 012345678901234567890123456789012345678901234567890123456789012345678901234567890123449941010201020102010201020102010201020 012345678901234567890123456789012345678901234567890123456789012345678901234567890123473731010201020102010201020102010201020 012345678901234567890123456789012345678901234567890123456789012345678901234567890123473731010201020102010201020102010201120 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234499412102010201020102010201020102010201020 |
简单评价一下,对抗的思路比较有趣,但是验证部分有些缺陷
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
最后于 2022-12-9 12:04
被tkmk编辑
,原因:
赞赏
他的文章
看原图
赞赏
雪币:
留言: