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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 07772dd083a630e83ad509227e38d105c89fc4de4ae462aa0fe95c4af94f44cb
4
- data.tar.gz: 6e8cb4b2f2f584c07b430b0e3f7f047b508d51727d2fb3eca8d0cf03df019854
3
+ metadata.gz: 256e519af402fcde7728ce0d0d4841b488111981bc7db9f72fcd7f31bc26401d
4
+ data.tar.gz: 27f86ca1f0a1261a03f0deb1fbf8f661cc835a0b1091ff919e8ff3a964e5b66e
5
5
  SHA512:
6
- metadata.gz: 5649369d46f3c3d0425b32a2c67e989ea9d4921aaa89816f8f9cedf4f35102ee04ad9051e5ede769279b30ea89135d475bb6f40c7bbad9327375c4156673d338
7
- data.tar.gz: f10bcd7f5d84abeb1f7efba2ce0f6a1077540092ede4646b074aeee2eef256bf9c170839c402a3c581005f23b73386fec5496b015d579cc75fbcc7e80e254d9b
6
+ metadata.gz: 0371aa8c0c0fb728fec6deebbff650af1a41f3823739e2ba0d21f6c9c540d0c7335cbcce6d1664c38a88679f49249cb69cb65840b701c27f3e5f1f074fe509fe
7
+ data.tar.gz: 611d9af6fe0654547645e49064edd0c48216cc42b90d926cc5918549d7aeea03d4eb2aaa396a1791180db4a83da5d0a1d617c7e30186acd6e49f5b13a3462b06
data/CHANGELOG.md CHANGED
@@ -1,3 +1,6 @@
1
+ v5.4.0 (September 2026)
2
+ - No changes
3
+
1
4
  v5.3.0 (August 2026)
2
5
  - No changes
3
6
 
@@ -8,7 +8,7 @@ module Dradis
8
8
 
9
9
  module VERSION
10
10
  MAJOR = 5
11
- MINOR = 3
11
+ MINOR = 4
12
12
  TINY = 0
13
13
  PRE = nil
14
14
 
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.3.0
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: []
@@ -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
@@ -1,13 +0,0 @@
1
-
2
- # Bundler config
3
- Gemfile.lock
4
- /.bundle/
5
- /vendor/bundle/
6
-
7
- # Combustion (engine testing)
8
- /spec/internal/
9
-
10
- # Gem artifacts
11
- /pkg/
12
-
13
- .DS_Store
data/.rspec DELETED
@@ -1,2 +0,0 @@
1
- --color
2
- -f d
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
@@ -1,3 +0,0 @@
1
- # Plugin contribution guidelines
2
-
3
- See the Dradis Framework's [CONTRIBUTING.md](https://github.com/dradis/dradisframework/blob/master/CONTRIBUTING.md)
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
@@ -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