ruby_arachni 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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: []