module
H2 Web Interface Create Alias RCE
| Disclosed | Created |
|---|---|
| Apr 9, 2018 | Aug 16, 2023 |
Disclosed
Apr 9, 2018
Created
Aug 16, 2023
Description
The H2 database contains an alias function which allows for arbitrary Java code to be used.
This functionality can be abused to create an exec functionality to pull our payload down
and execute it. H2's web interface contains restricts MANY characters, so injecting a payload
directly is not favorable. A valid database connection is required. If the database engine
was configured to allow creation of databases, the module default can be used which
utilizes an in memory database. Some Docker instances of H2 don't allow writing to
folders such as /tmp, so we default to writing to the working directory of the software.
This module was tested against H2 version 2.1.214, 2.0.204, 1.4.199 (version detection fails)
This functionality can be abused to create an exec functionality to pull our payload down
and execute it. H2's web interface contains restricts MANY characters, so injecting a payload
directly is not favorable. A valid database connection is required. If the database engine
was configured to allow creation of databases, the module default can be used which
utilizes an in memory database. Some Docker instances of H2 don't allow writing to
folders such as /tmp, so we default to writing to the working directory of the software.
This module was tested against H2 version 2.1.214, 2.0.204, 1.4.199 (version detection fails)
Authors
h00die
gambler
h4ckNinja
Nairuz Abulhul
gambler
h4ckNinja
Nairuz Abulhul
Platform
Unix
Architectures
cmd
References
Module Options
To display the available options, load the module within the Metasploit console and run the commands 'show options' or 'show advanced':
Rapid7 Labs
2026 Global Threat Landscape Report
The predictive window has collapsed. Exploitation follows disclosure in days. See how attackers are accelerating and how to stay ahead.