13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
# File 'lib/ruby_burp.rb', line 13
def self.parse(path)
issues = []
doc = Nokogiri::XML(File.open(path))
doc.xpath('//issues/issue').map do |xml_issue|
issue = RbIssue.new
[:serialNumber, :type, :name, :path, :location, :severity, :confidence, :issueBackground, :remediationBackground, :issueDetail].each do |field|
issue.send("#{rb_underscore(field.to_s)}=", xml_issue.css(field.to_s).text)
end
ip = xml_issue.css('host').attribute('ip').value
host = xml_issue.css('host').text
issue.host = RbHost.new(ip, host)
issue.references = RbReference.parse(xml_issue.css('references').text)
issue.request = RbRequest.parse(xml_issue.to_s)
issue.response = RbResponse.parse(xml_issue.to_s)
issue.vulnerability_classifications = RbVulnerabilityClassification.parse(xml_issue.css('vulnerabilityClassifications').text)
issues.push issue
end
return issues
end
|