Advertisement
Guest User

dsadasdas

a guest
Dec 13th, 2018
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.24 KB | None | 0 0
  1. from BaseHTTPServer import *
  2. from urlparse import urlparse
  3. import urllib2
  4. import os
  5. import subprocess
  6. import time
  7.  
  8. def pathOKCheck(path):
  9.     if path.startswith("/home"):
  10.         return True
  11.     return False
  12.  
  13. def doDate(params):
  14.     return time.time()
  15.  
  16. def doDir(params):
  17.     if not pathOKCheck(params):
  18.         return "forbidden"
  19.     d = os.listdir(params)
  20.     return '\n'.join(d)
  21.  
  22. def doCat(params):
  23.     if not pathOKCheck(params):
  24.         return "forbidden"
  25.     return open(params, "r").read()
  26.  
  27. def doExec(params):
  28.     if not pathOKCheck(params):
  29.         return "forbidden"
  30.     return subprocess.check_output(params.split(" "))
  31.    
  32. paths = {
  33.         '/date': doDate,
  34.         '/dir': doDir,
  35.         '/cat': doCat,
  36.     '/': doExec
  37.         }
  38.  
  39. class MyWebServer(BaseHTTPRequestHandler):
  40.     def do_GET(self):
  41.         url = urlparse(self.path)
  42.         self.send_response(200)
  43.         self.end_headers()
  44.         path = url.path
  45.         queryString = url.query
  46.  
  47.         if not paths.has_key(path):
  48.             self.wfile.write("No such command")
  49.             return
  50.         output = paths[path](urllib2.unquote(queryString))
  51.         self.wfile.write(output)
  52.  
  53. server = HTTPServer(('',1234), MyWebServer)
  54. server.serve_forever()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement