Cómo visualizar las rutas activas de la REST API en WordPress (y detectar endpoints sospechosos)

WordPress ofrece una REST API muy poderosa que permite interactuar con el contenido y la configuración del sitio de forma externa. Sin embargo, muchos plugins también registran sus propios endpoints, y a veces se pueden colar rutas sospechosas o peligrosas.

En este artículo te muestro cómo crear una función que te permita listar todas las rutas activas de la REST API de tu sitio WordPress, simplemente visitando una URL con el parámetro ?devshow=show. Además, esta función resaltará en rojo aquellas rutas que parezcan maliciosas o anómalas.

add_action('init', function () {
if (isset($_GET['devshow']) && $_GET['devshow'] === 'show') {
if (!current_user_can('manage_options')) {
wp_die('Acceso denegado.');
}

header('Content-Type: text/html; charset=utf-8');

$server = rest_get_server();
$routes = $server->get_routes();

$sospechosas = ['eval', 'exec', 'shell', 'backdoor', 'cmd', 'run', 'code'];
echo '<h2>📡 Rutas registradas en la REST API</h2>';
echo '<ul style="font-family: monospace;">';

foreach ($routes as $route => $details) {
$es_sospechosa = false;

// Si el namespace no es común o hay palabras peligrosas en la ruta
foreach ($sospechosas as $keyword) {
if (stripos($route, $keyword) !== false) {
$es_sospechosa = true;
break;
}
}

if (!preg_match('#^/wp/v2|^/wc/#', $route)) {
$es_sospechosa = true;
}

$style = $es_sospechosa
? 'color: red; font-weight: bold;'
: 'color: green;';

echo "<li style=\"$style\">" . esc_html($route) . "</li>";
}

echo '</ul>';
exit;
}
});

Cómo usarla

  1. Asegúrate de estar logueado como administrador.

  2. Visita la URL de tu sitio agregando ?devshow=show.
    Ejemplo:
    https://tusitio.com/?devshow=show

  3. Verás un listado de todas las rutas activas de la REST API.

  4. Las rutas sospechosas se marcarán en rojo.

¿Por qué es útil?

  • Puedes detectar endpoints maliciosos creados por plugins infectados o puertas traseras.

  • Ideal para auditorías de seguridad y revisiones técnicas.

  • Útil para desarrolladores que quieran documentar sus rutas personalizadas.

Recomendaciones

  • No dejes esta función activa en producción sin protección adicional.

  • Si encuentras rutas sospechosas, analiza su origen antes de eliminarlas.

  • Usa herramientas como Wordfence o Sucuri para complementar la seguridad de tu sitio.

 

Protected by SysWP Shield