Hello,
1. Cross-Site Scripting (XSS) (page=es-sendemail)
Authenticated administrators can inject arbitrary html/javascript code (there is no CSRF protection).
Method: POST/GET
Vulnerable parameters: search (GET,POST), es_email_group (POST)
Example PHP callstack:
/email-subscribers/sendmail/sendmail.php:240
Verification:
2. Cross-Site Scripting (XSS) (page=es-view-subscribers)
Authenticated administrators can inject arbitrary html/javascript code (there is no CSRF protection).
Method: GET
Vulnerable parameters: search, sts, cnt
Example PHP callstack:
/email-subscribers/subscribers/view-subscriber-show.php:406
Verification:
3. SQL injection (es_view_subscriber_search())
Authenticated administrators can execute arbitrary sql commands (there is no CSRF protection).
Method: POST
Vulnerable parameter: did (GET)
Example PHP callstack:
/email-subscribers/subscribers/view-subscriber-show.php:75
es_cls_sendmail::es_prepare_optin [/email-subscribers/classes/es-sendmail.php:15]
es_cls_dbquery::es_view_subscriber_search [/email-subscribers/query/db_subscriber.php:35]
wpdb::get_results
Another Example PHP callsttack:
/email-subscribers/subscribers/view-subscriber-edit.php:24
es_cls_dbquery::es_view_subscriber_search [email-subscribers/query/db_subscriber.php:35]
wpdb::get_results
Verification:
4. SQL injection (es_notification_select())
Authenticated administrators can execute arbitrary sql commands (there is no CSRF protection). Attacker needs to know valid "did" id to exploit this vulnerability.
Method: GET
Vulnerable parameter: did
Example PHP callstack:
email-subscribers/notification/notification-edit.php:19
es_cls_notification::es_notification_select [email-subscribers/query/db_notification.php:14]
wpdb::get_row
Verification (did=1 is valid):
5. SQL injection (es_template_select()) + XSS
Authenticated administrators can execute arbitrary sql commands (there is no CSRF protection).
Method: GET
Vulnerable param: did
Callstack:
/email-subscribers/compose/compose-preview.php:20
es_cls_compose::es_template_select [/email-subscribers/query/db_compose.php:14]
wpdb::get_row
Verification:
Additionally the same parameter ("did") allows authenticated administrators to inject html/js code resulting in XSS vulnerability.
Callstack:
/email-subscribers/compose/compose-preview.php [:29]
Verification:
6. SQL injection (es_sentmail_select())
Authenticated administrators can execute arbitrary sql commands (there is no CSRF protection).
Method: GET
Vulnerable param: did
Example PHP callstack:
/email-subscribers/sentmail/sentmail-preview.php:22
es_cls_sentmail::es_sentmail_select [/email-subscribers/query/db_sentmail.php:14]
wpdb::get_row
Verification:
7. Cross-Site Scripting (XSS) (page=es-sentmail)
Authenticated administrators can inject arbitrary html/javascript code (there is no CSRF protection).
Method: GET
Vulnerable parameter: pagenum
Example PHP callstack:
/email-subscribers/sentmail/sentmail-preview.php:30
Verification:
--
Regards,
Marcin Probola,