Skip to content

Commit e4547eb

Browse files
committed
2 parents e4cdac1 + f13e56a commit e4547eb

File tree

1 file changed

+14
-8
lines changed

1 file changed

+14
-8
lines changed

modules/exploits/multi/elasticsearch/script_mvel_rce.rb

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -105,18 +105,28 @@ def vulnerable?
105105
sum = addend_one + addend_two
106106

107107
java = java_sum([addend_one, addend_two])
108+
109+
vprint_status("#{peer} attempting to execute '#{java}' in Java")
108110
res = execute(java)
109111
result = parse_result(res)
110112

111113
if result.nil?
114+
vprint_status("#{peer} no response to executed Java")
112115
return false
113116
else
117+
vprint_status("#{peer} response to executed Java: #{result}")
114118
result.to_i == sum
115119
end
116120
end
117121

118122
def parse_result(res)
119-
unless res && res.code == 200 && res.body
123+
unless res
124+
vprint_error("#{peer} no response")
125+
return nil
126+
end
127+
128+
unless res.code == 200 && res.body
129+
vprint_error("#{peer} responded with HTTP code #{res.code} (with#{res.body ? '' : 'out'} a body)")
120130
return nil
121131
end
122132

@@ -127,20 +137,16 @@ def parse_result(res)
127137
end
128138

129139
begin
130-
result = json['hits']['hits'][0]['fields']['msf_result'][0]
140+
result = json['hits']['hits'][0]['fields']['msf_result']
131141
rescue
132142
return nil
133143
end
134144

135-
result
145+
result.is_a?(::Array) ? result.first : result
136146
end
137147

138148
def java_sum(summands)
139-
source = <<-EOF
140-
#{summands.join(" + ")}
141-
EOF
142-
143-
source
149+
summands.join(' + ')
144150
end
145151

146152
def to_java_byte_array(str)

0 commit comments

Comments
 (0)