def execute(self, sql, data=[]): data = tuple(data) st = 'Excute sql: %s with data %s' if data else 'Excute sql: %s' log.debug(st % (sql, data)) status = self.cursor.execute(sql, list(data)) self.conn.commit() return status
def get_shell(self, sid=None): if not sid: log.debug('Get all shell') return self.db.getList('box') log.debug('Get shell with sid: %s' % sid) if isinstance(sid, int): return self.db.getOne('box', condition={'id': sid}) elif isinstance(sid, dict): return self.db.getOne('box', condition=sid)
def upload(self): path, _ = QFileDialog.getOpenFileName(self, "Open file", "", "All files (*.*)") rpath = self.sep.join((self.current_folder, os.path.split(path)[1])) log.debug('Upload file to %s' % rpath) if not path: return with open(path, 'rb') as f: self.chk_data(self.filemanager.uploadfile(rpath, f.read().hex())) self.list_dir(self.current_folder)
def generate(self, pl, code='utf-8'): pl = pl.encode(code) if self.type.lower() == 'asp': return self.base.replace('action', ba.hexlify(pl).decode(code)) if self.type.lower() == 'php': flag = 'print "%s";' % self.flag pl = flag + pl.decode(code) + flag pl = pl.encode(code) log.debug('Playload: %s' % pl.decode(code)) return self.base.replace('action', b64.b64encode(pl).decode(code))
def chk_data(self, ret): log.debug(ret) data = '' if ret[0] != 200: QMessageBox.information(self, ret[1], str(ret[2])) return data try: data = ret[2] # .decode(self.coder) log.info('Get data:\n%s' % data) if data == '1': self.mw.statusbar.showMessage('Operation finished :)') else: self.mw.statusbar.showMessage('Operation failed :(') except Exception as e: QMessageBox.information(self, 'ERR', str(e)) log.exception(e) return data
def download(self): path, _ = QFileDialog.getSaveFileName(self, "Save file", "", "All files (*.*)") current = self.rightView.currentItem() if not path or not current: return # data = self.chk_data(self.filemanager.downfile(self.current_file)) log.debug('Download file %s' % self.current_file) ret = self.filemanager.downfile( self.sep.join((self.current_folder, current.text(0)))) log.debug(ret) if ret[0] == 200: with open(path, 'wb') as f: f.write(ret[2].encode(self.coder)) self.mw.statusbar.showMessage('Save data success :)') else: self.mw.statusbar.showMessage('Download failed :(')
def chk_data(ret, msg_widget=None): log.debug(ret) data = '' if ret[0] != 200: QMessageBox.information(None, ret[1], str(ret[2])) return data try: data = ret[2] # .decode(self.coder) log.info('Get data:\n%s' % data) if not msg_widget: return data if data == '-1': msg_widget.showMessage('Operation failed :(') else: msg_widget.showMessage('Operation finished :)') return data except Exception as e: QMessageBox.information(None, 'ERR', str(e)) log.exception(e)
def get_cache(self, sid, path): log.debug('Get site (%s) cache path (%)' % (sid, path)) return self.db.getOne('site_cache', 'cache', dict(sid=sid, path=path))
def add_path(self, sid, path, content): log.debug('Add site (%s) path (%s) cache (%)' % (sid, path, content)) return self.db.insert('site_cache', dict(sid=sid, path=path, cache=content))
def delete_shell(self, sid): log.debug('Delete shell %s' % sid) if isinstance(sid, dict): return self.db.delete('box', sid) else: return self.db.delete('box', dict(id=sid))
def update_shell(self, sid, data): log.debug('Update shell %s with data: %s' % (sid, data)) return self.db.update('box', data, dict(id=sid))
def add_shell(self, shell): log.debug('Add shell: %s' % shell) self.db.insert('box', shell)
def delete_cache(self, sid, path=None): log.debug('Delete site (%s) path (%s) cache' % (sid, path)) condition = dict(sid=sid, path=path) if path else dict(sid=sid) return self.db.delete('site_cache', condition)
def update_cache(self, sid, path, content): log.debug('Update site (%s) path (%s) cache (%)' % (sid, path, content)) return self.db.update('site_cache', dict(cache=content), dict(sid=sid, path=path))
def POST(self, params): data = self.pwd + '=' + params log.debug('Params: %s' % params) return self.request(self.url, data, self.encoding)
def delete_file(self): # path = self.get_path(self.rightView.currentItem(), 0) log.debug('del %s' % self.current_file) self.chk_data(self.filemanager.deletefile(self.current_file))