Esempio n. 1
0
def SaveWarningToDatabase(data):
    if args.use_database == False:
        return
    try:
        status = Status.objects(task_id=args.task_id)
        status.update(warning=data)
    except Exception, e:
        raise DatabaseException(repr(e))
Esempio n. 2
0
 def save(self):
     """
     Persist data to the DB
     """
     try:
         self.connect()
         self.cursor.execute(self.query, self.values)
         self.connection.commit()
         self.close()
         return True
     except Exception as e:
         raise DatabaseException(str(e))
Esempio n. 3
0
 def get(self):
     """
     Display data from the DB
     """
     try:
         self.connect()
         self.cursor.execute(self.query, self.values)
         rows = self.cursor.fetchall()
         self.close()
         return rows
     except Exception as e:
         raise DatabaseException(str(e))
Esempio n. 4
0
def SaveResultToDatabase(data):
    if args.use_database == False:
        return
    if not len(data['result']):
        return
    try:
        result = Result.objects(task_id=args.task_id)
        result.update(result=json.dumps(data['result']),
                      high_count=data['high_count'],
                      medium_count=data['medium_count'],
                      low_count=data['low_count'])
        for each in data['result']:
            for script in each['result']:
                if script['script_type'] == 'attack':
                    vuln_id = hashlib.md5(each['target'] +
                                          script['script_name']).hexdigest()
                    if Vuln.objects(vuln_id=vuln_id).count() == 0:
                        Vuln(task_id=args.task_id,
                             vuln_id=vuln_id,
                             target=each['target'],
                             script=hashlib.md5(
                                 script['script_name']).hexdigest(),
                             message=script['message'],
                             script_type=script['script_type']).save()
                    else:
                        vuln = Vuln.objects(vuln_id=vuln_id).first()
                        vuln.update(task_id=args.task_id,
                                    target=each['target'],
                                    script=hashlib.md5(
                                        script['script_name']).hexdigest(),
                                    message=script['message'],
                                    script_type=script['script_type'])
                elif script['script_type'] == 'info':
                    vuln_id = hashlib.md5(each['target'] +
                                          script['script_name']).hexdigest()
                    if Vuln.objects(vuln_id=vuln_id).count() == 0:
                        Vuln(task_id=args.task_id,
                             vuln_id=vuln_id,
                             target=each['target'],
                             script=hashlib.md5(
                                 script['script_name']).hexdigest(),
                             message=json.dumps(script['items']),
                             script_type=script['script_type']).save()
                    else:
                        vuln = Vuln.objects(vuln_id=vuln_id).first()
                        vuln.update(task_id=args.task_id,
                                    target=each['target'],
                                    script=hashlib.md5(
                                        script['script_name']).hexdigest(),
                                    message=json.dumps(script['items']),
                                    script_type=script['script_type'])
    except Exception, e:
        raise DatabaseException(repr(e))
Esempio n. 5
0
def UpdateCommonScanInfoToDatabase(target_loader, script_loader):
    if args.use_database == False:
        return
    script_list = []
    try:
        for script in script_loader.script_object_list:
            script_list.append(script['name'])
        if Task.objects(task_id=args.task_id).count():
            task = Task.objects(task_id=args.task_id)
            task.update(full_target=json.dumps(target_loader.domain_list),
                        target_number=str(len(target_loader.domain_list)),
                        script_info=json.dumps(script_list))
    except Exception, e:
        raise DatabaseException(repr(e))
Esempio n. 6
0
    def connect(self, db_name=None):
        """
        connect to the database
        """
        if db_name is None:
            db_name = self.db_name

        try:
            self.connection = psycopg2.connect(
                "dbname={} user={} host={}".format(db_name, self.db_user,
                                                   self.db_host))
            # Activate autocommit mode so we can created db
            self.connection.autocommit = True
            self.cursor = self.connection.cursor()
        except Exception as e:
            raise DatabaseException(str(e))
        return True
Esempio n. 7
0
def UpdateStatus():
    if args.use_database == False:
        return
    try:
        if Status.objects(task_id=args.task_id).count():
            status = Status.objects(task_id=args.task_id).first()
            status.update(status=STATUS.RUN)
        else:
            try:
                Status(task_id=args.task_id,
                       task_name=args.task_name,
                       warning='',
                       progress='0',
                       status=STATUS.RUN).save()
            except Exception, e:
                if 'duplicate key' in e:
                    pass
    except Exception, e:
        raise DatabaseException(repr(e))
Esempio n. 8
0
def SaveTaskToDatabase():
    if args.use_database == False:
        return
    if args.scan_type == TARGET_TYPE.API:
        target_type = args.scan_type + ' ' + args.api_type
    else:
        target_type = args.scan_type
    try:
        Task(
            task_id=args.task_id,
            task_name=args.task_name,
            short_target=args.user_input_target,
            scan_mode=args.scanner_mode,
            target_type=target_type,
            script_type=args.script_type,
        ).save()

        Result(task_id=args.task_id,
               result='',
               high_count=0,
               medium_count=0,
               low_count=0).save()
    except Exception, e:
        raise DatabaseException(repr(e))