final commit for qualys web

This commit is contained in:
Quim
2019-04-10 11:19:44 +02:00
parent eae64a745d
commit cde2fe2dd8

View File

@ -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'],