dradis-burp 4.8.0 → 4.9.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +3 -0
- data/dradis-burp.gemspec +1 -1
- data/lib/burp/issue.rb +2 -0
- data/lib/dradis/plugins/burp/gem_version.rb +1 -1
- data/spec/burp_upload_spec.rb +17 -16
- data/spec/fixtures/files/burp.html +2 -2
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 190762a1cb56f840eda06155d3919b77979e1600ed04fcf9250d181079cb721f
|
4
|
+
data.tar.gz: ecfad110a2d6693434a52970447590bd580563d4b33f46f346f66a940fab4b1b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 86a3eafbdb9bebf8be2760c831d13e6cfb532743e29d997be640027b725e8ed1d3cf6c6c571aa619969da5c19c02282a1944c1f52fd8d3dadcda2457040882f1
|
7
|
+
data.tar.gz: '030139682d837062cf3d7d26f8bb6b40bf3be1299d7301271e1e1be499f08eb055c3c769e45ba2ffae5d4b6301bf1139d2cd78d4a85f9cfbfa44c22430a19706'
|
data/CHANGELOG.md
CHANGED
data/dradis-burp.gemspec
CHANGED
@@ -28,7 +28,7 @@ Gem::Specification.new do |spec|
|
|
28
28
|
spec.add_dependency 'nokogiri', '~> 1.3'
|
29
29
|
|
30
30
|
spec.add_development_dependency 'bundler'
|
31
|
-
spec.add_development_dependency 'rake', '
|
31
|
+
spec.add_development_dependency 'rake', '>= 12.3.3'
|
32
32
|
spec.add_development_dependency 'rspec-rails'
|
33
33
|
spec.add_development_dependency 'combustion', '~> 0.5.2'
|
34
34
|
end
|
data/lib/burp/issue.rb
CHANGED
@@ -36,6 +36,8 @@ module Burp
|
|
36
36
|
result.gsub!(/<table>(.*?)<\/table>/m){|m| "\n\n#{ $1 }\n\n" }
|
37
37
|
result.gsub!(/<tr>(.*?)<\/tr>/m){|m| "|#{ $1 }\n" }
|
38
38
|
result.gsub!(/<td>(.*?)<\/td>/, '\1|')
|
39
|
+
result.gsub!(/<strong>(.*?)<\/strong>/, '*\1*')
|
40
|
+
result.gsub!(/<code>(.*?)<\/code>/, '@\1@')
|
39
41
|
|
40
42
|
result
|
41
43
|
end
|
data/spec/burp_upload_spec.rb
CHANGED
@@ -9,11 +9,11 @@ describe 'Burp upload plugin' do
|
|
9
9
|
xml_issue = doc.xpath('issues/issue').first
|
10
10
|
issue = Burp::Xml::Issue.new(xml_issue)
|
11
11
|
|
12
|
-
expect{ issue.request.encode('utf-8') }.to_not raise_error
|
12
|
+
expect { issue.request.encode('utf-8') }.to_not raise_error
|
13
13
|
end
|
14
14
|
end
|
15
15
|
|
16
|
-
describe
|
16
|
+
describe Dradis::Plugins::Burp::Xml::Importer do
|
17
17
|
before(:each) do
|
18
18
|
# Stub template service
|
19
19
|
templates_dir = File.expand_path('../../templates', __FILE__)
|
@@ -66,9 +66,9 @@ describe 'Burp upload plugin' do
|
|
66
66
|
OpenStruct.new(args)
|
67
67
|
end.once
|
68
68
|
expect(@content_service).to receive(:create_evidence) do |args|
|
69
|
-
expect(args[:content]).to include(
|
69
|
+
expect(args[:content]).to include('Lorem ipsum dolor sit amet')
|
70
70
|
expect(args[:issue].text).to include("#[Title]#\nIssue 1")
|
71
|
-
expect(args[:node].label).to eq(
|
71
|
+
expect(args[:node].label).to eq('10.0.0.1')
|
72
72
|
end.once
|
73
73
|
|
74
74
|
expect(@content_service).to receive(:create_issue) do |args|
|
@@ -77,9 +77,9 @@ describe 'Burp upload plugin' do
|
|
77
77
|
OpenStruct.new(args)
|
78
78
|
end.once
|
79
79
|
expect(@content_service).to receive(:create_evidence) do |args|
|
80
|
-
expect(args[:content]).to include(
|
80
|
+
expect(args[:content]).to include('Lorem ipsum dolor sit amet')
|
81
81
|
expect(args[:issue].text).to include("#[Title]#\nIssue 2")
|
82
|
-
expect(args[:node].label).to eq(
|
82
|
+
expect(args[:node].label).to eq('10.0.0.1')
|
83
83
|
end.once
|
84
84
|
|
85
85
|
# Issue 3 is an Extension finding so we need to confirm
|
@@ -87,13 +87,13 @@ describe 'Burp upload plugin' do
|
|
87
87
|
# and the plugin_id is not set to the Type (134217728)
|
88
88
|
expect(@content_service).to receive(:create_issue) do |args|
|
89
89
|
expect(args[:text]).to include("#[Title]#\nIssue 3")
|
90
|
-
expect(args[:id]).to eq(
|
90
|
+
expect(args[:id]).to eq('Issue3')
|
91
91
|
OpenStruct.new(args)
|
92
92
|
end.once
|
93
93
|
expect(@content_service).to receive(:create_evidence) do |args|
|
94
|
-
expect(args[:content]).to include(
|
94
|
+
expect(args[:content]).to include('Lorem ipsum dolor sit amet')
|
95
95
|
expect(args[:issue].text).to include("#[Title]#\nIssue 3")
|
96
|
-
expect(args[:node].label).to eq(
|
96
|
+
expect(args[:node].label).to eq('10.0.0.1')
|
97
97
|
end.once
|
98
98
|
|
99
99
|
expect(@content_service).to receive(:create_issue) do |args|
|
@@ -102,12 +102,11 @@ describe 'Burp upload plugin' do
|
|
102
102
|
OpenStruct.new(args)
|
103
103
|
end.once
|
104
104
|
expect(@content_service).to receive(:create_evidence) do |args|
|
105
|
-
expect(args[:content]).to include(
|
105
|
+
expect(args[:content]).to include('Lorem ipsum dolor sit amet')
|
106
106
|
expect(args[:issue].text).to include("#[Title]#\nIssue 4")
|
107
|
-
expect(args[:node].label).to eq(
|
107
|
+
expect(args[:node].label).to eq('10.0.0.1')
|
108
108
|
end.once
|
109
109
|
|
110
|
-
|
111
110
|
# Run the import
|
112
111
|
@importer.import(file: 'spec/fixtures/files/burp.xml')
|
113
112
|
end
|
@@ -153,7 +152,7 @@ describe 'Burp upload plugin' do
|
|
153
152
|
end
|
154
153
|
end
|
155
154
|
|
156
|
-
describe
|
155
|
+
describe Dradis::Plugins::Burp::Html::Importer do
|
157
156
|
before(:each) do
|
158
157
|
# Stub template service
|
159
158
|
templates_dir = File.expand_path('../../templates', __FILE__)
|
@@ -189,7 +188,7 @@ describe 'Burp upload plugin' do
|
|
189
188
|
end
|
190
189
|
end
|
191
190
|
|
192
|
-
it
|
191
|
+
it 'creates nodes, issues, and evidence as needed' do
|
193
192
|
|
194
193
|
# Host node
|
195
194
|
#
|
@@ -202,14 +201,16 @@ describe 'Burp upload plugin' do
|
|
202
201
|
# # create_issue should be called once for each issue in the xml
|
203
202
|
expect(@content_service).to receive(:create_issue) do |args|
|
204
203
|
expect(args[:text]).to include("#[Title]#\nStrict transport security not enforced")
|
204
|
+
expect(args[:text]).to include('*application*', '@Wi-Fi@')
|
205
205
|
expect(args[:id]).to eq(16777984)
|
206
206
|
OpenStruct.new(args)
|
207
207
|
end.once
|
208
208
|
expect(@content_service).to receive(:create_evidence) do |args|
|
209
|
-
expect(args[:content]).to include(
|
209
|
+
expect(args[:content]).to include('Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8')
|
210
210
|
expect(args[:content]).to include("#[Location]#\nhttp://1.1.1.1/dradis/sessions")
|
211
211
|
expect(args[:issue].text).to include("#[Title]#\nStrict transport security not enforced")
|
212
|
-
expect(args[:
|
212
|
+
expect(args[:issue].text).to include('*application*', '@Wi-Fi@')
|
213
|
+
expect(args[:node].label).to eq('github.com/dradis/dradis-burp')
|
213
214
|
end.once
|
214
215
|
|
215
216
|
# Run the import
|
@@ -208,9 +208,9 @@ div.scan_issue_medium_tentative_rpt{width: 32px; height: 32px; background-image:
|
|
208
208
|
</tr>
|
209
209
|
</table>
|
210
210
|
<h2>Issue description</h2>
|
211
|
-
<span class="TEXT"><p> The application fails to prevent users from connecting to it over unencrypted connections. An attacker able to modify a legitimate user's network traffic could bypass the application's use of SSL/TLS encryption, and use the application as a platform for attacks against its users. This attack is performed by rewriting HTTPS links as HTTP, so that if a targeted user follows a link to the site from an HTTP page, their browser never attempts to use an encrypted connection. The sslstrip tool automates this process. </p>
|
211
|
+
<span class="TEXT"><p> The <strong>application</strong> fails to prevent users from connecting to it over unencrypted connections. An attacker able to modify a legitimate user's network traffic could bypass the application's use of SSL/TLS encryption, and use the application as a platform for attacks against its users. This attack is performed by rewriting HTTPS links as HTTP, so that if a targeted user follows a link to the site from an HTTP page, their browser never attempts to use an encrypted connection. The sslstrip tool automates this process. </p>
|
212
212
|
<p>
|
213
|
-
To exploit this vulnerability, an attacker must be suitably positioned to intercept and modify the victim's network traffic.This scenario typically occurs when a client communicates with the server over an insecure connection such as public Wi-Fi
|
213
|
+
To exploit this vulnerability, an attacker must be suitably positioned to intercept and modify the victim's network traffic.This scenario typically occurs when a client communicates with the server over an insecure connection such as public <code>Wi-Fi</code>, or a corporate or home network that is shared with a compromised computer. Common defenses such as switched networks are not sufficient to prevent this. An attacker situated in the user's ISP or the application's hosting infrastructure could also perform this attack. Note that an advanced adversary could potentially target any connection made over the Internet's core infrastructure. </p></span>
|
214
214
|
<h2>Issue remediation</h2>
|
215
215
|
<span class="TEXT"><p>The application should instruct web browsers to only access the application using HTTPS. To do this, enable HTTP Strict Transport Security (HSTS) by adding a response header with the name 'Strict-Transport-Security' and the value 'max-age=expireTime', where expireTime is the time in seconds that browsers should remember that the site should only be accessed using HTTPS. Consider adding the 'includeSubDomains' flag if appropriate.</p>
|
216
216
|
<p>Note that because HSTS is a "trust on first use" (TOFU) protocol, a user who has never accessed the application will never have seen the HSTS header, and will therefore still be vulnerable to SSL stripping attacks. To mitigate this risk, you can optionally add the 'preload' flag to the HSTS header, and submit the domain for review by browser vendors.</p></span>
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dradis-burp
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.
|
4
|
+
version: 4.9.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: 2023-
|
11
|
+
date: 2023-05-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: dradis-plugins
|
@@ -56,16 +56,16 @@ dependencies:
|
|
56
56
|
name: rake
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- - "
|
59
|
+
- - ">="
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
61
|
+
version: 12.3.3
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- - "
|
66
|
+
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version:
|
68
|
+
version: 12.3.3
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: rspec-rails
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|