{"id":"01M5BWCSGTX0T32R75C36JYD0R","target_url":"http://scandia.aidia.co.kr/demo-target/vuln","status":"done","consent_at":"2026-10-20 14:26:22","created_at":"2026-10-20 14:26:22","started_at":"2026-10-20 14:26:23","finished_at":"2026-10-20 14:26:37","cms":"youngcart5","cms_version":"5.5.8.2.3 ~ 5.5.8.2.7","cms_version_confidence":1,"cms_evidence":{"cms":"youngcart5","signals":[{"tag":"core","url":"http://scandia.aidia.co.kr/demo-target/vuln/","error":null,"label":"HTML에 g5_url / g5_bbs_url JS 변수","status":200,"matched":true},{"tag":"shop","url":"http://scandia.aidia.co.kr/demo-target/vuln/","error":null,"label":"HTML에 g5_shop 변수 또는 /shop/ 링크","status":200,"matched":true},{"tag":"core","url":"http://scandia.aidia.co.kr/demo-target/vuln/","error":null,"label":"HTML에 그누보드 공통 스크립트(/js/common.js, jquery.menu.js) 참조","status":200,"matched":true},{"tag":"core","url":"http://scandia.aidia.co.kr/demo-target/vuln/bbs/login.php","error":null,"label":"/bbs/login.php 에 mb_id·mb_password 폼 필드","status":200,"matched":true},{"tag":"core","url":"http://scandia.aidia.co.kr/demo-target/vuln/js/common.js","error":null,"label":"/js/common.js 존재(그누보드 전용 함수 포함)","status":200,"matched":true},{"tag":"core","url":"http://scandia.aidia.co.kr/demo-target/vuln/adm/","error":null,"label":"/adm/ 요청 시 로그인 페이지(bbs/login.php)로 리다이렉트","status":301,"matched":false},{"tag":"shop","url":"http://scandia.aidia.co.kr/demo-target/vuln/shop/","error":null,"label":"/shop/ 경로 응답(영카트)","status":301,"matched":false}],"version":"5.5.8.2.3","confidence":1,"hash_matches":{"files":["js/common.js","js/jquery.menu.js","js/wrest.js","js/jquery.register_form.js","css/default.css","css/mobile.css","css/default_shop.css"],"total":7,"matched":7,"candidates":["5.5.8.2.3","5.5.8.2.4","5.5.8.2.5","5.5.8.2.6","5.5.8.2.7"]},"files_checked":7,"version_range":"5.5.8.2.3 ~ 5.5.8.2.7"},"score":0,"grade":"F","request_count":45,"progress_done":9,"progress_total":9,"progress_label":"완료","error":null,"is_demo":0,"findings":[{"id":"01M5BWCXFHCZE5EVTVKPGWX369","scan_id":"01M5BWCSGTX0T32R75C36JYD0R","check_id":"gnuboard.version_patch","severity":"critical","title":"추정 버전 5.5.8.2.3 ~ 5.5.8.2.7: 미적용 보안패치 25건 (최신 5.6.43)","description":"정적 파일 해시로 추정한 버전은 5.5.8.2.3 ~ 5.5.8.2.7(신뢰도 100%)이며, 이후 공개된 보안패치 25건이 미적용으로 보입니다. 이 중 4건은 RCE·SQL Injection 등 critical 등급입니다. 각 패치는 공식 릴리스 노트를 근거로 합니다.","evidence":[{"url":"http://scandia.aidia.co.kr/demo-target/vuln/","status":200,"snippet":"정적파일 7/7개 해시 일치 → 버전 5.5.8.2.3 ~ 5.5.8.2.7 (신뢰도 100%). 비교 파일: js/common.js, js/jquery.menu.js, js/wrest.js, js/jquery.register_form.js, css/default.css, css/mobile.css, css/default_shop.css"}],"remediation":"**5.6.43 이상으로 업데이트**하십시오.\n- 업데이트 전 파일 전체와 DB를 반드시 백업합니다.\n- 테마·extend·plugin 수정분은 비교 후 병합합니다.\n- 업데이트 후 최고관리자 → 환경설정 → DB업그레이드를 실행합니다.\n- 미적용 패치 목록:\n- [medium] 5.6.43 보안패치 — KCP 현금영수증 권한 검증 누락 (KVE-2026-2513) — 현금영수증 처리 시 주문 존재·요청자 권한·수납 상태를 서버에서 확인하지 않던 문제.\n- [high] 5.6.41 보안패치 — 이니시스 결제 요청 무결성·첨부파일명 IP 파생값 제거 — KG이니시스 결제 요청 무결성·승인 URL 검증 강화, 첨부파일명에서 IP 파생값(예측 가능) 제거.\n- [high] 5.6.40 보안패치 — LG 가상계좌 입금 통보 위조 (KVE-2026-2424) — 가상계좌 입금 통보를 위조해 미입금 주문을 입금 처리할 수 있던 문제.\n- [high] 5.6.39 보안패치 — 임시 주문 정보 접근·결제 복귀 보호 (KVE-2026-2140) — 임시 주문 복원·승인에 소유자·토큰 검증이 없어 타인 주문에 접근 가능. migrations/ SQL 파일 HTTP 노출 차단도 포함.\n- [high] 5.6.38 보안패치 — 장바구니 옵션 검증·KCP 가상계좌 통보 검증 (KVE-2026-2345/2346) — 상품대금이 주문 합계에서 누락되는 경로, KCP 통보 발신지 미검증.\n- [high] 5.6.37 보안패치 — 실행형 첨부(XHTML) 업로드·비회원 글 수정 인증·XSS (KVE-2026-2329/2330/2344 등) — 실행형 첨부파일 저장 허용, 비회원 게시물 수정 토큰 검증 미흡, 관리자 XSS, 보안 메일 링크 도메인 미고정.\n- [high] 5.6.36 보안패치 — 입력·권한 검증 강화, SVG/SVGZ 업로드 차단 (KVE-2026-1899/1900/1909) — SVG 업로드를 통한 스크립트 실행 가능성, 권한 검증 누락.\n- [high] 5.6.35 보안패치 — 관리자 메뉴 요청값 개입·1:1문의 접근권한 우회 등 (KVE-2026-1640~1927) — 관리자 권한 문맥 오염, 1:1 문의 접근권한 우회, 쿠폰번호 약한 난수, 배송비 구분값 클라이언트 결정 등 8건.\n- [medium] 5.6.32 보안패치 — XSS·관리자 엔드포인트 권한 검증 (KVE-2025-1533, KVE-2026-1233 등) — 미결제 임시주문 출력 이스케이프 누락, 주문 상태변경 관리자 엔드포인트 메뉴 권한 미검증, wr_id 정수 처리.\n- [medium] 5.6.31 보안패치 — XSS·관리자 정렬 파라미터 화이트리스트 (KVE-2026-1122/1176) — 결제 전 임시데이터 저장 요청 출처 미검증, 관리자 목록 정렬 파라미터 검증 누락.\n- [high] 5.6.29 보안패치 — 게시판 정렬 필드 SQL Injection (KVE-2026-1090) — 게시판 정렬 필드 화이트리스트 미검증으로 SQL Injection 가능.\n- [critical] 5.6.27 보안패치 — 인스톨러 PHP 코드 인젝션(RCE)·Blind SQLi·포인트 Double Spend (KVE-2026-0859/0869/0876/0882) — 인스톨러 g5_shop_prefix PHP 코드 인젝션, KCP CLI 명령 인젝션, ORDER BY Blind SQL Injection, 주문 포인트 Race Condition, 관리자 CSRF 토큰 누락.\n- [critical] 5.6.26 보안패치 — .shtml 업로드 RCE·비밀번호 재설정 토큰 예측·LFI·SQLi (KVE-2026-0685~0710) — .shtml 확장자 필터 누락 RCE, 비밀번호 재설정 토큰 예측 가능, 설문조사 LFI, SNS 공유 스킨 XSS, SQL Injection 2건, 소셜 로그인 CSRF.\n- [critical] 5.6.25 보안패치 — 그누보드·영카트 SQL Injection 다수 (KVE-2026-0340, 0553~0570) — 그누보드·영카트에서 SQL Injection 취약점 8건 수정.\n- [high] 5.6.16 보안패치 — Stored XSS → RCE (html_purify 우회) (KVE-2025-0464/0510) — html_purify 패치를 우회하는 Stored XSS로 관리자 권한 탈취 후 RCE 가능.\n- [low] 5.6.15 보안패치 — Open Redirect — Open redirect 취약점 수정.\n- [high] 5.6.14 보안패치 — XSS lead to RCE, IP 검증 우회 (KVE-2025-0351/0384) — XSS를 통한 RCE, IP 검증 취약점.\n- [medium] 5.6.13 보안패치 — Stored XSS 3건 (KVE-2025-0191/0259/0286) — Open Redirect 경유 html_purify 우회 Stored XSS 등.\n- [medium] 5.6.11 보안패치 — 관리자 XSS (KVE-2025-0234) — 관리자 화면 XSS.\n- [low] 5.6.4 보안패치 — Open Redirect — Open redirect 취약점 수정.\n- [medium] 5.5.14 보안패치 — Stored XSS·별점 조작·상품문의 수정 (KVE-2024-0021/0022/0023) — Stored XSS, 쇼핑몰 사용후기 별점 조작, 답변 달린 상품문의 수정 가능.\n- [critical] 5.5.13 보안패치 — Union based SQL Injection·관리자 페이지 원격 명령 실행 — Union based SQL Injection, 관리자 페이지 RCE, Open Redirect 재수정.\n- [medium] 5.5.11 보안패치 — lgxpay 플러그인 XSS (KVE-2023-5525) — lgxpay 플러그인 XSS 외 보안취약점 보완.\n- [high] 5.5.8.3.3 보안패치 — 세션 고정·영카트 모바일 주문 SQL Injection·관리페이지 정보 노출 — 세션 고정 취약점, 영카트 모바일 주문 SQL Injection, 관리 메뉴 권한자에게 관리 index 정보 노출.\n- [medium] 5.5.8.3.2 보안패치 — XSS·CHEditor 서버 경로 노출 (KVE-2023-5153) — XSS, CHEditor 이미지 업로드 시 서버 내 경로 노출, 영카트 보안취약점.","reference":["https://github.com/gnuboard/gnuboard5/releases/tag/v5.6.43","https://github.com/gnuboard/gnuboard5/releases/tag/v5.6.41","https://github.com/gnuboard/gnuboard5/releases/tag/v5.6.40","https://github.com/gnuboard/gnuboard5/releases/tag/v5.6.39","https://github.com/gnuboard/gnuboard5/releases/tag/v5.6.38","https://github.com/gnuboard/gnuboard5/releases/tag/v5.6.37","https://github.com/gnuboard/gnuboard5/releases/tag/v5.6.36","https://github.com/gnuboard/gnuboard5/releases/tag/v5.6.35","https://github.com/gnuboard/gnuboard5/releases/tag/v5.6.32","https://github.com/gnuboard/gnuboard5/releases/tag/v5.6.31","https://github.com/gnuboard/gnuboard5/releases/tag/v5.6.29","https://github.com/gnuboard/gnuboard5/releases/tag/v5.6.27","https://github.com/gnuboard/gnuboard5/releases/tag/v5.6.26","https://github.com/gnuboard/gnuboard5/releases/tag/v5.6.25","https://github.com/gnuboard/gnuboard5/releases/tag/v5.6.16","https://github.com/gnuboard/gnuboard5/releases/tag/v5.6.15","https://github.com/gnuboard/gnuboard5/releases/tag/v5.6.14","https://github.com/gnuboard/gnuboard5/releases/tag/v5.6.13","https://github.com/gnuboard/gnuboard5/releases/tag/v5.6.11","https://github.com/gnuboard/gnuboard5/releases/tag/v5.6.4","https://github.com/gnuboard/gnuboard5/releases/tag/v5.5.14","https://github.com/gnuboard/gnuboard5/releases/tag/v5.5.13","https://github.com/gnuboard/gnuboard5/releases/tag/v5.5.11","https://github.com/gnuboard/gnuboard5/releases/tag/v5.5.8.3.3","https://github.com/gnuboard/gnuboard5/releases/tag/v5.5.8.3.2"],"seq":0},{"id":"01M5BWCXHS95CGD4GXBPZF87Q0","scan_id":"01M5BWCSGTX0T32R75C36JYD0R","check_id":"gnuboard.version_patch","severity":"unknown","title":"버전 범위(5.5.8.2.3 ~ 5.5.8.2.7) 안의 보안패치 2건은 적용 여부를 구분할 수 없음","description":"이 버전들은 정적 파일(js/css)이 동일해 외부에서 구분되지 않습니다. 관리자 화면(환경설정 → 버전)에서 실제 버전을 확인하십시오. 해당 패치: 5.5.8.2.6 (critical) / 5.5.8.2.5 (medium)","evidence":[{"url":"http://scandia.aidia.co.kr/demo-target/vuln/","status":200,"snippet":"정적파일 7/7개 해시 일치 → 버전 5.5.8.2.3 ~ 5.5.8.2.7 (신뢰도 100%). 비교 파일: js/common.js, js/jquery.menu.js, js/wrest.js, js/jquery.register_form.js, css/default.css, css/mobile.css, css/default_shop.css"}],"remediation":"","reference":[],"seq":1},{"id":"01M5BWCXQT35EKYRX4E5J65R97","scan_id":"01M5BWCSGTX0T32R75C36JYD0R","check_id":"gnuboard.admin_exposure","severity":"unknown","title":"관리자 경로 응답을 해석하지 못함","description":"예상 밖의 응답(301)입니다.","evidence":[{"url":"http://scandia.aidia.co.kr/demo-target/vuln/adm/","error":null,"status":301,"snippet":"301 Moved Permanently Moved Permanently The document has moved here."}],"remediation":"","reference":[],"seq":2},{"id":"01M5BWD0BYF1AEH0VNXXJTWYMT","scan_id":"01M5BWCSGTX0T32R75C36JYD0R","check_id":"common.dir_listing","severity":"high","title":"디렉토리 목록 노출: /data/","description":"/data/ 가 Apache/Nginx 디렉토리 인덱스로 응답합니다. 업로드된 파일·설정·플러그인 파일명이 외부에 그대로 보입니다. 일부 항목: dbconfig.php.bak, editor/, file/","evidence":[{"url":"http://scandia.aidia.co.kr/demo-target/vuln/data/","error":null,"status":200,"snippet":"Index of /demo-target/vuln/data Index of /demo-target/vuln/data NameLast modifiedSizeDescription Parent Directory&nbsp; - &nbsp; dbconfig.php.bak2026-10-20 13:25 171 &nbsp; editor/2026-10-20 13:25 - &…"}],"remediation":"- 웹서버 설정 또는 .htaccess에 `Options -Indexes` 추가\n- 해당 디렉토리에 빈 `index.php` 생성(그누보드 기본 배포본에는 포함되어 있음 → 삭제·변조 여부 확인)","reference":[],"seq":3},{"id":"01M5BWD0EJ7PWXWTF6H7TKZZVG","scan_id":"01M5BWCSGTX0T32R75C36JYD0R","check_id":"common.dir_listing","severity":"high","title":"디렉토리 목록 노출: /data/file/","description":"/data/file/ 가 Apache/Nginx 디렉토리 인덱스로 응답합니다. 업로드된 파일·설정·플러그인 파일명이 외부에 그대로 보입니다. 일부 항목: placeholder.txt","evidence":[{"url":"http://scandia.aidia.co.kr/demo-target/vuln/data/file/","error":null,"status":200,"snippet":"Index of /demo-target/vuln/data/file Index of /demo-target/vuln/data/file NameLast modifiedSizeDescription Parent Directory&nbsp; - &nbsp; placeholder.txt2026-10-20 13:25 18 &nbsp;"}],"remediation":"- 웹서버 설정 또는 .htaccess에 `Options -Indexes` 추가\n- 해당 디렉토리에 빈 `index.php` 생성(그누보드 기본 배포본에는 포함되어 있음 → 삭제·변조 여부 확인)","reference":[],"seq":4},{"id":"01M5BWD0HQBP471X9RV06AJD1T","scan_id":"01M5BWCSGTX0T32R75C36JYD0R","check_id":"common.dir_listing","severity":"high","title":"디렉토리 목록 노출: /data/editor/","description":"/data/editor/ 가 Apache/Nginx 디렉토리 인덱스로 응답합니다. 업로드된 파일·설정·플러그인 파일명이 외부에 그대로 보입니다. 일부 항목: README","evidence":[{"url":"http://scandia.aidia.co.kr/demo-target/vuln/data/editor/","error":null,"status":200,"snippet":"Index of /demo-target/vuln/data/editor Index of /demo-target/vuln/data/editor NameLast modifiedSizeDescription Parent Directory&nbsp; - &nbsp; README2026-10-20 13:25 27 &nbsp;"}],"remediation":"- 웹서버 설정 또는 .htaccess에 `Options -Indexes` 추가\n- 해당 디렉토리에 빈 `index.php` 생성(그누보드 기본 배포본에는 포함되어 있음 → 삭제·변조 여부 확인)","reference":[],"seq":5},{"id":"01M5BWD0KSD0BSWZN6NMFGHE5V","scan_id":"01M5BWCSGTX0T32R75C36JYD0R","check_id":"common.dir_listing","severity":"medium","title":"디렉토리 목록 노출: /plugin/","description":"/plugin/ 가 Apache/Nginx 디렉토리 인덱스로 응답합니다. 업로드된 파일·설정·플러그인 파일명이 외부에 그대로 보입니다. 일부 항목: editor/","evidence":[{"url":"http://scandia.aidia.co.kr/demo-target/vuln/plugin/","error":null,"status":200,"snippet":"Index of /demo-target/vuln/plugin Index of /demo-target/vuln/plugin NameLast modifiedSizeDescription Parent Directory&nbsp; - &nbsp; editor/2026-10-20 13:25 - &nbsp;"}],"remediation":"- 웹서버 설정 또는 .htaccess에 `Options -Indexes` 추가\n- 해당 디렉토리에 빈 `index.php` 생성(그누보드 기본 배포본에는 포함되어 있음 → 삭제·변조 여부 확인)","reference":[],"seq":6},{"id":"01M5BWD58WQ73PKC7QVMZMBQW7","scan_id":"01M5BWCSGTX0T32R75C36JYD0R","check_id":"common.sensitive_files","severity":"info","title":"민감 파일 노출 없음 (15개 경로 확인)","description":"확인한 백업·설정·VCS 경로 모두 접근되지 않았습니다.","evidence":[],"remediation":"","reference":[],"seq":7},{"id":"01M5BWD5JYF053P46BVSZ7P7N4","scan_id":"01M5BWCSGTX0T32R75C36JYD0R","check_id":"common.injected_content","severity":"high","title":"허용목록 외 외부 도메인 스크립트/iframe 삽입: stat-track-cdn.xyz","description":"메인·게시판 페이지에 구글·네이버·카카오·주요 CDN 허용목록에 없는 외부 도메인의 <script src> 또는 <iframe>이 있습니다. 운영자가 의도한 스크립트(통계·채팅 등)인지 확인이 필요합니다.","evidence":[{"url":"http://scandia.aidia.co.kr/demo-target/vuln/","status":200,"snippet":"외부 호스트: stat-track-cdn.xyz"}],"remediation":"- 해당 도메인이 본인이 설치한 서비스인지 확인\n- 모르는 도메인이면 테마 `head.php`·`tail.php`, `extend/`, `data/` 하위 삽입 코드 점검\n- 변조 의심 시 코어 파일을 공식 배포본과 비교(Phase 3 에이전트 기능)","reference":[],"seq":8},{"id":"01M5BWD5PDJAP70T86CRZBNGXT","scan_id":"01M5BWCSGTX0T32R75C36JYD0R","check_id":"common.injected_content","severity":"high","title":"숨김 링크 모음 1개 발견(SEO 스팸·해킹 흔적 의심)","description":"display:none 또는 화면 밖 위치의 블록에 링크 3개 이상이 모여 있습니다. 검색엔진 스팸 삽입의 전형적인 패턴입니다.","evidence":[{"url":"http://scandia.aidia.co.kr/demo-target/vuln/","error":null,"status":200,"snippet":"숨김 블록: 온라인카지노 바카라사이트 토토추천 슬롯"}],"remediation":"- 테마 레이아웃 파일(`head.php`, `tail.php`, `index.php`)에서 해당 블록 탐색·제거\n- 삽입 경로(취약 플러그인·업로드)를 찾아 함께 패치","reference":[],"seq":9},{"id":"01M5BWD5RSSBBRQ148763HSME0","scan_id":"01M5BWCSGTX0T32R75C36JYD0R","check_id":"common.injected_content","severity":"medium","title":"도박·불법 키워드 발견(검토 필요): 카지노, 바카라, 토토, 슬롯, 온라인카지노","description":"페이지 본문에 도박·불법 의약품 관련 키워드가 포함되어 있습니다. 게시판 스팸 글이거나 변조일 수 있으므로 검토가 필요합니다.","evidence":[{"url":"http://scandia.aidia.co.kr/demo-target/vuln/","status":200,"snippet":"키워드: 카지노"},{"url":"http://scandia.aidia.co.kr/demo-target/vuln/","status":200,"snippet":"키워드: 바카라"},{"url":"http://scandia.aidia.co.kr/demo-target/vuln/","status":200,"snippet":"키워드: 토토"},{"url":"http://scandia.aidia.co.kr/demo-target/vuln/","status":200,"snippet":"키워드: 슬롯"},{"url":"http://scandia.aidia.co.kr/demo-target/vuln/","status":200,"snippet":"키워드: 온라인카지노"}],"remediation":"- 해당 키워드가 스팸 게시글이면 삭제 후 게시판 쓰기 권한·캡차 설정 강화\n- 본문 소스에 보이지 않는 텍스트라면 변조 가능성","reference":[],"seq":10},{"id":"01M5BWD6VB90RYTE7K0JSX6V8K","scan_id":"01M5BWCSGTX0T32R75C36JYD0R","check_id":"gnuboard.extend_plugins","severity":"info","title":"알려진 취약 플러그인·에디터 미발견","description":"확인한 에디터 경로가 응답하지 않았습니다(정상 접근 차단 또는 미사용).","evidence":[],"remediation":"","reference":[],"seq":11},{"id":"01M5BWD7EHYHDG3KJCXQ4K2W55","scan_id":"01M5BWCSGTX0T32R75C36JYD0R","check_id":"common.tls_headers","severity":"info","title":"HTTP → HTTPS 리다이렉트 적용","description":"http://scandia.aidia.co.kr/ 가 301로 https://scandia.aidia.co.kr/ 에 리다이렉트됩니다.","evidence":[{"url":"http://scandia.aidia.co.kr/","error":null,"status":301,"snippet":"→ https://scandia.aidia.co.kr/"}],"remediation":"","reference":[],"seq":12},{"id":"01M5BWD7GKAF8HMDG3H1GF5W33","scan_id":"01M5BWCSGTX0T32R75C36JYD0R","check_id":"common.tls_headers","severity":"info","title":"인증서 유효 (89일 남음)","description":"만료일: Jan 18 04:09:23 2027 GMT. 발급자: CN=YE1,O=Let's Encrypt,C=US","evidence":[{"url":"https://scandia.aidia.co.kr/","status":200,"snippet":"Subject: CN=scandia.aidia.co.kr"}],"remediation":"","reference":[],"seq":13},{"id":"01M5BWD7JPTBKKD708QR4M4AE7","scan_id":"01M5BWCSGTX0T32R75C36JYD0R","check_id":"common.tls_headers","severity":"low","title":"보안 헤더 미설정: Strict-Transport-Security","description":"응답에 Strict-Transport-Security 헤더가 없습니다. 클릭재킹·MIME 스니핑·다운그레이드 공격 완화 효과를 얻지 못합니다.","evidence":[{"url":"https://scandia.aidia.co.kr/","error":null,"status":200,"snippet":"응답 헤더: date, server, x-frame-options, x-content-type-options, referrer-policy, vary, content-encoding, content-length, keep-alive, connection, content-type"}],"remediation":"Apache .htaccess 예시(mod_headers):\n- `Header always set Strict-Transport-Security \"max-age=31536000\"`\n- `Header always set X-Frame-Options \"SAMEORIGIN\"`\n- `Header always set X-Content-Type-Options \"nosniff\"`","reference":[],"seq":14},{"id":"01M5BWD7S603ZFYSH7E5VNW850","scan_id":"01M5BWCSGTX0T32R75C36JYD0R","check_id":"common.server_info","severity":"info","title":"서버 버전 정보 비노출","description":"Server/X-Powered-By 헤더에 버전 정보가 없습니다.","evidence":[],"remediation":"","reference":[],"seq":15}]}