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 +5 -5
- data/.github/issue_template.md +16 -0
- data/.github/pull_request_template.md +36 -0
- data/CHANGELOG.md +21 -0
- data/dradis-netsparker.gemspec +2 -2
- data/lib/dradis/plugins/netsparker/gem_version.rb +1 -1
- data/lib/netsparker/vulnerability.rb +7 -12
- data/spec/vulnerability_spec.rb +50 -0
- data/templates/evidence.fields +3 -0
- data/templates/evidence.sample +3 -0
- data/templates/evidence.template +9 -0
- data/templates/issue.fields +2 -0
- data/templates/issue.sample +11 -1
- metadata +13 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: d1faf82743da1e57af1427a6c3954c91aa0bfc21a813d6737e1ac054caf43b90
|
4
|
+
data.tar.gz: e8fd94fe3b0325a6782a5ef29e01bbc2c6d1a1cf0bd4ec81cd2a1887cb3e0eaa
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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.
|
data/CHANGELOG.md
CHANGED
@@ -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
|
data/dradis-netsparker.gemspec
CHANGED
@@ -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.
|
29
|
+
spec.add_dependency 'nokogiri', '~> 1.10.4'
|
30
30
|
|
31
|
-
spec.add_development_dependency 'bundler'
|
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'
|
@@ -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, :
|
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
|
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>"&<>'</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
|
data/templates/evidence.fields
CHANGED
data/templates/evidence.sample
CHANGED
@@ -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
|
data/templates/evidence.template
CHANGED
@@ -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%
|
data/templates/issue.fields
CHANGED
@@ -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
|
data/templates/issue.sample
CHANGED
@@ -51,7 +51,8 @@ function openFlyout() {
|
|
51
51
|
|
52
52
|
|
53
53
|
<classification>
|
54
|
-
<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.
|
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:
|
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:
|
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:
|
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: '
|
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: '
|
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
|
-
|
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
|