| Titre | wuzhicms <=4.1.0 SQL Injection |
|---|
| Description | article::getDataOfJson() reads the request body directly from php://input and json_decodes it. The title field in the JSON body is never passed through the framework's standard filtering functions input()/sql_replace() and is concatenated directly into the SQL string literal `title`='$title'; the master_table field likewise overrides the query's target table without any validation, and is concatenated into the backtick-quoted table-name position. The underlying WUZHI_mysqli::get_one() performs no escaping or parameterization on either the concatenated $where clause or the $table name, and query() executes mysqli_query() raw. Because this request travels via the JSON body input path, it completely bypasses the sql_replace() filter chain that the framework uses to strip quotes/semicolons/comment markers (that chain only applies to values read via input() from $_GET/$_POST). As a result, both the single quote ' and the backtick ` reach the SQL concatenation point unmodified, producing both a classic string injection and a more severe identifier (table-name) injection. |
|---|
| La source | ⚠️ https://github.com/wuzhicms/wuzhicms/issues/218 |
|---|
| Utilisateur | ZAST.AI (UID 87884) |
|---|
| Soumission | 17/08/2026 07:20 (il y a 1 mois) |
|---|
| Modérer | 15/09/2026 10:44 (29 days later) |
|---|
| Statut | Accepté |
|---|
| Entrée VulDB | 404076 [WuzhiCMS jusqu’à 4.1.0 index.php?m=content&f=article&v=getDataOfJson article::getDataOfJson title/master_table injection SQL] |
|---|
| Points | 20 |
|---|