CVE-2025-63689 Environment Tech Spec
대상 소프트웨어(Target Application Specification)
- 제품명/버전
- money-pos system (ycf1998/money-pos)
- 취약 버전 - 2025-09-14 이전 커밋 전체
- 배포 방식
- Source install
- GitHub Repository 기반 설치
- Backend(Spring Boot) + Frontend(Vue 3) 분리 배포 구조
- https://github.com/ycf1998/money-pos
시스템 환경(System Environment)
- OS 종류 및 버전
- os 제한 없음(JVM 기반) 대신 권장 사항으론 Linux를 추천함
- Web Server
- Spring Boot Embedded Tomcat
- Database 종류 및 버전
- MySQL 5.x / 8.x`
- 프로젝트 제공 SQL 스키마 money_pos.sql
의존하는 구성요소(Dependencies)
- Frontend
- npm dependencies
- Vue 3
- Vue Router
- Pinia
- Element Plus
- TailwindCSS
- Axios
- Vite (빌드/번들러)
- npm dependencies
- Backend
- Framework
- Spring Boot 2.7.x
- Spring Security
- MyBatis-Plus (취약점 발생 핵심 ORM 계층)
- Framework
- ORM 및 DB 연결 방식
- MyBatis-Plus -> Mapper XML 기반 SQL 구성
- 동적 SQL(orderBy) 파라미터가 직접 쿼리에 삽입되는 구조
네트워크 환경(Network Topology)
- 로컬 단일 서버 구성 가능
- 포트 구조
- Backend API: 8080 (Spring Boot 기본)
- Frontend Dev Server(Vite) 5173 (개발 시)
- DB 3306 (MySQL)
- Nginx 80/443
- Reverse Proxy 여부
- 선택적 (일반적 운영 환경에서 Nginx Reverse Proxy 사용)
- VM/테스트 네트워크
- NAT 혹은 Bridge 모드에서 모두 문제 없이 재현 가능
PoC 실행 환경(PoC Execution Environment)
(피해자/공격자 가능할 시 둘 다 작성)
- 공격자 클라이언트
- Kali Linux 2024.x / Windows 11
- Burp Suite Pro 2024.x
- Curl 7.x
- 네트워크 도구
- curl 8.5.0+
- wget 1.21.4+
- nmap 7.94+
- 웹 취약점 스캐너
- Burp Suite Pro 2024.9.5+
- OWASP ZAP 2.14.0+
- SQL Injection
- sqlmap 1.8+
- noSQLMap 0.7+
- Fuzzing 도구
- ffuf 2.1.0+
- wfuzz 3.1.0+
- 자동화 스캐너
- nuclei 3.2.0+
- nikto 2.5.0+
- 브라우저 버전
- Chrome 120+
- Firefox 121+
이 외 필요한 조건
- API 요청 시 orderBy 파라미터가 직접 SQL에 삽입되는 구조 유지 필요
- 입력 검증/화이트리스트 미구현 상태일 것
- MyBatis-Plus의 wrapper.orderBy 또는 동적 문자열 정렬 기능 활성화
- DB 계정에 SELECT 권한 정상 부여
- 애플리케이션 로그 레벨 INFO 또는 DEBUG 유지 시 확인 용이