
CVE-2021-44228에 의도적으로 취약한 Java 애플리케이션
이 저장소는 CVE-2021-44228(일반적으로 log4shell로 알려짐)에 의도적으로 취약한 Java 애플리케이션을 포함합니다.
log4stdin은 말 그대로 stdin 리더에 불과하며, 그 입력이 취약한 log4j 인스턴스에 제공됩니다. 빌드 log4stdin.jar는 Maven 아티팩트 log4j-api 2.14.1 및 log4j-core 2.14.1을 사용하며, 로깅 레벨과 타임스탬프 세부 정보를 생략하는 로깅 패턴을 사용합니다. 이 버전은 Guaranteed Vulnerable™️입니다.
versions/ 폴더에는 기본 로깅 패턴과 log4j 버전 2.0-beta9부터 2.20.0까지를 사용한 빌드가 있습니다.
입력에 Unix 파이프를 사용하세요. 예를 들어 로그 항목을 인젝션 가능성 처리에 적용하려면 다음을 실행하세요.
cat output.log | java -jar log4stdin.jar
또는 실시간 로그 읽기의 경우 다음을 실행하세요.
tail -f output.log | java -jar log4stdin.jar
log4stdin은 stdin으로 전달된 모든 내용을 출력하지만 사용자 입력을 처리하지 않습니다. 따라서 위의 예와 같이 로그 파일을 읽거나 사용자 상호 작용이 필요 없는 소프트웨어에 사용하기에 적합합니다.
이 저장소의 내용은 AV에 의해 감염된 파일 또는 악성 명령 실행 시도로 분류될 가능성이 높습니다. 저장소를 클론하기 전에 대상 폴더를 AV 스캔에서 제외하는 것이 좋습니다. 네트워크 연결이 없는 가상 환경에서 시도해 보는 것이 더 좋을 수도 있습니다.
첫째, 기존 소프트웨어를 포크할 필요 없이 사실상 어디에서나 JNDI 인젝션 포인트를 가질 때의 결과를 탐색하는 데 사용할 수 있습니다. 보호 방법을 연구하거나 테스트하는 데 유용할 수 있습니다.
둘째, 이것은 기본적으로 사이버보안의 "Hello World"로, 취약점의 단순성과 심각성을 모두 강조하기 위해 작성되었습니다.
셋째, AV 솔루션이 CVE-2021-44228을 악용하는 소프트웨어를 탐지할 수 있는지 테스트하는 데 사용할 수 있습니다. 예를 들어 log4stdin.java 또는 log4stdin.jar가 Generic.Zojfor.G로 플래그될 수 있습니다.
어쨌든, 이것을 무엇에 사용하든 그 결과에 대한 책임은 당신에게 있습니다.
MIT 라이선스. 자세한 내용은 LICENSE.md를 참조하세요.
하지만 그렇게 큰 노력이 필요한 것은 아니며, 마음대로 재현해도 아무도 추궁하지 않을 것입니다.
Copyright 1999–2023 The Apache Software Foundation
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.