module RubyBurp

Constants

VERSION

Public Class Methods

parse(path) click to toggle source
# 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
rb_underscore(value) click to toggle source
# File lib/ruby_burp.rb, line 38
def self.rb_underscore(value)
  value.gsub(/::/, '/').
  gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
  gsub(/([a-z\d])([A-Z])/,'\1_\2').
  tr("-", "_").
  downcase
end