From fa3fb1affc5cc2b429968fc366404d67799c3137 Mon Sep 17 00:00:00 2001 From: Christian Mehlmauer Date: Wed, 16 Dec 2015 14:18:44 +0100 Subject: [PATCH] better ubuntu version check --- .../multi/http/joomla_http_header_rce.rb | 20 ++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/modules/exploits/multi/http/joomla_http_header_rce.rb b/modules/exploits/multi/http/joomla_http_header_rce.rb index 2bec5eb781..e0523a87bc 100644 --- a/modules/exploits/multi/http/joomla_http_header_rce.rb +++ b/modules/exploits/multi/http/joomla_http_header_rce.rb @@ -69,11 +69,7 @@ class Metasploit3 < Msf::Exploit::Remote vprint_status("Found PHP version: #{php_version}") version = Gem::Version.new(php_version) - vulnerable = false - vulnerable = true if version <= Gem::Version.new('5.4.44') - vulnerable = true if version.between?(Gem::Version.new('5.5.0'), Gem::Version.new('5.5.28')) - vulnerable = true if version.between?(Gem::Version.new('5.6.0'), Gem::Version.new('5.6.12')) # check for ubuntu specific versions. Was fixed in # * 5.5.9+dfsg-1ubuntu4.13 @@ -85,13 +81,19 @@ class Metasploit3 < Msf::Exploit::Remote sub_version = rest.scan(/^\dubuntu([\d\.]+)/i).flatten.first || '' vprint_status("Found Ubuntu PHP version: #{php_version}-#{sub_version}") - if version == Gem::Version.new('5.5.9') && Gem::Version.new(sub_version) < Gem::Version.new(4.13) - vulnerable = true - elsif version == Gem::Version.new('5.3.10') && Gem::Version.new(sub_version) < Gem::Version.new(3.20) - vulnerable = true - else + if version > Gem::Version.new('5.5.9') vulnerable = false + elsif version == Gem::Version.new('5.5.9') && Gem::Version.new(sub_version) >= Gem::Version.new('4.13') + vulnerable = false + elsif version == Gem::Version.new('5.3.10') && Gem::Version.new(sub_version) >= Gem::Version.new('3.20') + vulnerable = false + else + vulnerable = true end + else + vulnerable = true if version <= Gem::Version.new('5.4.44') + vulnerable = true if version.between?(Gem::Version.new('5.5.0'), Gem::Version.new('5.5.28')) + vulnerable = true if version.between?(Gem::Version.new('5.6.0'), Gem::Version.new('5.6.12')) end unless vulnerable