ruby_arachni 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 895133ac414dd1c1713233b324ee555dc2c647ed
4
+ data.tar.gz: 9e38eed5f00bf4485f04c12310474b56deef3fbe
5
+ SHA512:
6
+ metadata.gz: e32da9b7a4184ceeed5ec2cd27fddb36625518935643f82b87d7f65ac28009cf0606971849653757fa68e73828b13fd1d30668694c79a1da7269f15c2dcf0611
7
+ data.tar.gz: dc9ef8ae2dff0e851dc083787a175788a2abc4ea2e40c03528aad613022bd9b976a038414faef049aa3e3568da5bd6fb2df792ad67a67fa2c3163a5e785c0e70
@@ -0,0 +1,44 @@
1
+ require 'nokogiri'
2
+
3
+ require File.join(File.dirname(__FILE__), 'ruby_arachni', 'version')
4
+ require File.join(File.dirname(__FILE__), 'ruby_arachni', 'rar_reference')
5
+ require File.join(File.dirname(__FILE__), 'ruby_arachni', 'rar_issue')
6
+ require File.join(File.dirname(__FILE__), 'ruby_arachni', 'rar_check')
7
+ require File.join(File.dirname(__FILE__), 'ruby_arachni', 'rar_vector')
8
+
9
+ module RubyArachni
10
+
11
+ def self.parse(path)
12
+ issues = []
13
+
14
+ doc = Nokogiri::XML(File.open(path))
15
+ doc.xpath('//issues/issue').map do |xml_issue|
16
+ issue = RarIssue.new
17
+ [:name, :description, :remedy_guidance, :remedy_code, :severity, :cwe, :digest,
18
+ :remarks, :page, :referring_page, :signature, :proof, :trusted, :platform_type,
19
+ :platform_name].each do |field|
20
+ issue.send("#{field.to_s}=", xml_issue.css(field.to_s).text)
21
+ end
22
+
23
+ check = xml_issue.css('check')
24
+ issue.check = RarCheck.parse(check) if !check.nil?
25
+
26
+ vector = xml_issue.css('vector')
27
+ issue.vector = RarVector.parse(vector) if !vector.nil?
28
+
29
+ issue.references = []
30
+
31
+ references = xml_issue.css('references')
32
+ if !references.nil?
33
+ references.css('reference').each do |reference|
34
+ issue.references.push(RarReference.parse(reference))
35
+ end
36
+ end
37
+
38
+ issues.push issue
39
+ end
40
+
41
+ issues
42
+ end
43
+
44
+ end
@@ -0,0 +1,25 @@
1
+ class RarCheck
2
+ attr_accessor :name, :description, :author, :version, :shortname
3
+
4
+ def initialize(fields)
5
+ self.name = fields['name']
6
+ self.description = fields['description']
7
+ self.author = fields['author']
8
+ self.version = fields['version']
9
+ self.shortname = fields['shortname']
10
+ end
11
+
12
+ class << self
13
+ def parse(check)
14
+ fields = {}
15
+
16
+ fields['name'] = check.css('name').text
17
+ fields['description'] = check.css('description').text
18
+ fields['author'] = check.css('author').text
19
+ fields['version'] = check.css('version').text
20
+ fields['shortname'] = check.css('shortname').text
21
+
22
+ RarCheck.new(fields)
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,5 @@
1
+ class RarIssue
2
+ attr_accessor :name, :description, :remedy_guidance, :remedy_code, :severity, :check, :cwe, :digest,
3
+ :references, :vector, :remarks, :page, :referring_page, :signature, :proof, :trusted, :platform_type,
4
+ :platform_name
5
+ end
@@ -0,0 +1,14 @@
1
+ class RarReference
2
+ attr_accessor :title, :url
3
+
4
+ def initialize(title, url)
5
+ self.title = title
6
+ self.url = url
7
+ end
8
+
9
+ class << self
10
+ def parse(reference)
11
+ RarReference.new(reference.attribute('title').value, reference.attribute('url').value)
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,16 @@
1
+ class RarVector
2
+ attr_accessor :klass, :type, :url, :action
3
+
4
+ def initialize(klass, type, url, action)
5
+ self.klass = klass
6
+ self.type = type
7
+ self.url = url
8
+ self.action = action
9
+ end
10
+
11
+ class << self
12
+ def parse(vector)
13
+ RarVector.new(vector.css('class').text, vector.css('type').text, vector.css('url').text, vector.css('action').text)
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,3 @@
1
+ module RubyArachni
2
+ VERSION = '1.0.0'
3
+ end
metadata ADDED
@@ -0,0 +1,50 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: ruby_arachni
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Adilson Chacon
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2018-11-21 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: Ruby Arachni Scanner XML Parser
14
+ email:
15
+ - adilsonchacon@gmail.com
16
+ executables: []
17
+ extensions: []
18
+ extra_rdoc_files: []
19
+ files:
20
+ - lib/ruby_arachni.rb
21
+ - lib/ruby_arachni/rar_check.rb
22
+ - lib/ruby_arachni/rar_issue.rb
23
+ - lib/ruby_arachni/rar_reference.rb
24
+ - lib/ruby_arachni/rar_vector.rb
25
+ - lib/ruby_arachni/version.rb
26
+ homepage: https://github.com/adilsonchacon/ruby-acunetix
27
+ licenses:
28
+ - MIT
29
+ metadata: {}
30
+ post_install_message:
31
+ rdoc_options: []
32
+ require_paths:
33
+ - lib
34
+ required_ruby_version: !ruby/object:Gem::Requirement
35
+ requirements:
36
+ - - ">="
37
+ - !ruby/object:Gem::Version
38
+ version: '0'
39
+ required_rubygems_version: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
44
+ requirements: []
45
+ rubyforge_project:
46
+ rubygems_version: 2.4.3
47
+ signing_key:
48
+ specification_version: 4
49
+ summary: Ruby Arachni Scanner XML Parser
50
+ test_files: []