
# Docker 랩: CVE-2026-17532 데모 Seraphinite Accelerator의 인증되지 않은 반사형 XSS(Reflected XSS) 취약점을 시연하는 Docker 랩으로, 관리자 세션을 통해 RCE(원격 코드 실행)로 연쇄 공격이 가능하며, 익스플로잇 스크립트와 웹 셸을 포함합니다.
CVE-2026-17532을 위한 Docker 랩입니다. WordPress 플러그인 Seraphinite Accelerator의 인증되지 않은 반사형 XSS로, 로그인한 관리자가 조작된 링크 하나를 여는 순간 원격 코드 실행으로 이어집니다.
전체 분석 글: BLOG
python3 또는 php (익스플로잇 URL 생성에만 필요 - exploit.sh는 둘 중 존재하는 것을 사용)docker compose down -v # 이전 데이터 정리
docker compose up -d
docker compose logs -f wpcli
LAB READY가 표시될 때까지 기다린 후 Ctrl-C를 누릅니다. 이제 WordPress가 http://127.0.0.1:8080에서 실행되며, 취약한 플러그인이 활성화되고 페이지 캐싱이 활성화되어 있습니다.
wpcli 컨테이너는 일회성 설치 프로그램으로, 설정 완료 후 종료됩니다. 이는 정상적인 동작입니다.
http://127.0.0.1:8080/wp-admin에서 관리자로 로그인
adminadmin-lab-pw조작된 URL을 생성하고 동일한 브라우저에서 엽니다:
./exploit.sh # 또는: ./exploit.sh http://127.0.0.1:8080
페이지가 약 5초간 멈춥니다 - 이는 플러그인의 selfTest 분기에서 실행되는 실제 sleep( 5 )이며, 랩이 고장난 것이 아닙니다. 그 후 XSS가 실행되어 관리자 세션을 사용해 웹 셸을 작성하고 셸 URL을 브라우저 콘솔에 기록합니다.
http://127.0.0.1:8080/wp-content/plugins/hello.php?c=id
또는 ?c= 없이 열면 대화형 입력 상자가 표시됩니다.
xss.js는 관리자 세션과 동일한 출처에서 실행되므로 다음을 수행할 수 있습니다:
wp-admin/plugin-editor.php를 GET하여 HTML에서 일회용 에디터 nonce를 추출합니다.action=edit-theme-plugin-file과 함께 admin-ajax.php에 POST하여 PHP 웹 셸을 hello.php에 작성합니다.왜 hello.php인가? 비활성 상태이기 때문입니다. 활성 플러그인을 편집하고 변경 사항이 사이트를 치명적 오류로 만들면 WordPress가 오류를 감지하고 파일을 되돌립니다. 비활성 플러그인은 이 검사를 건너뛰므로 셸이 작성된 상태로 유지됩니다. 쓰기 가능한 비활성 플러그인 파일이라면 무엇이든 작동하며, hello.php는 WordPress에 기본 포함되어 있습니다.
전체 스크립트는 조작된 URL에 인라인되므로 공격자 서버가 필요 없습니다.
docker compose down -v