module PWN::Plugins::IBMAppscan

def self.generate_scan_report(opts = {})

def self.generate_scan_report(opts = {})
[:appscan_obj]
scan_name]
[:output_path]
an_obj[:appscan_ip].to_s.scrub
://#{appscan_ip}:9443/ase/pages/Login.jsp"
 "https://#{appscan_ip}/ase/FolderExplorer.aspx"
s://#{appscan_ip}/ase/LogOut.aspx"
t path actually exists
ror("Output directory does not exist: #{output_path}") unless File.directory?(output_path)
:Plugins::TransparentBrowser.open(
eadless,
27.0.0.1:8080'
r_obj[:browser]
tem
in_uri.to_s.to_s.scrub
ld(name: 'j_username').when_present.set(appscan_obj[:username])
ld(name: 'j_password').when_present.set(Base64.decode64(appscan_obj[:password]))
ame: 'login').when_present.click
 reports page and click on the report link
e_appscan_uri.to_s.to_s.scrub
xt, 'ASE').when_present.click
eport link with a matching name and click it
ch do |link|
k.text == scan_name.to_s) && link.href =~ /^https:.+XReports.+/
t.click
ror("Could not find matching scan name for name #{scan_name}") unless clicked
utput_path}/#{scan_name.gsub(/[^\w.-]/, '_')}/"
tput_path if File.directory?(output_path)
utput_path
 level report
_browser.url}&exportformat=pdf&exportdelivery=download"
utput_path}Top_Level.pdf"
scan_obj,
ort_link,
put_name
 => e
ror retrieving report for '#{scan_name}': #{e}")
ays logout
out_uri.to_s.to_s.scrub