class HttpResult(BaseModel): '''WEB扫描结果表''' hostid = orm.ForeignKeyField(HostResult, related_name = 'HttpResult_hostid',null = True,) host = orm.CharField() port = orm.IntegerField(null = True, default = 80) domain = orm.CharField(null = True, default = '') state = orm.IntegerField(null = True, default = 0) banner = orm.CharField(null = True, default = '') xpoweredby = orm.CharField(null = True, default = '' ) title = orm.CharField(null = True, default = '') headers = orm.TextField(null = True, default = '{}' ) content = orm.TextField(null = True, default = '' ) updatedate = orm.DateTimeField(default = datetime.datetime.now)
class ScanTask(BaseModel): '''扫描任务表''' projectid = orm.ForeignKeyField( Project, related_name='ScanTask_projectid', ) tasktype = orm.ForeignKeyField(TaskType, related_name='ScanTask_tasktype', null=True) #任务名称-对应tasktype中的名称 tasknode = orm.ForeignKeyField(ClientNode, related_name='ScanTask_nodeid', null=True) #任务节点-对应tasknode中的名称 task_id = orm.CharField(unique=True, max_length=32, default=generateid) task_host = orm.CharField() #任务主机 task_args = orm.CharField(null=True, default='') #任务参数 task_note = orm.CharField(null=True, default='') #备注 task_code = orm.CharField( default='waiting' ) #任务状态 waiting-等待运行,working-运行中,finish-已完成,pause-进程挂起,,- task_pid = orm.CharField( null=True, default='', ) #任务对应的id task_level = orm.IntegerField( null=True, default=3, ) #任务等级 0、1、2、3 createdate = orm.DateTimeField(default=datetime.datetime.now) #创建时间 finishdate = orm.DateTimeField(default=datetime.datetime.now) #1-表示删除该任务
class DictResult(BaseModel): '''项目字典''' projectid = orm.ForeignKeyField(Project, related_name = 'DictResult_projectid') dict_key = orm.CharField(default = '') dict_value = orm.CharField(default = '') dict_style = orm.CharField(default = 'ALL') dict_count = orm.IntegerField(default = 1) #引用计数
class User(BaseModel): '''用户表''' uid = orm.CharField(unique=True, max_length=32, default=generateid) username = orm.CharField(unique=True, max_length=32) #用户名 password = orm.CharField( #用户密码 max_length=32, default="103006226e74df7e96e59bc24eb973e7") group = orm.IntegerField(default=1) #3-系统管理员,2-管理员,1-普通用户 company = orm.CharField(null=True, default='') #所在公司 department = orm.ForeignKeyField(Department, related_name='User_Departmentid') #部门 realname = orm.CharField(null=True, max_length=32) #真实姓名 phone = orm.CharField(null=True, max_length=11) #电话 email = orm.CharField(null=True, default='*****@*****.**') #邮箱 createdate = orm.DateTimeField(default=datetime.datetime.now) #创建时间 lastlogin = orm.DateTimeField(default=datetime.datetime.now) #最后登录时间 projectid = orm.CharField(null=True, default='') #上次选择的项目 def _check_password(self, raw, salt='\t\o\p\s\e\c'): return hashlib.md5(raw.encode() + salt.encode()).hexdigest() == self.password @staticmethod def _create_password(raw, salt='\t\o\p\s\e\c'): return hashlib.md5( hashlib.sha256(raw.encode()).hexdigest().encode() + salt.encode()).hexdigest()
class BugFlow(BaseModel): '''漏洞跟踪表''' fid = orm.PrimaryKeyField() #跟踪自身id flowid = orm.ForeignKeyField(BugResult, related_name='flowvulresult') #跟踪识别id flowname = orm.ForeignKeyField(User, related_name='flowcontact') #审批人员 backstep = orm.IntegerField(default = 0) #前一步流程ID nextstep = orm.CharField(null = True, default = '') #后一步流程ID flowstate = orm.BooleanField(default = True) #是否通过 flownote = orm.CharField(null = True) #处理意见 createdate = orm.DateTimeField(default = datetime.datetime.now)