From cde2fe2dd82ab89b66d20d13b9a639326fd724d5 Mon Sep 17 00:00:00 2001 From: Quim Date: Wed, 10 Apr 2019 11:19:44 +0200 Subject: [PATCH] final commit for qualys web --- vulnwhisp/frameworks/qualys_web.py | 45 ++++++------------------------ 1 file changed, 8 insertions(+), 37 deletions(-) diff --git a/vulnwhisp/frameworks/qualys_web.py b/vulnwhisp/frameworks/qualys_web.py index 9e9d762..540d70f 100644 --- a/vulnwhisp/frameworks/qualys_web.py +++ b/vulnwhisp/frameworks/qualys_web.py @@ -126,7 +126,7 @@ class qualysWhisperAPI(object): 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): @@ -140,13 +140,13 @@ class qualysWhisperAPI(object): report_xml = E.ServiceRequest( E.data( E.Report( - E.name('![CDATA[API Scan Report generated by VulnWhisperer]]>'), - E.description('![CDATA[CSV Scanning report for VulnWhisperer]]'), + E.name(''), + E.description(''), E.format('CSV'), - E.type('WAS_SCAN_REPORT'), - #E.template( - # E.id(self.template_id) - #), + #E.type('WAS_SCAN_REPORT'), + E.template( + E.id(self.template_id) + ), E.config( E.scanReport( E.target( @@ -163,36 +163,8 @@ class qualysWhisperAPI(object): ) 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(''), - 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'): - mapper = {'scan': self.generate_scan_report_XML, - 'webapp': self.generate_webapp_report_XML} + mapper = {'scan': self.generate_scan_report_XML} try: data = mapper[kind](report_id) 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.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 = pd.merge(merged_df, df_dict['CATEGORY_HEADER'], how='left', left_on=['Category', 'Severity Level'],