dradis-netsparker 3.12.0 → 3.17.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 9dd196e151bf9ca25d8cb0db7c567d6a5304be1e
4
- data.tar.gz: a5089c0007bac27aa333e6358a470305f7b11acf
2
+ SHA256:
3
+ metadata.gz: d1faf82743da1e57af1427a6c3954c91aa0bfc21a813d6737e1ac054caf43b90
4
+ data.tar.gz: e8fd94fe3b0325a6782a5ef29e01bbc2c6d1a1cf0bd4ec81cd2a1887cb3e0eaa
5
5
  SHA512:
6
- metadata.gz: 32516dccc206766d06f5355dd17dc059af39414fc11371376d3673a5599814d783ad56fb27b8f5a0f859a46e721c6df9d361c52cced8318b8ebb5e22caa1622b
7
- data.tar.gz: fab2932b1293e827b10a25d78b89af5a8f7dcdc51b15dc8d1818839274534fbb02e0fa32d02e9277a3bec81cd44a22715d1551bc11a00b83dbcc16d95adc4ac3
6
+ metadata.gz: 7fb555fcf9fe7e4e0b4096511527adb9a8bc9da49567d77b1c92919a6046d7c2ff868294f9665889587c3e9576449cc45f0c2451649a51c0f9b2cc339bd25f35
7
+ data.tar.gz: e2816d3be2afed5b5e267530f973635e549c3f6e846e7600c0cd37954e79c5b415ac8d326ed3939f44c87fb33cd9692dbbd9fb7129c38e028ca97a64af2065de
@@ -0,0 +1,16 @@
1
+ ### Steps to reproduce
2
+
3
+ Help us help you, how can we reproduce the problem?
4
+
5
+ ### Expected behavior
6
+ Tell us what should happen
7
+
8
+ ### Actual behavior
9
+ Tell us what happens instead
10
+
11
+ ### System configuration
12
+ **Dradis version**:
13
+
14
+ **Ruby version**:
15
+
16
+ **OS version**:
@@ -0,0 +1,36 @@
1
+ ### Summary
2
+
3
+ Provide a general description of the code changes in your pull
4
+ request... were there any bugs you had fixed? If so, mention them. If
5
+ these bugs have open GitHub issues, be sure to tag them here as well,
6
+ to keep the conversation linked together.
7
+
8
+
9
+ ### Other Information
10
+
11
+ If there's anything else that's important and relevant to your pull
12
+ request, mention that information here. This could include
13
+ benchmarks, or other information.
14
+
15
+ Thanks for contributing to Dradis!
16
+
17
+
18
+ ### Copyright assignment
19
+
20
+ Collaboration is difficult with commercial closed source but we want
21
+ to keep as much of the OSS ethos as possible available to users
22
+ who want to fix it themselves.
23
+
24
+ In order to unambiguously own and sell Dradis Framework commercial
25
+ products, we must have the copyright associated with the entire
26
+ codebase. Any code you create which is merged must be owned by us.
27
+ That's not us trying to be a jerks, that's just the way it works.
28
+
29
+ Please review the [CONTRIBUTING.md](https://github.com/dradis/dradis-ce/blob/master/CONTRIBUTING.md)
30
+ file for the details.
31
+
32
+ You can delete this section, but the following sentence needs to
33
+ remain in the PR's description:
34
+
35
+ > I assign all rights, including copyright, to any future Dradis
36
+ > work by myself to Security Roots.
@@ -1,3 +1,24 @@
1
+ ## Dradis Framework 3.17 (May, 2020) ##
2
+
3
+ * Use the new <title> tag provided by Netsparker.
4
+
5
+ ## Dradis Framework 3.16 (February, 2020) ##
6
+
7
+ * No changes.
8
+
9
+ ## Dradis Framework 3.15 (November, 2019) ##
10
+
11
+ * Fix link parsing of issue.external_references
12
+
13
+ ## Dradis Framework 3.14 (August, 2019) ##
14
+
15
+ * No changes.
16
+
17
+ ## Dradis Framework 3.13 (June, 2019)
18
+
19
+ * Add Known Vulnerabilities and OWASP 2017 Classification as available Issue fields
20
+ * Add :vulnerableparameter, :vulnerableparametertype, and :vulnerableparametervalue Evidence fields
21
+
1
22
  ## Dradis Framework 3.12 (March, 2019)
2
23
 
3
24
  * Change alphabetical lists to bullet lists
@@ -26,9 +26,9 @@ Gem::Specification.new do |spec|
26
26
  # until we bump Dradis Pro to 4.1.
27
27
  # s.add_dependency 'rails', '~> 4.1.1'
28
28
  spec.add_dependency 'dradis-plugins', '~> 3.2'
29
- spec.add_dependency 'nokogiri', '~> 1.3'
29
+ spec.add_dependency 'nokogiri', '~> 1.10.4'
30
30
 
31
- spec.add_development_dependency 'bundler', '~> 1.6'
31
+ spec.add_development_dependency 'bundler'
32
32
  spec.add_development_dependency 'rake', '~> 10.0'
33
33
  spec.add_development_dependency 'rspec-rails'
34
34
  spec.add_development_dependency 'combustion', '~> 0.5.2'
@@ -8,7 +8,7 @@ module Dradis
8
8
 
9
9
  module VERSION
10
10
  MAJOR = 3
11
- MINOR = 12
11
+ MINOR = 17
12
12
  TINY = 0
13
13
  PRE = nil
14
14
 
@@ -19,16 +19,15 @@ module Netsparker
19
19
  # collections.
20
20
  def supported_tags
21
21
  [
22
- # made-up tags
23
- :title,
24
-
25
22
  # simple tags
26
23
  :actions_to_take, :certainty, :description, :external_references,
27
- :extrainformation, :impact, :rawrequest, :rawresponse, :remedy,
24
+ :extrainformation, :impact, :knownvulnerabilities,
25
+ :rawrequest, :rawresponse, :remedy,
28
26
  :remedy_references, :required_skills_for_exploitation, :severity,
29
- :type, :url,
27
+ :title, :type, :url,
30
28
 
31
29
  # tags that correspond to Evidence
30
+ :vulnerableparameter, :vulnerableparametertype, :vulnerableparametervalue,
32
31
 
33
32
  # nested tags
34
33
  :classification_capec,
@@ -39,7 +38,7 @@ module Netsparker
39
38
  :classification_cvss_temporal_value, :classification_cvss_temporal_severity,
40
39
 
41
40
  :classification_cwe, :classification_hipaa,
42
- :classification_owasp2013, :classification_owasppc,
41
+ :classification_owasp2013, :classification_owasp2017, :classification_owasppc,
43
42
  :classification_pci31, :classification_pci32, :classification_wasc,
44
43
 
45
44
  # multiple tags
@@ -86,6 +85,7 @@ module Netsparker
86
85
  classification_cvss_temporal_severity: "classification/CVSS/score/type[text()='Temporal']/../severity",
87
86
  classification_hipaa: 'classification/HIPAA',
88
87
  classification_owasp2013: 'classification/OWASP2013',
88
+ classification_owasp2017: 'classification/OWASP2017',
89
89
  classification_owasppc: 'classification/OWASPPC',
90
90
  classification_pci31: 'classification/PCI31',
91
91
  classification_pci32: 'classification/PCI32',
@@ -96,10 +96,6 @@ module Netsparker
96
96
  }
97
97
  method_name = translations_table.fetch(method, method.to_s)
98
98
 
99
- # We've got a virtual method :title which isn't provided by Netsparker
100
- # but that most users will be expecting.
101
- return type.underscore.humanize if method == :title
102
-
103
99
  # first we try the attributes:
104
100
  # return @xml.attributes[method_name].value if @xml.attributes.key?(method_name)
105
101
 
@@ -142,8 +138,7 @@ module Netsparker
142
138
  result.gsub!(/(<p>)|(<\/p>)/, "\n")
143
139
  result.gsub!(/\n[a-z]\. /, "\n\* ")
144
140
 
145
- result.gsub!(/<a href=\"(.*?)\" (.*?)>(.*?)<\/a>/i) { "\"#{$3.strip}\":#{$1.strip}" }
146
- result.gsub!(/<a href=\'(.*?)\'>(.*?)<\/a>/i) { "\"#{$2.strip}\":#{$1.strip}" }
141
+ result.gsub!(/<a .*?href=(?:\"|\')(.*?)(?:\"|\').*?>(?:<i.*?<\/i>)?(.*?)<\/a>/i) { "\"#{$2.strip}\":#{$1.strip}" }
147
142
 
148
143
  result.gsub!(/<code><pre.*?>(.*?)<\/pre><\/code>/m) {|m| "\n\nbc.. #{$1}\n\np. \n" }
149
144
  result.gsub!(/<pre.*?>(.*?)<\/pre>/m) {|m| "\n\nbc.. #{$1}\n\np. \n" }
@@ -0,0 +1,50 @@
1
+ require 'spec_helper'
2
+
3
+ describe Netsparker::Vulnerability do
4
+ let(:doc) { described_class.new(nil) }
5
+
6
+ describe '#cleanup_html' do
7
+ it 'formats the html special characters' do
8
+ sample = "<doc>&quot;&amp;&lt;&gt;&#39;</doc>"
9
+ expected = "<doc>\"&<>\'</doc>"
10
+ expect(doc.send(:cleanup_html, sample)).to eq(expected)
11
+ end
12
+
13
+ it 'outputs the CDATA text' do
14
+ sample = "<doc><![CDATA[Sample Text]]></doc>"
15
+
16
+ expected = "<doc>Sample Text</doc>"
17
+ expect(doc.send(:cleanup_html, sample)).to eq(expected)
18
+ end
19
+
20
+ it 're-formats the html formatting tags to textile' do
21
+ sample = "<doc>"\
22
+ "<b>Bold</b>\n"\
23
+ "<i>Italic</i>\n"\
24
+ "<em>Emphasis</em>\n"\
25
+ "<h2>Header</h2>\n"\
26
+ "<strong>Strong</strong>\n"\
27
+ "</doc>"
28
+
29
+ expected = "<doc>*Bold*\n_Italic_\n*Emphasis*\n*Header*\n*Strong*\n</doc>"
30
+ expect(doc.send(:cleanup_html, sample)).to eq(expected)
31
+ end
32
+
33
+ it 're-format the html link to textile' do
34
+ sample = "<doc>"\
35
+ "<a href='https://drad.is'>DradisLink1</a>\n"\
36
+ "<a target='_blank' href='https://drad.is'><i class='icon-external-link'></i>DradisLink2</a>\n"\
37
+ "<a href=\"https://drad.is\">DradisLink3</a>\n"\
38
+ "<a href=\"https://drad.is\" class='rspec'>DradisLink4</a>\n"\
39
+ "</doc>"
40
+
41
+ expected = "<doc>"\
42
+ "\"DradisLink1\":https://drad.is\n"\
43
+ "\"DradisLink2\":https://drad.is\n"\
44
+ "\"DradisLink3\":https://drad.is\n"\
45
+ "\"DradisLink4\":https://drad.is\n"\
46
+ "</doc>"
47
+ expect(doc.send(:cleanup_html, sample)).to eq(expected)
48
+ end
49
+ end
50
+ end
@@ -1,3 +1,6 @@
1
1
  evidence.rawrequest
2
2
  evidence.rawresponse
3
3
  evidence.url
4
+ evidence.vulnerableparameter
5
+ evidence.vulnerableparametertype
6
+ evidence.vulnerableparametervalue
@@ -6,6 +6,9 @@
6
6
  ​<description><![CDATA[<p>Netsparker detected a missing <code>X-XSS-Protection</code> header which means that this website could be at risk of a Cross-site Scripting (XSS) attacks.</p>]]></description>
7
7
  <remedy><![CDATA[<div>Add the X-XSS-Protection header with a value of "1; mode= block".<ul><li><pre class="code">X-XSS-Protection: 1; mode=block</pre></li></ul></div>]]></remedy>
8
8
 
9
+ <vulnerableparametertype>GET</vulnerableparametertype>
10
+ <vulnerableparameter>value</vulnerableparameter>
11
+ <vulnerableparametervalue>1;expr 268409241 - 85983;x</vulnerableparametervalue>
9
12
  <rawrequest><![CDATA[GET /javascripts/responsive.js HTTP/1.1
10
13
  Host: test.testlab.com:3000
11
14
  Cache-Control: no-cache
@@ -6,3 +6,12 @@ bc.. %evidence.rawrequest%
6
6
 
7
7
  #[Response]#
8
8
  bc.. %evidence.rawresponse%
9
+
10
+ #[VulnerableParameter]#
11
+ bc. %evidence.vulnerableparameter%
12
+
13
+ #[VulnerableParameterType]#
14
+ bc. %evidence.vulnerableparametertype%
15
+
16
+ #[VulnerableParameterValue]#
17
+ bc. %evidence.vulnerableparametervalue%
@@ -11,6 +11,7 @@ issue.classification_cvss_temporal_severity
11
11
  issue.classification_cwe
12
12
  issue.classification_hipaa
13
13
  issue.classification_owasp2013
14
+ issue.classification_owasp2017
14
15
  issue.classification_owasppc
15
16
  issue.classification_pci31
16
17
  issue.classification_pci32
@@ -19,6 +20,7 @@ issue.description
19
20
  issue.external_references
20
21
  issue.extrainformation
21
22
  issue.impact
23
+ issue.knownvulnerabilities
22
24
  issue.remedy
23
25
  issue.remedy_references
24
26
  issue.required_skills_for_exploitation
@@ -51,7 +51,8 @@ function openFlyout() {
51
51
 
52
52
 
53
53
  <classification>
54
- <OWASP2013></OWASP2013>
54
+ <OWASP2013>A2</OWASP2013>
55
+ <OWASP2017>A1</OWASP2017>
55
56
  <WASC></WASC>
56
57
  <CWE></CWE>
57
58
  <CAPEC></CAPEC>
@@ -79,5 +80,14 @@ function openFlyout() {
79
80
  </score>
80
81
  </CVSS>
81
82
  </classification>
83
+
84
+ <knownvulnerabilities>
85
+ <knownvulnerability>
86
+ <title>Apache Denial of Service Vulnerabillity</title>
87
+ <severity>Low</severity>
88
+ <references>CVE-2013-1896</references>
89
+ <affectedversions>2.2.2 to 2.2.21</affectedversions>
90
+ </knownvulnerability>
91
+ </knownvulnerabilities>
82
92
 
83
93
  </vulnerability>
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dradis-netsparker
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.12.0
4
+ version: 3.17.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel Martin
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-04-01 00:00:00.000000000 Z
11
+ date: 2020-06-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dradis-plugins
@@ -30,28 +30,28 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '1.3'
33
+ version: 1.10.4
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '1.3'
40
+ version: 1.10.4
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: bundler
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: '1.6'
47
+ version: '0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - "~>"
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
- version: '1.6'
54
+ version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rake
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -102,6 +102,8 @@ executables: []
102
102
  extensions: []
103
103
  extra_rdoc_files: []
104
104
  files:
105
+ - ".github/issue_template.md"
106
+ - ".github/pull_request_template.md"
105
107
  - ".gitignore"
106
108
  - CHANGELOG.md
107
109
  - CONTRIBUTING.md
@@ -125,6 +127,7 @@ files:
125
127
  - spec/fixtures/files/netsparker-localhost-demo.xml
126
128
  - spec/fixtures/files/testsparker.xml
127
129
  - spec/spec_helper.rb
130
+ - spec/vulnerability_spec.rb
128
131
  - templates/evidence.fields
129
132
  - templates/evidence.sample
130
133
  - templates/evidence.template
@@ -150,8 +153,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
150
153
  - !ruby/object:Gem::Version
151
154
  version: '0'
152
155
  requirements: []
153
- rubyforge_project:
154
- rubygems_version: 2.6.12
156
+ rubygems_version: 3.0.1
155
157
  signing_key:
156
158
  specification_version: 4
157
159
  summary: Netsparker add-on for the Dradis Framework.
@@ -162,3 +164,4 @@ test_files:
162
164
  - spec/fixtures/files/netsparker-localhost-demo.xml
163
165
  - spec/fixtures/files/testsparker.xml
164
166
  - spec/spec_helper.rb
167
+ - spec/vulnerability_spec.rb