
स्वचालित एक्सप्लॉइट टूलकिट और CVE-2024-21546 के लिए डिटेक्शन टेम्पलेट, जो UniSharp Laravel Filemanager में एक अनप्रमाणित RCE है, जिसमें WAF चोरी और इंटरैक्टिव शेल शामिल है।
इस रिपॉजिटरी में UniSharp/laravel-filemanager पैकेज (संस्करण < 2.9.1) का उपयोग करने वाले अनुप्रयोगों में अनधिकृत रिमोट कोड निष्पादन (RCE) की पहचान और शोषण के लिए सुरक्षा मूल्यांकन उपकरण, डिटेक्शन टेम्पलेट और एक स्वचालित शोषण टूलकिट शामिल है।
laravel-filemanager.yaml)
cve_2024_21546_rce.py)
यह भेद्यता दो संयुक्त स्थितियों से उत्पन्न होती है:
'auth' या 'web' मिडलवेयर पाइपलाइन लागू किए बिना /laravel-filemanager रूट पंजीकृत करता है।.) को ठीक से साफ़ करने में विफल रहता है, जिससे हमलावर निष्पादन योग्य फ़ाइल ब्लॉकलिस्ट को बायपास कर सकते हैं और PHP स्क्रिप्ट को सार्वजनिक स्टोरेज में रख सकते हैं।LfmUploadValidator.php)v2.9.1 से पहले के संस्करणों में, LfmUploadValidator.php ने ब्लॉकलिस्ट के विरुद्ध फ़ाइल एक्सटेंशन की जाँच इस प्रकार की:
public function extensionIsNotExcutable($unallowed_extensions)
{
$extension = strtolower($this->file->getClientOriginalExtension());
if (in_array($extension, $unallowed_extensions)) {
throw new \Exception('File extension is not allowed.');
}
return $this;
}
जब कोई हमलावर poc.php. नाम की फ़ाइल अपलोड करता है:
getClientOriginalExtension() अंतिम डॉट के बाद के वर्णों को निकालता है।getClientOriginalExtension() का मूल्यांकन "" (खाली स्ट्रिंग) होता है।in_array("", ['php', 'html']) का मूल्यांकन false होता है, जिससे एक्सटेंशन ब्लॉक बायपास हो जाता है।Windows और विशिष्ट स्टोरेज ड्राइवरों पर, फ़ाइल एक्सटेंशन रहित हैश (<hash>) के रूप में संग्रहीत की जाती है। शोषण LFM के RenameController (GET /laravel-filemanager/rename?file=<hash>&new_name=runner.php) को श्रृंखलाबद्ध करके अपलोड किए गए पेलोड को सक्रिय .php फ़ाइल में नाम बदलता है, जिससे /storage/app/public/file-manager-files/items/runner.php के अंतर्गत तत्काल वेब निष्पादन मिलता है।
laravel-filemanager.yaml)अपस्ट्रीम समुदाय टेम्पलेट (http/exposed-panels/laravel-filemanager.yaml) (https://github.com/projectdiscovery/nuclei-templates/blob/main/http/exposed-panels/laravel-filemanager.yaml) हार्डकोडेड अंग्रेजी स्ट्रिंग मैचर पर निर्भर था:
matchers:
- type: word
words:
- "Laravel FileManager" # Fails on localized deployments or non english versions
जब अनुप्रयोग स्थानीयकृत होते हैं (जैसे अरबी, फ्रेंच, चीनी), अंग्रेजी स्ट्रिंग HTML बॉडी में मौजूद नहीं होती है, जिससे गलत नकारात्मक परिणाम होते हैं।
आधुनिकीकृत टेम्पलेट अपरिवर्तनीय विक्रेता एसेट पथ और अपलोड फ़ॉर्म क्रियाओं का मिलान करके पैनल का पता लगाता है:
id: laravel-filemanager
info:
name: Laravel File Manager - Panel Detect
author: digitalsurgn
severity: critical
description: Laravel File Manager panel was detected.
reference:
- https://github.com/UniSharp/laravel-filemanager
classification:
cvss-metrics: CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N
cwe-id: CWE-200
metadata:
max-request: 1
tags: panel,laravel,filemanager,fileupload,intrusive
http:
- method: GET
path:
- "{{BaseURL}}/laravel-filemanager?type=Files"
matchers-condition: and
matchers:
- type: word
part: body
words:
- "vendor/laravel-filemanager"
- "laravel-filemanager/upload"
condition: or
- type: status
status:
- 200
nuclei -u https://target.com/ -t laravel-filemanager.yaml
cve_2024_21546_rce.py)स्टैंडअलोन Python उपकरण (cve_2024_21546_rce.py) अंतर्निहित WAF चोरी और स्व-सफाई स्वच्छता के साथ अंत-से-अंत अनधिकृत शोषण को स्वचालित करता है।
/laravel-filemanager प्रमाणीकरण के बिना पहुंच योग्य है।jsonitems) के पहले/बाद के स्नैपशॉट लेता है।<?=), गतिशील फ़ंक्शन आह्वान (('pas'.'sthru')), और Base64-एन्कोडेड X-Cmd हेडर का उपयोग करता है।--interactive)।python3 cve_2024_21546_rce.py [OPTIONS]
python3 cve_2024_21546_rce.py
python3 cve_2024_21546_rce.py -t xyz.com -c "whoami"
python3 cve_2024_21546_rce.py -t 10.10.10.50 -p 8080 --interactive
unisharp/laravel-filemanager को संस्करण 2.9.1 या बाद में अपडेट करें:
composer update unisharp/laravel-filemanager
config/lfm.php में सभी फ़ाइलमैनेजर रूट प्रमाणीकरण द्वारा सुरक्षित हैं:
'middlewares' => ['web', 'auth'],
/storage/) में .php स्क्रिप्ट के निष्पादन को अस्वीकार करने के लिए वेब सर्वर नियम कॉन्फ़िगर करें।| मीट्रिक | विवरण |
|---|
| भेद्यता का नाम | UniSharp Laravel Filemanager अनियंत्रित फ़ाइल अपलोड से RCE |
| CVE पहचानकर्ता | CVE-2024-21546 |
| प्रभावित घटक | unisharp/laravel-filemanager (< 2.9.1) |
| सामान्य कमजोरी | CWE-94 (कोड इंजेक्शन) / CWE-434 (अनियंत्रित अपलोड) |
| गंभीरता | क्रिटिकल (CVSS 9.8) |
| हमला वेक्टर | रिमोट / अनधिकृत HTTP |
| फ़्लैग | पैरामीटर | विवरण |
|---|
-t, --target | <host> | लक्ष्य डोमेन या IP पता (जैसे example.com या 192.168.1.50)। |
-p, --port | <port> | मानक 80/443 से भिन्न होने पर लक्ष्य पोर्ट (जैसे 8080, 8443)। |
--scheme | http / https | प्रोटोकॉल स्कीम स्पष्ट रूप से निर्दिष्ट करें (डिफ़ॉल्ट: स्वचालित रूप से पता लगाया गया)। |
-c, --cmd | <command> | निष्पादित करने के लिए एकल कमांड (जैसे whoami, id, ipconfig)। |
-i, --interactive | फ़्लैग | इंटरैक्टिव कमांड निष्पादन शेल लॉन्च करें। |
-d, --dir | <path> | लक्ष्य LFM कार्यशील निर्देशिका (डिफ़ॉल्ट: /items)। |