
Java 애플리케이션이 CVE-2021-44228(일명 log4shell) 취약점에 노출됨
이 데모 애플리케이션은 CVE-2021-44228(일명 Log4Shell)에 취약합니다. 예를 들어, 탐지 또는 수정 스크립트를 검증하는 데 사용할 수 있습니다.
애플리케이션 빌드:
mvn clean package
또는 사전 빌드된 JAR을 다운로드합니다.
애플리케이션 실행(로컬에서 빌드한 경우 target 하위 디렉터리에서):
java -Dlog4shell.all -jar log4shell-honeypot-capsule.jar
이 애플리케이션은 기본적으로 취약하지 않습니다. 취약점을 활성화하려면
log4shell.all시스템 속성을 설정해야 합니다 (또는 아래의 취약점별 옵션을 사용할 수 있습니다).
log4shell.userAgent 시스템 속성을 설정하여 User-Agent HTTP 헤더를 기록합니다.log4shell.authorization 시스템 속성을 설정하여 Authorization HTTP 헤더를 기록합니다.log4shell.basicAuth 시스템 속성을 설정하여 기본 인증에서 디코딩된 사용자/비밀번호 쌍을 기록합니다.log4shell.urlPath 시스템 속성을 설정하여 URL 경로를 기록합니다.log4shell.urlQuery 시스템 속성을 설정하여 URL 쿼리 문자열을 기록합니다.log4shell.all 시스템 속성을 설정하여 위의 모든 항목을 기록합니다.빈 속성 값만으로도 충분합니다.
애플리케이션에서 기본 인증을 활성화하려면 basicAuth 구성 프로필을 활성화합니다:
java -Dseedstack.profiles=basicAuth -Dlog4shell.all -jar target/log4shell-honeypot-capsule.jar
demo입니다.demo입니다.기본 인증이 활성화되면 애플리케이션은 사용자/비밀번호 주입에 취약할 수 없습니다.
위의 옵션에 따라 악성 페이로드가 포함된 GET 또는 POST 요청을 임의의 경로에 보냅니다:
User-agent 헤더 예시:
curl http://localhost:8080 -A "<malicious-user-agent>"
앱은 취약점이 포함된 /test로 302 응답을 발행합니다.