dradis-acunetix 5.3.0 → 5.4.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +3 -0
- data/lib/dradis/plugins/acunetix/gem_version.rb +1 -1
- metadata +2 -29
- data/.github/issue_template.md +0 -16
- data/.github/pull_request_template.md +0 -45
- data/.gitignore +0 -13
- data/.rspec +0 -2
- data/.ruby-version +0 -1
- data/CHANGELOG.template +0 -12
- data/CONTRIBUTING.md +0 -3
- data/Gemfile +0 -23
- data/dradis-acunetix.gemspec +0 -33
- data/spec/acunetix/acunetix360/importer_spec.rb +0 -71
- data/spec/acunetix/standard/importer_spec.rb +0 -100
- data/spec/fixtures/files/acunetix360.xml +0 -280
- data/spec/fixtures/files/code-pre.acunetix.xml +0 -1732
- data/spec/fixtures/files/commas-format.acunetix.xml +0 -105
- data/spec/fixtures/files/simple.acunetix.xml +0 -1691
- data/spec/fixtures/files/testphp.vulnweb.com.export.acunetix.xml +0 -23976
- data/spec/models/acunetix/scan_spec.rb +0 -74
- data/spec/spec_helper.rb +0 -10
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 256e519af402fcde7728ce0d0d4841b488111981bc7db9f72fcd7f31bc26401d
|
|
4
|
+
data.tar.gz: 27f86ca1f0a1261a03f0deb1fbf8f661cc835a0b1091ff919e8ff3a964e5b66e
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 0371aa8c0c0fb728fec6deebbff650af1a41f3823739e2ba0d21f6c9c540d0c7335cbcce6d1664c38a88679f49249cb69cb65840b701c27f3e5f1f074fe509fe
|
|
7
|
+
data.tar.gz: 611d9af6fe0654547645e49064edd0c48216cc42b90d926cc5918549d7aeea03d4eb2aaa396a1791180db4a83da5d0a1d617c7e30186acd6e49f5b13a3462b06
|
data/CHANGELOG.md
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: dradis-acunetix
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 5.
|
|
4
|
+
version: 5.4.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Daniel Martin
|
|
@@ -99,19 +99,10 @@ executables: []
|
|
|
99
99
|
extensions: []
|
|
100
100
|
extra_rdoc_files: []
|
|
101
101
|
files:
|
|
102
|
-
- ".github/issue_template.md"
|
|
103
|
-
- ".github/pull_request_template.md"
|
|
104
|
-
- ".gitignore"
|
|
105
|
-
- ".rspec"
|
|
106
|
-
- ".ruby-version"
|
|
107
102
|
- CHANGELOG.md
|
|
108
|
-
- CHANGELOG.template
|
|
109
|
-
- CONTRIBUTING.md
|
|
110
|
-
- Gemfile
|
|
111
103
|
- LICENSE
|
|
112
104
|
- README.md
|
|
113
105
|
- Rakefile
|
|
114
|
-
- dradis-acunetix.gemspec
|
|
115
106
|
- lib/acunetix/concerns/cleanup.rb
|
|
116
107
|
- lib/acunetix/report_item.rb
|
|
117
108
|
- lib/acunetix/scan.rb
|
|
@@ -126,15 +117,6 @@ files:
|
|
|
126
117
|
- lib/dradis/plugins/acunetix/standard/importer.rb
|
|
127
118
|
- lib/dradis/plugins/acunetix/version.rb
|
|
128
119
|
- lib/tasks/thorfile.rb
|
|
129
|
-
- spec/acunetix/acunetix360/importer_spec.rb
|
|
130
|
-
- spec/acunetix/standard/importer_spec.rb
|
|
131
|
-
- spec/fixtures/files/acunetix360.xml
|
|
132
|
-
- spec/fixtures/files/code-pre.acunetix.xml
|
|
133
|
-
- spec/fixtures/files/commas-format.acunetix.xml
|
|
134
|
-
- spec/fixtures/files/simple.acunetix.xml
|
|
135
|
-
- spec/fixtures/files/testphp.vulnweb.com.export.acunetix.xml
|
|
136
|
-
- spec/models/acunetix/scan_spec.rb
|
|
137
|
-
- spec/spec_helper.rb
|
|
138
120
|
- templates/evidence.sample
|
|
139
121
|
- templates/evidence_360.sample
|
|
140
122
|
- templates/report_item.sample
|
|
@@ -161,13 +143,4 @@ requirements: []
|
|
|
161
143
|
rubygems_version: 3.6.9
|
|
162
144
|
specification_version: 4
|
|
163
145
|
summary: Acunetix add-on for the Dradis Framework.
|
|
164
|
-
test_files:
|
|
165
|
-
- spec/acunetix/acunetix360/importer_spec.rb
|
|
166
|
-
- spec/acunetix/standard/importer_spec.rb
|
|
167
|
-
- spec/fixtures/files/acunetix360.xml
|
|
168
|
-
- spec/fixtures/files/code-pre.acunetix.xml
|
|
169
|
-
- spec/fixtures/files/commas-format.acunetix.xml
|
|
170
|
-
- spec/fixtures/files/simple.acunetix.xml
|
|
171
|
-
- spec/fixtures/files/testphp.vulnweb.com.export.acunetix.xml
|
|
172
|
-
- spec/models/acunetix/scan_spec.rb
|
|
173
|
-
- spec/spec_helper.rb
|
|
146
|
+
test_files: []
|
data/.github/issue_template.md
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
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**:
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
Please review [CONTRIBUTING.md](https://github.com/dradis/dradis-ce/blob/develop/CONTRIBUTING.md) and remove this line.
|
|
2
|
-
|
|
3
|
-
### Summary
|
|
4
|
-
|
|
5
|
-
Provide a general description of the code changes in your pull
|
|
6
|
-
request... were there any bugs you had fixed? If so, mention them. If
|
|
7
|
-
these bugs have open GitHub issues, be sure to tag them here as well,
|
|
8
|
-
to keep the conversation linked together.
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
### Testing Steps
|
|
12
|
-
|
|
13
|
-
Provide steps to test functionality, described in detail for someone not familiar with this part of the application / code base
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
### Other Information
|
|
17
|
-
|
|
18
|
-
If there's anything else that's important and relevant to your pull
|
|
19
|
-
request, mention that information here. This could include
|
|
20
|
-
benchmarks, or other information.
|
|
21
|
-
|
|
22
|
-
Thanks for contributing to Dradis!
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
### Copyright assignment
|
|
26
|
-
|
|
27
|
-
Collaboration is difficult with commercial closed source but we want
|
|
28
|
-
to keep as much of the OSS ethos as possible available to users
|
|
29
|
-
who want to fix it themselves.
|
|
30
|
-
|
|
31
|
-
In order to unambiguously own and sell Dradis Framework commercial
|
|
32
|
-
products, we must have the copyright associated with the entire
|
|
33
|
-
codebase. Any code you create which is merged must be owned by us.
|
|
34
|
-
That's not us trying to be a jerks, that's just the way it works.
|
|
35
|
-
|
|
36
|
-
You can delete this section, but the following sentence needs to
|
|
37
|
-
remain in the PR's description:
|
|
38
|
-
|
|
39
|
-
> I assign all rights, including copyright, to any future Dradis
|
|
40
|
-
> work by myself to Security Roots.
|
|
41
|
-
|
|
42
|
-
### Check List
|
|
43
|
-
|
|
44
|
-
- [ ] Added a CHANGELOG entry
|
|
45
|
-
- [ ] Added specs
|
data/.gitignore
DELETED
data/.rspec
DELETED
data/.ruby-version
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
3.4.6
|
data/CHANGELOG.template
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
[v#.#.#] ([month] [YYYY])
|
|
2
|
-
- [future tense verb] [feature]
|
|
3
|
-
- Upgraded gems:
|
|
4
|
-
- [gem]
|
|
5
|
-
- Bugs fixes:
|
|
6
|
-
- [future tense verb] [bug fix]
|
|
7
|
-
- Bug tracker items:
|
|
8
|
-
- [item]
|
|
9
|
-
- Security Fixes:
|
|
10
|
-
- High: (Authenticated|Unauthenticated) (admin|author|contributor) [vulnerability description]
|
|
11
|
-
- Medium: (Authenticated|Unauthenticated) (admin|author|contributor) [vulnerability description]
|
|
12
|
-
- Low: (Authenticated|Unauthenticated) (admin|author|contributor) [vulnerability description]
|
data/CONTRIBUTING.md
DELETED
data/Gemfile
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
source 'https://rubygems.org'
|
|
2
|
-
|
|
3
|
-
# Declare your gem's dependencies in dradispro-duoweb.gemspec.
|
|
4
|
-
# Bundler will treat runtime dependencies like base dependencies, and
|
|
5
|
-
# development dependencies will be added by default to the :development group.
|
|
6
|
-
gemspec
|
|
7
|
-
|
|
8
|
-
# jquery-rails is used by the dummy application
|
|
9
|
-
# gem "jquery-rails"
|
|
10
|
-
|
|
11
|
-
# Declare any dependencies that are still in development here instead of in
|
|
12
|
-
# your gemspec. These might include edge Rails or gems from your path or
|
|
13
|
-
# Git. Remember to move these dependencies to your gemspec before releasing
|
|
14
|
-
# your gem to rubygems.org.
|
|
15
|
-
|
|
16
|
-
# To use debugger
|
|
17
|
-
# gem 'debugger'
|
|
18
|
-
|
|
19
|
-
if Dir.exist?('../dradis-plugins')
|
|
20
|
-
gem 'dradis-plugins', path: '../dradis-plugins'
|
|
21
|
-
else
|
|
22
|
-
gem 'dradis-plugins', github: 'dradis/dradis-plugins'
|
|
23
|
-
end
|
data/dradis-acunetix.gemspec
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
$:.push File.expand_path('../lib', __FILE__)
|
|
2
|
-
require 'dradis/plugins/acunetix/version'
|
|
3
|
-
version = Dradis::Plugins::Acunetix::VERSION::STRING
|
|
4
|
-
|
|
5
|
-
# Describe your gem and declare its dependencies:
|
|
6
|
-
Gem::Specification.new do |spec|
|
|
7
|
-
spec.platform = Gem::Platform::RUBY
|
|
8
|
-
spec.name = 'dradis-acunetix'
|
|
9
|
-
spec.version = version
|
|
10
|
-
spec.summary = 'Acunetix add-on for the Dradis Framework.'
|
|
11
|
-
spec.description = 'This add-on allows you to upload and parse output produced from Acunetix Web Vulnerability Scanner into Dradis.'
|
|
12
|
-
|
|
13
|
-
spec.license = 'GPL-2'
|
|
14
|
-
|
|
15
|
-
spec.authors = ['Daniel Martin']
|
|
16
|
-
spec.homepage = 'https://dradis.com/integrations/acunetix.html'
|
|
17
|
-
|
|
18
|
-
spec.files = `git ls-files`.split($\)
|
|
19
|
-
spec.executables = spec.files.grep(%r{^bin/}).map { |f| File.basename(f) }
|
|
20
|
-
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
|
21
|
-
|
|
22
|
-
# By not including Rails as a dependency, we can use the gem with different
|
|
23
|
-
# versions of Rails (a sure recipe for disaster, I'm sure), which is needed
|
|
24
|
-
# until we bump Dradis Pro to 4.1.
|
|
25
|
-
# s.add_dependency 'rails', '~> 4.1.1'
|
|
26
|
-
spec.add_dependency 'dradis-plugins', '>= 4.0'
|
|
27
|
-
spec.add_dependency 'nokogiri', '~> 1.3'
|
|
28
|
-
|
|
29
|
-
spec.add_development_dependency 'bundler', '~> 2'
|
|
30
|
-
spec.add_development_dependency 'rake', '~> 13.0'
|
|
31
|
-
spec.add_development_dependency 'rspec-rails'
|
|
32
|
-
spec.add_development_dependency 'combustion', '~> 0.5.2'
|
|
33
|
-
end
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
# To run, execute from Dradis main app folder:
|
|
2
|
-
# bin/rspec [dradis-acunetix path]/spec/acunetix/acunetix360/importer_spec.rb
|
|
3
|
-
require 'rails_helper'
|
|
4
|
-
require 'ostruct'
|
|
5
|
-
require File.expand_path('../../../../../dradis-plugins/spec/support/spec_macros.rb', __FILE__)
|
|
6
|
-
|
|
7
|
-
include Dradis::Plugins::SpecMacros
|
|
8
|
-
|
|
9
|
-
module Dradis::Plugins
|
|
10
|
-
describe Acunetix::Acunetix360::Importer do
|
|
11
|
-
before do
|
|
12
|
-
@fixtures_dir = File.expand_path('../../../fixtures/files/', __FILE__)
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
before(:each) do
|
|
16
|
-
stub_content_service
|
|
17
|
-
|
|
18
|
-
@importer = described_class.new(content_service: @content_service)
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
def run_import!
|
|
22
|
-
@importer.import(file: @fixtures_dir + '/acunetix360.xml')
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
it 'creates nodes as needed' do
|
|
26
|
-
expect(@content_service).to receive(:create_node).with(hash_including label: 'http://aspnet.testsparker.com/', type: :host).once
|
|
27
|
-
|
|
28
|
-
run_import!
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
it 'creates issues from vulnerability elements' do
|
|
32
|
-
expect(@content_service).to receive(:create_issue) do |args|
|
|
33
|
-
expect(args[:text]).to include("#[Title]#\nBlind SQL Injection")
|
|
34
|
-
expect(args[:id]).to eq('ConfirmedBlindSqlInjection')
|
|
35
|
-
end.once
|
|
36
|
-
|
|
37
|
-
expect(@content_service).to receive(:create_issue) do |args|
|
|
38
|
-
expect(args[:text]).to include("#[Title]#\nCross-site Scripting")
|
|
39
|
-
expect(args[:id]).to eq('Xss')
|
|
40
|
-
end.once
|
|
41
|
-
|
|
42
|
-
run_import!
|
|
43
|
-
end
|
|
44
|
-
|
|
45
|
-
it 'creates evidence from vulnerability elements' do
|
|
46
|
-
expect(@content_service).to receive(:create_evidence) do |args|
|
|
47
|
-
expect(args[:content]).to include('POST /blog/%27))%20WAITFOR%20DELAY%20%270%3a0%3a25%27')
|
|
48
|
-
expect(args[:issue].id).to eq('ConfirmedBlindSqlInjection')
|
|
49
|
-
expect(args[:node].label).to eq('http://aspnet.testsparker.com/')
|
|
50
|
-
end.once
|
|
51
|
-
|
|
52
|
-
expect(@content_service).to receive(:create_evidence) do |args|
|
|
53
|
-
expect(args[:content]).to include('GET /About.aspx HTTP/1.1')
|
|
54
|
-
expect(args[:issue].id).to eq('Xss')
|
|
55
|
-
expect(args[:node].label).to eq('http://aspnet.testsparker.com/')
|
|
56
|
-
end
|
|
57
|
-
|
|
58
|
-
run_import!
|
|
59
|
-
end
|
|
60
|
-
|
|
61
|
-
it 'parses links in <external-references> tag' do
|
|
62
|
-
expect(@content_service).to receive(:create_issue) do |args|
|
|
63
|
-
expect(args[:text]).to include('"Blind SQL Injection":https://www.owasp.org/index.php/Blind_SQL_Injection')
|
|
64
|
-
expect(args[:text]).to include('"SQL Injection Cheat Sheet[#Blind]":https://www.acunetix.com/blog/web-security/sql-injection-cheat-sheet/#BlindSQLInjections')
|
|
65
|
-
OpenStruct.new(args)
|
|
66
|
-
end
|
|
67
|
-
|
|
68
|
-
run_import!
|
|
69
|
-
end
|
|
70
|
-
end
|
|
71
|
-
end
|
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
# To run, execute from Dradis main app folder:
|
|
2
|
-
# bin/rspec [dradis-acunetix path]/spec/acunetix/standard/importer_spec.rb
|
|
3
|
-
require 'rails_helper'
|
|
4
|
-
require 'ostruct'
|
|
5
|
-
require File.expand_path('../../../../../dradis-plugins/spec/support/spec_macros.rb', __FILE__)
|
|
6
|
-
|
|
7
|
-
include Dradis::Plugins::SpecMacros
|
|
8
|
-
|
|
9
|
-
module Dradis::Plugins
|
|
10
|
-
describe Acunetix::Standard::Importer do
|
|
11
|
-
before do
|
|
12
|
-
@fixtures_dir = File.expand_path('../../../fixtures/files/', __FILE__)
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
before(:each) do
|
|
16
|
-
stub_content_service
|
|
17
|
-
|
|
18
|
-
@importer = described_class.new(content_service: @content_service)
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
def run_import!
|
|
22
|
-
@importer.import(file: @fixtures_dir + '/simple.acunetix.xml')
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
it 'creates nodes as needed' do
|
|
26
|
-
expect(@content_service).to receive(:create_node).with(hash_including label: 'testphp.vulnweb.com', type: :host).once
|
|
27
|
-
|
|
28
|
-
run_import!
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
it 'creates notes as needed' do
|
|
32
|
-
expect(@content_service).to receive(:create_note) do |args|
|
|
33
|
-
expect(args[:text]).to include('Scan Thread 1')
|
|
34
|
-
expect(args[:node].label).to eq('testphp.vulnweb.com')
|
|
35
|
-
end.once
|
|
36
|
-
|
|
37
|
-
run_import!
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
it 'creates issues from report_item elements' do
|
|
41
|
-
expect(@content_service).to receive(:create_issue) do |args|
|
|
42
|
-
expect(args[:text]).to include('HTML form without CSRF protection')
|
|
43
|
-
expect(args[:id]).to eq('Crawler/HTML form without CSRF protection')
|
|
44
|
-
end.once
|
|
45
|
-
|
|
46
|
-
expect(@content_service).to receive(:create_issue) do |args|
|
|
47
|
-
expect(args[:text]).to include('Clickjacking: X-Frame-Options header missing')
|
|
48
|
-
expect(args[:id]).to eq('Scripting (Clickjacking_X_Frame_Options.script)/Clickjacking: X-Frame-Options header missing')
|
|
49
|
-
end.once
|
|
50
|
-
|
|
51
|
-
run_import!
|
|
52
|
-
end
|
|
53
|
-
|
|
54
|
-
it 'creates evidence from report_item elements' do
|
|
55
|
-
expect(@content_service).to receive(:create_evidence) do |args|
|
|
56
|
-
expect(args[:content]).to include('Form name:')
|
|
57
|
-
expect(args[:issue].id).to eq('Crawler/HTML form without CSRF protection')
|
|
58
|
-
expect(args[:node].label).to eq('testphp.vulnweb.com')
|
|
59
|
-
end.once
|
|
60
|
-
|
|
61
|
-
expect(@content_service).to receive(:create_evidence) do |args|
|
|
62
|
-
expect(args[:content]).to include('Web Server')
|
|
63
|
-
expect(args[:issue].id).to eq('Scripting (Clickjacking_X_Frame_Options.script)/Clickjacking: X-Frame-Options header missing')
|
|
64
|
-
expect(args[:node].label).to eq('testphp.vulnweb.com')
|
|
65
|
-
end
|
|
66
|
-
|
|
67
|
-
run_import!
|
|
68
|
-
end
|
|
69
|
-
|
|
70
|
-
describe 'Regression tests' do
|
|
71
|
-
# Regression test for github.com/dradis/dradis-nexpose/issues/1
|
|
72
|
-
describe 'Source HTML parsing' do
|
|
73
|
-
it 'identifies code/pre blocks and replaces them with the Textile equivalent' do
|
|
74
|
-
|
|
75
|
-
expect(@content_service).to receive(:create_issue) do |args|
|
|
76
|
-
expect(args[:text]).to include('SQL injection (verified)')
|
|
77
|
-
expect(args[:text]).not_to include('<code>')
|
|
78
|
-
expect(args[:text]).not_to include('<pre')
|
|
79
|
-
expect(args[:id]).to eq('Scripting (Sql_Injection.script)/SQL injection (verified)')
|
|
80
|
-
end.once
|
|
81
|
-
|
|
82
|
-
@importer.import(file: @fixtures_dir + '/code-pre.acunetix.xml')
|
|
83
|
-
end
|
|
84
|
-
end
|
|
85
|
-
|
|
86
|
-
# Regression test to make sure that commas are replaced with decimals in the CVSSv3 scores
|
|
87
|
-
describe 'CVSS clean up decimals' do
|
|
88
|
-
it 'identifies commas used as decimals in CVSSv3 scores and replaces them with periods' do
|
|
89
|
-
|
|
90
|
-
expect(@content_service).to receive(:create_issue) do |args|
|
|
91
|
-
expect(args[:text]).to include('5.3')
|
|
92
|
-
end
|
|
93
|
-
|
|
94
|
-
@importer.import(file: @fixtures_dir + '/commas-format.acunetix.xml')
|
|
95
|
-
end
|
|
96
|
-
end
|
|
97
|
-
|
|
98
|
-
end
|
|
99
|
-
end
|
|
100
|
-
end
|