final commit for qualys web
This commit is contained in:
@ -126,7 +126,7 @@ class qualysWhisperAPI(object):
|
|||||||
return pd.concat(dataframes, axis=0).reset_index().drop('index', axis=1)
|
return pd.concat(dataframes, axis=0).reset_index().drop('index', axis=1)
|
||||||
|
|
||||||
####
|
####
|
||||||
#### NEXT THING
|
#### CREATE VULNERABILITY REPORT AND DOWNLOAD IT
|
||||||
####
|
####
|
||||||
|
|
||||||
def get_report_status(self, report_id):
|
def get_report_status(self, report_id):
|
||||||
@ -140,13 +140,13 @@ class qualysWhisperAPI(object):
|
|||||||
report_xml = E.ServiceRequest(
|
report_xml = E.ServiceRequest(
|
||||||
E.data(
|
E.data(
|
||||||
E.Report(
|
E.Report(
|
||||||
E.name('![CDATA[API Scan Report generated by VulnWhisperer]]>'),
|
E.name('<![CDATA[API Scan Report generated by VulnWhisperer]]>'),
|
||||||
E.description('![CDATA[CSV Scanning report for VulnWhisperer]]'),
|
E.description('<![CDATA[CSV Scanning report for VulnWhisperer]]>'),
|
||||||
E.format('CSV'),
|
E.format('CSV'),
|
||||||
E.type('WAS_SCAN_REPORT'),
|
#E.type('WAS_SCAN_REPORT'),
|
||||||
#E.template(
|
E.template(
|
||||||
# E.id(self.template_id)
|
E.id(self.template_id)
|
||||||
#),
|
),
|
||||||
E.config(
|
E.config(
|
||||||
E.scanReport(
|
E.scanReport(
|
||||||
E.target(
|
E.target(
|
||||||
@ -163,36 +163,8 @@ class qualysWhisperAPI(object):
|
|||||||
)
|
)
|
||||||
return report_xml
|
return report_xml
|
||||||
|
|
||||||
def generate_webapp_report_XML(self, app_id):
|
|
||||||
"""Generates a CSV report for an asset based on template defined in .ini file"""
|
|
||||||
report_xml = E.ServiceRequest(
|
|
||||||
E.data(
|
|
||||||
E.Report(
|
|
||||||
E.name('![CDATA[API Web Application Report generated by VulnWhisperer]]>'),
|
|
||||||
E.description('<![CDATA[CSV WebApp report for VulnWhisperer]]>'),
|
|
||||||
E.format('CSV'),
|
|
||||||
E.template(
|
|
||||||
E.id(self.template_id)
|
|
||||||
),
|
|
||||||
E.config(
|
|
||||||
E.webAppReport(
|
|
||||||
E.target(
|
|
||||||
E.webapps(
|
|
||||||
E.WebApp(
|
|
||||||
E.id(app_id)
|
|
||||||
)
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
return report_xml
|
|
||||||
|
|
||||||
def create_report(self, report_id, kind='scan'):
|
def create_report(self, report_id, kind='scan'):
|
||||||
mapper = {'scan': self.generate_scan_report_XML,
|
mapper = {'scan': self.generate_scan_report_XML}
|
||||||
'webapp': self.generate_webapp_report_XML}
|
|
||||||
try:
|
try:
|
||||||
data = mapper[kind](report_id)
|
data = mapper[kind](report_id)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
@ -456,7 +428,6 @@ class qualysScanReport:
|
|||||||
merged_df = merged_df.drop(['QID_y', 'QID_x'], axis=1)
|
merged_df = merged_df.drop(['QID_y', 'QID_x'], axis=1)
|
||||||
merged_df = merged_df.rename(columns={'Id': 'QID'})
|
merged_df = merged_df.rename(columns={'Id': 'QID'})
|
||||||
|
|
||||||
#TODO CODE BREAKS HERE, SCAN_META IS AN EMPTY DATAFRAME
|
|
||||||
merged_df = merged_df.assign(**df_dict['SCAN_META'].to_dict(orient='records')[0])
|
merged_df = merged_df.assign(**df_dict['SCAN_META'].to_dict(orient='records')[0])
|
||||||
|
|
||||||
merged_df = pd.merge(merged_df, df_dict['CATEGORY_HEADER'], how='left', left_on=['Category', 'Severity Level'],
|
merged_df = pd.merge(merged_df, df_dict['CATEGORY_HEADER'], how='left', left_on=['Category', 'Severity Level'],
|
||||||
|
Reference in New Issue
Block a user