Hello,
Authenticated users can execute arbitrary SQL commands.
1. SQL injection (wpaal_actions())
Method: POST
Vulnerable parameter: aal_massstring
Example PHP callstack:
wpaal_actions [/wp-auto-affiliate-links/WP-auto-affiliate-links.php:136]
wpdb::query
Please also note there is no privileges checking in wpaal_actions() so any authenticated user can perform actions from it (like deleting etc).
Verification:
2. SQL injection (AalLink::showAll())
This one is for authenticated administrators only (no CSRF protection).
Method: GET
Vulnerable parameter: aalorder
Example PHP callstack:
wpaal_manage_affiliates [/wp-auto-affiliate-links/WP-auto-affiliate-links.php:356]
showAll [/wp-auto-affiliate-links/classes/link.php:29]
wpdb::get_results
Verification:
3. Other security-related concerns:
In aalImportSettingsAction() function there is no CSRF protection so it's possible to replace settings with arbitrary file upload.
--
Regards,
Marcin Probola,