首页 > 其他分享 >ciscn2024初赛部分题目复现

ciscn2024初赛部分题目复现

时间:2024-05-21 13:07:13浏览次数:32  
标签:result v31 rand len ciscn2024 range 初赛 ptr 复现

gdb_debug

64位ida反编译,将主要加密部分使用chatgpt写成更容易理解的python形式如下:

def encrypt_string(s):
    v17 = []
    for i in range(len(s)):
        v17.append(ord(s[i]) ^ rand_1[i])

    ptr = list(range(len(s)))
    for k in range(len(s) - 1, 0, -1):
        v18 = rand_2[len(s)-k-1]
        ptr[k], ptr[v18] = ptr[v18], ptr[k]

    v31 = []
    for m in range(len(s)):
        v31.append(v17[ptr[m]])

    for n in range(len(s)):
        v31[n] = rand_3[n] ^ v31[n]

    for n in range(len(s)):
        v31[n] = asc_55AE330010A0[n] ^ v31[n]

    return v31

ida配合kali远程动态调试,扒下来随机数。


以上产生的随机数无法直接得到,只能使用操作前后的数值再次异或得到,其他部分的随机数都有变量存储,可以直接得到数值。
异或前:

异或后:

获得该部分随机数的代码如下:

hex_pairs = [
    "06^d8", "4a^e0", "5b^19", "14^e8", "c4^cd", "77^9f", "df^6d", "63^65",
    "b5^b8", "82^11", "e0^81", "3c^c8", "4a^6e", "99^d0", "ce^db", "f9^f8",
    "bc^6b", "52^f9", "79^7d", "ca^d2", "19^d6", "3c^d5", "da^0f", "1f^89",
    "2d^1e", "fe^34", "93^6a", "ef^c5", "a3^fd", "2b^c1", "c4^e9", "1a^26",
    "44^d0", "d5^ba", "c2^fa", "04^99", "bf^e7", "ec^06"
]

results = []
for pair in hex_pairs:
    hex1, hex2 = pair.split('^')
    dec1 = int(hex1, 16)
    dec2 = int(hex2, 16)
    result = dec1 ^ dec2
    results.append(hex(result)[2:].upper())

print(results)

这里其实不用一个一个扒下来,随机数种子的设置如下:

v3 = time(0LL);
srand(v3 & 0xF0000000);

也就是说在在 2^28 秒内,随机数都会维持一个相同的序列,时长换算成年,最高位是十万,有生之年都不会变。

另外因为windows和linux下的随机数生成过程不一样,一定要使用linux运行才能得到相同数值。

exp如下:

rand_1 = [
    0xd9, 0x0f, 0x18, 0xbd, 0xc7, 0x16, 0x81, 0xbe, 0xf8, 0x4a,
    0x65, 0xf2, 0x5d, 0xab, 0x2b, 0x33, 0xd4, 0xa5, 0x67, 0x98,
    0x9f, 0x7e, 0x2b, 0x5d, 0xc2, 0xaf, 0x8e, 0x3a, 0x4c, 0xa5,
    0x75, 0x25, 0xb4, 0x8d, 0xe3, 0x7b, 0xa3, 0x64
]

rand_2 = [
    0x21, 0x00, 0x0a, 0x00, 0x20, 0x1f, 0x0a, 0x1d, 0x09, 0x18,
    0x1a, 0x0b, 0x14, 0x18, 0x15, 0x03, 0x0c, 0x0a, 0x0d, 0x02,
    0x0f, 0x04, 0x0d, 0x0a, 0x08, 0x03, 0x03, 0x06, 0x00, 0x04,
    0x01, 0x01, 0x05, 0x04, 0x00, 0x00, 0x01
]

rand_3 = [
    0xDE, 0xAA, 0x42, 0xFC, 0x09, 0xE8, 0xB2, 0x06, 0x0D, 0x93,
    0x61, 0xF4, 0x24, 0x49, 0x15, 0x01, 0xD7, 0xAB, 0x04, 0x18,
    0xCF, 0xE9, 0xD5, 0x96, 0x33, 0xCA, 0xF9, 0x2A, 0x5E, 0xEA,
    0x2D, 0x3C, 0x94, 0x6F, 0x38, 0x9D, 0x58, 0xEA
]

asc_55AE330010A0 = [
    0xBF, 0xD7, 0x2E, 0xDA, 0xEE, 0xA8, 0x1A, 0x10, 0x83, 0x73,
    0xAC, 0xF1, 0x06, 0xBE, 0xAD, 0x88, 0x04, 0xD7, 0x12, 0xFE,
    0xB5, 0xE2, 0x61, 0xB7, 0x3D, 0x07, 0x4A, 0xE8, 0x96, 0xA2,
    0x9D, 0x4D, 0xBC, 0x81, 0x8C, 0xE9, 0x88, 0x78
]

