
phpMyAdmin 5.2.3 - उच्च - रिमोट - SQLi - केंद्रीय कॉलम pmadb क्वेरी अवशेष
abraxaslabs.tech · github.com/abraxas · @abraxas_null · [email protected] · phpmyadmin-pmadb-central-sqli
Class: SQLi Reach: Remote
phpMyAdmin 5.2.3 (tag RELEASE_5_2_3, commit 962857e). Central columns, col_extra को control-user link पर POST extra और attribute को एक single-quoted SQL literal में concatenate करके लिखता है। पड़ोसी fields escapeString से गुज़रते हैं। ये दो नहीं गुज़रते।
एक signed-in user index.php?route=/database/central-columns पर multi_edit_central_column_save=1 और field_attribute (या col_extra) में एक quote के साथ POST करता है। getInsertQuery / updateOneColumn फिर उस string को pma control user के रूप में pma__central_columns के विरुद्ध चलाते हैं। वह account configuration-storage user है, logged-in SQL box नहीं।
CVE-2016-5703 central columns में database name था। ये extra और attribute fields वह bug नहीं थे।
| ID | अभी तक कोई CVE नहीं |
| Class | SQLi (pma__central_columns पर control-user) |
| Reach | Remote (authenticated cookie login; pmadb central columns enabled) |
| CWE | CWE-89 |
| CVSS | High: 8.1 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N |
| Product | phpMyAdmin |
| Affected | 5.2.3 tag RELEASE_5_2_3 (962857e) |
| Auth | Authenticated cookie login. pmadb central columns enabled. |
| License | GNU Affero GPL v3.0 |
| Lab | केवल 127.0.0.1:19210 |
एक signed-in phpMyAdmin user जो Central columns खोल सकता है, pma__central_columns पर control user के रूप में SQL inject कर सकता है।
| Privilege | Method / path | Lab-proven या inferred |
|---|---|---|
| control-user INSERT/UPDATE string तोड़ना (pmadb SQL की integrity) | POST index.php?route=/database/central-columns multi_edit_central_column_save=1 के साथ field_attribute / col_extra में एक quote | Lab-proven। #1064 JSON error। control-user error में witness PMA-PMADB-CENTRAL-SQLI-WITNESS |
| पड़ोसी fields को in-band रखना | वही POST, field_name में quote | Lab-proven। Row neg'col के रूप में stored। escapeString ने पकड़ा |
| अन्य users की central-column rows पढ़ना या overwrite करना | वही sink, एक बार string बंद होने पर | Inferred। Lab syntax error पर रुकता है; कोई stacked query नहीं |
| control user के रूप में extra statements | वही sink यदि control mysqli link multi-query की अनुमति देता है | Inferred। Default mysqli::query single-statement है। यहाँ enabled नहीं |
अन्य pmadb tables तक पहुँचना (bookmarks, history, pma__userconfig) | केवल यदि stacked queries या INTO-style write संभव हो | Inferred। इस lab में control user के पास केवल phpmyadmin.* DML है |
इस lab पर बंद: unauthenticated access, signed-in appuser SQL box (केवल appdb), OS shell, और stacked queries। यदि pmadb / central columns बंद है तो feature no-ops (यह एक FAIL है, यह leftover नहीं)।
RELEASE_5_2_3 की आठ parallel source hunts। CentralColumns.php में पड़ोसी fields escapeString'd हैं। Extra और attribute एक single-quoted literal में implode होते हैं। CVE-2016-5703 database name था, ये columns नहीं।
गलत मोड़: field_name में quote को leftover मानना (यह neg'col के रूप में store होता है; यह negative है); general log से unescaped witness दिखने की अपेक्षा करना (INSERT सफल write से पहले #1064 के साथ मर जाता है); pmadb-off को इस leftover के रूप में मानना (feature no-ops)।
python3 phpmyadmin-pmadb-central-sqli-Abraxas-Labs.py
या
cd lab
./run.sh
केवल loopback: http://127.0.0.1:19210। Images phpmyadmin:5.2.3 और mysql:8.0। Compose project phpmyadmin-pmadb-central-sqli। Witness PMA-PMADB-CENTRAL-SQLI-WITNESS।
SUCCESS phpmyadmin-pmadb-central-sqli how=live insert-syntax=yes field-name-escaped=yes general-log-unescaped=false error-has-witness=true PMA-PMADB-CENTRAL-SQLI-WITNESS
extra और attribute पर escapeString / quoteString(..., CONNECT_CONTROL)। auto_increment, UNSIGNED, BINARY, UNSIGNED ZEROFILL, और on update CURRENT_TIMESTAMP को allowlist करें। designer JSON blob पर phpMyAdmin 6.x quoteString इस वर्ग के pmadb concat के लिए patched shape है।
962857e)libraries/classes/Database/CentralColumns.php getInsertQuery / updateOneColumnControllers/Database/CentralColumnsController.php POST multi_edit_central_column_saveGET|POST /database/central-columnsGNU Affero GPL v3.0। देखें LICENSE। केवल loopback lab। कोई warranty नहीं।