
# XenForo unfurl 엔드포인트의 인증되지 않은 정보 노출 취약점에 대한 개념 증명 및 기술 문서로, 문제를 확인하기 위한 Python 스크립트를 포함합니다.
XenForo 2.3.13 이전 버전은 예측 가능한 정수 ID로 키가 지정된 인증되지 않은 엔드포인트를 통해 보류 중인 리치 링크 미리보기를 노출합니다.
unfurl.php는 전역 UnfurlResult ID를 포함하는 POST를 수락하고 해당 행을 로드한 후 렌더링된 미리보기 HTML을 반환합니다. 세션, 콘텐츠 가시성, 상위 객체 또는 서명된 권한을 확인하지 않습니다. 반환된 조각에는 쿼리 문자열을 포함한 원본 URL이 포함됩니다.
악용은 타이밍에 민감합니다. 피해자는 제한된 콘텐츠에서 이전에 본 적 없는 독립형 URL을 제출해야 하며, 대상 사이트는 사용 가능한 메타데이터를 반환해야 하고, 공격자는 행이 보류 중인 동안 새로 할당된 ID를 예측해야 합니다. 최근 공격자가 소유한 미리보기는 높은 수위 표시(high-water mark) 역할을 할 수 있습니다. 이 문제는 SSRF나 코드 실행이 아닌 권한 부여 우회 및 정보 공개입니다.
저는 XenForo 2.3.12(빌드 2031270)에서 합성 마커를 사용하여 인접 ID 공개 하나를 재현했습니다. XenForo 2.3.13에 수정 사항이 포함되어 있습니다.
python poc.py --base-url https://xenforo.example --result-id 123 --expect-marker SYNTHETIC_TEST_MARKER
이 스크립트는 쿠키 없이 정확히 하나의 알려진 테스트 ID를 요청합니다. ID를 열거하거나 반환된 HTML을 출력하지 않습니다. 예상 합성 마커가 존재했는지 여부만 보고합니다.
발견자: Marco Paciaroni (BomboBombone).