def decrypt_string(s):
    v31 = []
    for n in range(len(s)):
        v31.append(asc_55AE330010A0[n] ^ ord(s[n]))

    for n in range(len(s)):
        v31[n] = rand_3[n] ^ v31[n]

    ptr = list(range(len(s)))
    for k in range(len(s) - 1, 0, -1):
        v18 = rand_2[len(s)-k-1]
        ptr[k], ptr[v18] = ptr[v18], ptr[k]

    v17 = [None] * len(s)
    for m in range(len(s)):
        v17[ptr[m]] = v31[m]

    result = []
    for i in range(len(s)):
        result.append(v17[i] ^ rand_1[i])

    return result

s2 = "congratulationstoyoucongratulationstoy"
s2_list = list(s2)

result = decrypt_string(s2_list)
flag = ''.join(chr(result[j]) for j in range(len(result)))
print(flag)
# flag{78bace5989660ee38f1fd980a4b4fbcd}

标签:result,v31,rand,len,ciscn2024,range,初赛,ptr,复现
From: https://www.cnblogs.com/sK07XdAy/p/18203747

相关文章

  • [CISCN 2022 初赛]online_crt crash漏洞引起的命令执行
    几天没做题了,有点生疏。看题吧。题目标签说是CVE-2022-1292,去看看。意思就是在$fname处构造恶意文件名导致的命令注入,而且前面没有认真过滤,也就是文件名命令执行。看看题目源码:点击查看代码importdatetimeimportjsonimportosimportsocketimportuuidfromcryptogr......
  • MajorDoMo-thumb.php未授权RCE漏洞复现
    漏洞描述:thumb.php主要用于MajorDoMo中的缩略图生成,这个文件处理外部输入时未正确验证用户输入,攻击者可以利用该处执行恶意代码Fofa:app="MajordomoSL"POC:GET/modules/thumb/thumb.php?url=cnRzcDovL2EK&debug=1&transport=%7C%7C+%28echo+%27%5BS%5D%27%3B+id%3B+echo+%2......
  • 【0day漏洞复现】北京慧飒科技有限责任公司WEB VIDEO PLATFORM存在未授权访问漏洞
    阅读须知花果山的技术文章仅供参考,此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。......
  • buuctf 考毛概前复现的两道misc题
    BUUCTFmisc神奇的二维码and梅花香自苦寒来最近要考毛概,所以就匆匆写了BUUCTF上的几道题,不过积少成多,不能太心急,挑了两道让我印象比较深刻的题复现一下。神奇的二维码第一道是二维码类型的misc题,这题我只能说出题人是真的boring,是无聊到什么程度居然会想出这种题目首先把压缩......
  • CVE-2023-34644锐捷路由器漏洞复现
    前序起由是我想看看近两年主流路由器漏洞是如何挖出来的,然后就找到了CVE-2023-34644,该漏洞影响面比较广,比较新,又有一定难度,下面是相关漏洞说明编号:CVE-2023-34644影响面:锐捷旗下睿易NBS3/5/6/7系列、睿易EG系列、睿易EAP/RAP/NBC系列、星耀EW系列CVSS3.1评分:9.8(严重)固件获取......
  • Apache Zeppelin 命令执行漏洞复现
    漏洞描述攻击者可以使用Shell解释器作为代码生成网关,系统org.apache.zppelin.shell.Shellnterpreter类直接调用/sh来执行命令,没有进行过滤,导致RCE漏洞。Fofa:app="APACHE-Zeppelin"漏洞复现:在fofa中搜索资产,共有1238条数据匹配该漏洞需要目标站点开启匿名登录以及DefaultI......
  • 初赛笔记
    第一章计算机基础知识1.计算机的概述计算机发展史第一代真空电子管;第二代晶体管;第三代集成电路;第四代大规模、超大规模集成电路 ;第五代智能计算机系统 第一台计算机1946年美国ENIAC 重要人物冯·诺伊曼 ,”计算机之父“,提出计算机体系结构图灵,"人......
  • Netgear无线路由器漏洞复现(CVE-2019-20760)
    漏洞概述漏洞服务: uhttpd漏洞类型: 远程命令执行影响范围: 1.0.4.26之前的NETGEARR9000设备会受到身份验证绕过的影响解决建议: 更新版本漏洞复现操作环境: ubuntu:22.04qemu-version: 8.1.1仿真环境wgethttps://www.downloads.netgear.com/files/GDC/R9000/R9000-V1.......
  • L3HCTF 信じてください、先輩!!复现
    前情提要OPTEE是什么这题与OPTEE有关。可以理解成,这个机器上同时运行有两个OS:一个是正常的OS来处理不需要保密的内容,一个是安全的OS(OPTEE),涉及保密的内容在这个安全OS里面操作。通过trustedfirmware来启动这两个OS,相当于这两个OS的bootloader。这两个系统之......
  • DeepFilterNet复现
    大概框架有两路特征,一个ERB特征,另外一个是STFT之后的复数特征。整体时延最低可达5ms。这里提到的DeepFilter,其实就是说用神经网络对TF谱进行操作。因为这篇文章比较早,所以叫这么一个名字。ERB特征ERB(EquivalentRectangularBandwidth)是一个与人耳听觉敏感性密切相关的概念,......