
Contact List Plugin의 인증된 저장형 크로스 사이트 스크립팅(XSS)
고지 사항: 이 저장소는 교육 목적 및 윤리적 공개 전용으로 작성되었습니다. 이 취약점은 공급업체에 책임 있게 보고되었으며 패치되었습니다. 적절한 권한 없이 시스템을 악용하기 위해 이 정보를 사용하지 마십시오.
저장형 교차 사이트 스크립팅 (XSS) 취약점이 WordPress용 Contact List - Online Staff Directory & Address Book 플러그인(버전 <= 3.0.17)에서 발견되었습니다. 이 취약점은 Author 이상의 권한을 가진 인증된 사용자가 숨겨진 사용자 정의 필드를 통해 연락처 카드에 악성 JavaScript를 주입할 수 있도록 합니다.
연락처 카드가 공개 디렉터리에 렌더링되면 주입된 페이로드가 방문자 브라우저에서 실행됩니다. 관리자가 페이지를 볼 경우 이 결함은 완전한 계정 탈취(ATO) 및 사이트 장악으로 확대될 수 있습니다.
<= 3.0.17이 취약점은 지도 iframe을 삽입하기 위한 _cl_map_iframe 사용자 정의 필드의 부적절한 무해화 및 안전하지 않은 출력 처리에서 비롯됩니다.
1. 안전하지 않은 데이터 저장:
includes/class-contact-list-custom-fields.php( saveCustomFields() 내부)에서 플러그인은 정규 표현식을 사용하여 ``
6. 요청을 전달합니다. 서버는 악성 iframe을 저장합니다.
7. 트리거: [contact_list]가 포함된 공개 디렉터리 페이지를 방문합니다. 경고 상자가 즉시 실행되어 코드 실행을 확인합니다.
POST /wp-admin/post.php HTTP/1.1
Host: TARGET
Content-Type: application/x-www-form-urlencoded
Cookie: [Author_Session_Cookies]
post_title=Hacked+Contact&post_type=contact&action=editpost&_cl_map_iframe=
이 취약점을 패치하려면 플러그인 개발자는 다음을 수행해야 합니다:
_cl_map_iframe을 저장할 때 허용된 HTML 태그와 속성의 엄격한 배열로 wp_kses()를 사용합니다. onload, onerror 또는 javascript: URI와 같은 속성을 허용하지 마십시오.