Множественные XSS уязвимости в плагине User Login History версии 1.5.2 для CMS WordPress позволяют позволяют злоумышленникам внедрять веб-скрипт или html код через date_from, date_to, user_id, username, country_name, browser, operating_system, или ip_address параметры в admin/partials/listing/listing.php.

Данные параметры HTTP GET запроса помещаются в атрибут «value» поля формы HTML без надлежащей проверки. Злоумышленник может закрыть тег ввода HTML с выражением «> (%22%3E) и ввести произвольный код HTML/JavaScript.

Пример уязвимого кода с параметром date_from:

<td> <input readonly = "readonly" autocomplete = "off" placeholder = "<? php _e (" From "," user-login-history ")? > "id =" date_from "name =" date_from "value =" <? php echo isset ($_GET ['date_from'])? $_GET ['date_from']: ""?> "class =" textfield-bg " > </ td>

Пример использования параметра user_id:

/wp-admin/admin.php?page=user-login-history&user_id=%22%3E%3Cscript%3Ealert%28document.cookie%29%3B%3C%2Fscript%3E

Такие атаки блокируются с помощью сигнатурного анализа. В случае обфускации пейлоада, запрос обрабатывается модулем искусственного интеллекта Nemesida WAF, распознающего аномалию в параметре запроса и позволяющему выявить эксплуатацию уязвимости.