| 제목 | SourceCodester Human Resource Management System 10 No Auth Check on the Employee Endpoint: Anyone Creates an Admin, |
|---|
| 설명 | controller/employee.php calls session_start() and nothing else — there is no isset($_SESSION['User']) check anywhere in the file (contrast header.php, which enforces it for page views). The endpoint works with zero cookies.
role and password come straight from $_POST (lines 29, 32); the INSERT persists RoleId='$role', so role=1 creates a real administrator row. PoC A: pre-auth admin creation, then normal login to the admin dashboard.
The UPDATE branch (?empedit=1, EmpId from $_GET) sets Password/RoleId WHERE EmpId='1' — direct takeover of the seed admin ([email protected] / admin#123). PoC B succeeded.
The same unguarded endpoint handles pfimg uploads; the only type check is the client-supplied $_FILES['pfimg']['type'] (spoofed via multipart Content-Type). The extension is preserved, so a .php shell lands web-accessible in hrm/image/. PoC C: GET returned HTTP 200 with the PHP output — RCE primitive. |
|---|
| 원천 | ⚠️ https://tracexlabs.com/releases/hrm-10-preauth-admin-takeover.html |
|---|
| 사용자 | SanthoshKumar (UID 101638) |
|---|
| 제출 | 2026. 09. 25. PM 03:34 (17 날 ago) |
|---|
| 모더레이션 | 2026. 10. 11. PM 09:57 (16 days later) |
|---|
| 상태 | 수락 |
|---|
| VulDB 항목 | 416791 [SourceCodester Human Resource Management System 1.0 Employee Endpoint controller/employee.php session_start role/pfimg/EmpId 약한 인증] |
|---|
| 포인트들 | 20 |
|---|