Skip to content

Commit b80519d

Browse files
author
Cucumber
committed
Lands rapid7#3779, specs
MSP-11343 Merge specs that I missed during last merge.
2 parents 373861a + 0ab3645 commit b80519d

File tree

2 files changed

+33
-5
lines changed

2 files changed

+33
-5
lines changed

lib/metasploit/framework/login_scanner/glassfish.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -194,8 +194,8 @@ def attempt_login(credential)
194194
# @return [nil] If the banner did not match any of the expected values
195195
def extract_version(banner)
196196
# Set version. Some GlassFish servers return banner "GlassFish v3".
197-
if banner =~ /(GlassFish Server|Open Source Edition)[[:blank:]]*(\d\.\d)/
198-
@version = $2
197+
if banner =~ /GlassFish Server(?: Open Source Edition)?[[:blank:]]*(\d\.\d)/
198+
@version = $1
199199
elsif banner =~ /GlassFish v(\d)/
200200
@version = $1
201201
elsif banner =~ /Sun GlassFish Enterprise Server v2/

spec/lib/metasploit/framework/login_scanner/glassfish_spec.rb

Lines changed: 31 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -297,12 +297,40 @@
297297
end
298298

299299
context '#extract_version' do
300-
let(:server_header) { "GlassFish Server Open Source Edition 4.0" }
300+
# Thanks to shodan for Server headers
301+
subject(:extracted_version) { http_scanner.extract_version(server_header) }
301302

302-
specify do
303-
expect(http_scanner.extract_version(server_header)).to eq("4.0")
303+
context 'with 9.1 header' do
304+
let(:server_header) { "Sun Java System Application Server 9.1_02" }
305+
it { is_expected.to start_with("9") }
304306
end
305307

308+
context 'with 4.0 header' do
309+
let(:server_header) { "GlassFish Server Open Source Edition 4.0" }
310+
it { is_expected.to start_with("4") }
311+
end
312+
313+
context 'with 3.0 header' do
314+
let(:server_header) { "GlassFish Server Open Source Edition 3.0.1" }
315+
it { is_expected.to start_with("3") }
316+
end
317+
318+
context 'with non-open-source header' do
319+
let(:server_header) { "Oracle GlassFish Server 3.1.2.3" }
320+
it { is_expected.to start_with("3") }
321+
end
322+
323+
context 'with 2.1 header' do
324+
let(:server_header) { "Sun GlassFish Enterprise Server v2.1" }
325+
it { is_expected.to start_with("2") }
326+
end
327+
328+
context 'with bogus header' do
329+
let(:server_header) { "Apache-Coyote/1.1" }
330+
it { is_expected.to be_nil }
331+
end
332+
333+
306334
end
307335

308336
end

0 commit comments

Comments
 (0)