콘텐츠와 동일하게, 게시판(bo_include)·1:1문의(qa_include)·쇼핑몰 분류
(ca_include)의 상단/하단 파일 경로도 저장 전에 먼저 정규화한 뒤 확장자와
위치를 검증하도록 순서를 조정한다. 정규화 과정에서 확장자가 사라져 검증을
우회하던 경로를 차단하고, data 디렉터리로 귀결되는 경로를 거부한다.
실행 직전 board_head/board_tail, qahead/qatail, shop 목록·상품 페이지에서도
승인 확장자와 data 디렉터리 여부를 다시 확인하는 is_content_include_allowed()
를 적용한다. 이미 저장된 경로도 실행 시 재확인된다.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
(cherry picked from commit 0c6bca704725ebea2a584d4c06366282e9bc36d6)
- 쿠폰/희망배송일/검색어/계정/결제 콜백 등 입력값을 SQL 컨텍스트에 맞게 재처리
- dt_data·PG 응답 등 비-GPC 값과 소셜 provider 입력 정제 보완
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- adm/qa_config_update.php / adm/contentformupdate.php :
qa_include_head/tail, co_include_head/tail 가 super 가드 없이 변경 가능해
하위 관리자가 임의 PHP 경로를 include 시킬 수 있던 LFI 위험을
board_form_update.php 와 동일한 패턴(super 외에는 기존 값 유지)으로 차단.
- adm/member_form_update.php / adm/member_list_update.php :
신규 회원 생성·일괄 수정 시 부여하려는 mb_level 상한 검증이 없어
하위 관리자가 자기보다 높은 등급을 부여할 수 있던 권한 상승을 차단.
- adm/shop_admin/categorylistupdate.php /
adm/shop_admin/itemformupdate.php :
is_include_path_check 호출에서 두 번째 인자(is_input=1) 누락으로
rar/php/zip wrapper 등 경로 wrapper 차단이 동작하지 않던 부분을
is_include_path_check($file, 1) 로 강화.
- adm/shop_admin/orderdeliveryupdate.php /
adm/shop_admin/orderpartcancelupdate.php /
adm/sendmail_test.php :
상태 변경 동작에 check_admin_token() 누락으로 발생하던 CSRF 위험을
토큰 검증 추가로 차단. sendmail_test 폼에는 hidden token 필드 추가.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>