def post(self): """ Nahrava slovník na server """ # check if the post request has the file part if 'file' not in request.files: abort(500, 'No file part') return redirect(request.url) file = request.files['file'] # if user does not select file, browser also # submit a empty part without filename if file.filename == '': abort(500, 'No selected file') uploadedFile = fileUpload(file, DICTIONARY_DIR, ALLOWED_EXTENSIONS) if uploadedFile: hc_keyspace = int(shellExec(HASHCAT_PATH + ' --keyspace -a 0 ' + os.path.join(DICTIONARY_DIR, uploadedFile['path']), cwd=HASHCAT_DIR)) dictionary = FcDictionary(name=uploadedFile['filename'], path=uploadedFile['path'], keyspace=hc_keyspace) try: db.session.add(dictionary) db.session.commit() except exc.IntegrityError as e: db.session().rollback() abort(500, 'Dictionary with name ' + uploadedFile['filename'] + ' already exists.') return { 'message': 'Dictionary ' + uploadedFile['filename'] + ' successfuly uploaded.', 'status': True } else: abort(500, 'Wrong file format')
def post(self): """ Nahrava zaheslovaný subor na server """ # check if the post request has the file part if 'file' not in request.files: abort(500, 'No file part') return redirect(request.url) file = request.files['file'] # if user does not select file, browser also # submit a empty part without filename if file.filename == '': abort(500, 'No selected file') uploadedFile = fileUpload(file, PROTECTEDFILES_DIR, ALLOWED_EXTENSIONS, withTimestamp=True) if uploadedFile: hash = getHashFromFile(filename=uploadedFile['filename'], path=uploadedFile['path']) encFile = FcEncryptedFile(name=uploadedFile['filename'], path=uploadedFile['path'], hash=hash['hash'], hash_type=hash['hash_type']) try: db.session.add(encFile) db.session.commit() except exc.IntegrityError as e: db.session().rollback() abort( 500, 'File with name ' + uploadedFile['filename'] + ' already exists.') return { 'message': 'Successfully extracted hash form file.', 'status': True, 'hash': hash['hash'], 'hash_type': hash['hash_type'], 'hash_type_name': encFile.hash_type_name, 'file_id': encFile.id } else: abort( 500, 'We only support ' + ', '.join(str(x) for x in ALLOWED_EXTENSIONS) + '.')
def post(self): """ Uploads rule file on server. """ # check if the post request has the file part if 'file' not in request.files: abort(500, 'No file part') return redirect(request.url) file = request.files['file'] # if user does not select file, browser also # submit a empty part without filename if file.filename == '': abort(500, 'No selected file') uploadedFile = fileUpload(file, RULE_DIR, ALLOWED_EXTENSIONS, suffix='.rule') if uploadedFile: rule_count = 0 with open(os.path.join(RULE_DIR, uploadedFile['path']), encoding='latin-1') as file: for line in file: if re.match('^\s*(\#.*)?$', line) == None: rule_count += 1 rule = FcRule(name=uploadedFile['filename'], path=uploadedFile['path'], count=rule_count) try: db.session.add(rule) db.session.commit() except exc.IntegrityError as e: db.session().rollback() abort( 500, 'Rule with name ' + uploadedFile['filename'] + ' already exists.') return { 'message': 'File ' + uploadedFile['filename'] + ' successfully uploaded.', 'status': True } else: abort(500, 'Wrong file format')
def post(self): """ Nahrava mask subor na server """ # check if the post request has the file part if 'file' not in request.files: abort(500, 'No file part') return redirect(request.url) file = request.files['file'] # if user does not select file, browser also # submit a empty part without filename if file.filename == '': abort(500, 'No selected file') content = file.read().splitlines() for line in content: check_mask_syntax(line.decode("utf-8")) uploadedFile = fileUpload( file, MASKS_DIR, ALLOWED_EXTENSIONS, "".join(x.decode("utf-8") + "\n" for x in content), suffix='.hcmask', withTimestamp=True) if uploadedFile: maskSet = FcMasksSet(name=uploadedFile['filename'], path=uploadedFile['path']) try: db.session.add(maskSet) db.session.commit() except exc.IntegrityError as e: db.session().rollback() abort( 500, 'Masks set with name ' + uploadedFile['filename'] + ' already exists.') return { 'message': 'File ' + uploadedFile['filename'] + ' successfuly uploaded.', 'status': True } else: abort(500, 'Wrong file format')
def post(self): """ Uploads charset file on server. """ # check if the post request has the file part if 'file' not in request.files: abort(500, 'No file part') return redirect(request.url) file = request.files['file'] # if user does not select file, browser also # submit a empty part without filename if file.filename == '': abort(500, 'No selected file') uploadedFile = fileUpload(file, CHARSET_DIR, ALLOWED_EXTENSIONS, suffix='.hcchr') if uploadedFile: size = os.path.getsize( os.path.join(CHARSET_DIR, uploadedFile['path'])) charset = FcCharset(name=uploadedFile['stem'], path=uploadedFile['path'], keyspace=size) try: db.session.add(charset) db.session.commit() except exc.IntegrityError as e: db.session().rollback() abort( 500, 'Charset with name ' + uploadedFile['filename'] + ' already exists.') return { 'message': 'File ' + uploadedFile['filename'] + ' successfully uploaded.', 'status': True } else: abort(500, 'Wrong file format')
def post(self): """ Upload pcfg on server """ # check if the post request has the file part if 'file' not in request.files: abort(500, 'No file part') return redirect(request.url) file = request.files['file'] # if user does not select file, browser also # submit a empty part without filename if file.filename == '': abort(500, 'No selected file') uploadedFile = fileUpload(file, PCFG_DIR, ALLOWED_EXTENSIONS) if uploadedFile: unzipGrammarToPcfgFolder(uploadedFile['filename']) pcfg_keyspace = calculateKeyspace(uploadedFile['filename']) pcfg = FcPcfg( name=extractNameFromZipfile(uploadedFile['filename']), path=uploadedFile['path'], keyspace=int(pcfg_keyspace)) try: db.session.add(pcfg) db.session.commit() except exc.IntegrityError as e: db.session().rollback() abort(500, 'PCFG with name ' + uploadedFile['filename'] + ' already exists.') createPcfgGrammarBin(uploadedFile['filename']) return { 'message': 'PCFG ' + uploadedFile['filename'] + ' successfully uploaded.', 'status': True } else: abort(500, 'Wrong file format')
def post(self): """ Nahrava hcstats na server """ # check if the post request has the file part if 'file' not in request.files: abort(500, 'No file part') return redirect(request.url) file = request.files['file'] # if user does not select file, browser also # submit a empty part without filename if file.filename == '': abort(500, 'No selected file') uploadedFile = fileUpload(file, HCSTATS_DIR, ALLOWED_EXTENSIONS, suffix='.hcstat2', withTimestamp=True) if uploadedFile: hcstats = FcHcstat(name=uploadedFile['filename'], path=uploadedFile['path']) try: db.session.add(hcstats) db.session.commit() except exc.IntegrityError as e: db.session().rollback() abort( 500, 'HcStats with name ' + uploadedFile['filename'] + ' already exists.') return { 'message': 'File ' + uploadedFile['filename'] + ' successfuly uploaded.', 'status': True } else: abort(500, 'Wrong file format')