Divulgazione del percorso completo su rss-Functions.php


8

Stavo eseguendo alcuni test di sicurezza sulle mie app WordPress e ho notato che tutti hanno una divulgazione del percorso completo sul seguente URL. Sono sicuro che sia già stata data una risposta, ma non riesco a trovare alcuna informazione al riguardo.

https://mydomains.com/wp-includes/rss-functions.php

Il messaggio di errore quando si accede al collegamento è Chiama alla funzione indefinita _deprecated_file () in /home/mydomain/public_html/wp-includes/rss-functions.php sulla riga 8

Non ho nulla nei miei temi per RSS.

Modifica: dopo ulteriori ricerche questo sembra essere un problema comune sulla maggior parte dei siti WordPress. Le soluzioni che ho trovato online non risolvono effettivamente l'errore. Dicono semplicemente di nascondere la segnalazione degli errori in php.ini. Questo però non lo risolve e non tutti hanno accesso a php.ini a seconda della loro situazione di hosting.


Questo non è un problema di sicurezza.
fuxia

4
Sono in disaccordo con te. Il percorso completo è un'informazione molto preziosa per gli aggressori.
JediTricks007,

Assicurati solo che le autorizzazioni per i file siano impostate correttamente e che le informazioni siano inutili per chiunque senza tali autorizzazioni. Se il tuo sito è vulnerabile esponendo il percorso locale, hai problemi molto più importanti.
fuxia

2
Le mie autorizzazioni per i file sono impostate correttamente. Non voglio che questo mostri e pensi che sia una preoccupazione valida. Penso che se riesco a prevenire un modo semplice per trovare il percorso completo del mio sito, è una cosa positiva. Secondo owasp alcuni attacchi richiedono all'attaccante di conoscere l'intero percorso che desiderano visualizzare. Quindi non mostrare queste informazioni all'attaccante è importante.
JediTricks007,

Risposte:


5

I file PHP nella directory wp-Includes non dovrebbero essere accessibili dall'esterno, dovrebbero essere inclusi solo con il codice wordpress. Pertanto una soluzione semplice a questo è utilizzare le regole .htaccess per bloccare l'accesso ai file * .php che si trovano nella directory wp-Includes


1
Puoi fare un esempio di tale .htaccess?
Lucas Bustamante,


0

Display_errors dovrebbe essere disabilitato su un sito Web di produzione.

WP Scan accede wp-includes/rss-functions.phpdirettamente, e questo è il suo codice sorgente, a partire da WordPress 4.9.7:

<?php
/**
 * Deprecated. Use rss.php instead.
 *
 * @package WordPress
 */
_deprecated_file( basename(__FILE__), '2.1.0', WPINC . '/rss.php' );
require_once( ABSPATH . WPINC . '/rss.php' );

Quando si accede direttamente, la _deprecated_file()funzione non esiste, quindi genera un errore fatale.

La soluzione è disabilitare display_errorsa livello di server. Se il tuo PHP funziona sotto mod_apache, puoi farlo aggiungendo questa riga al tuo file .htaccess principale:

php_flag display_errors off

Se usi PHP-FPM, probabilmente avrai l'override di php.ini nella tua cartella public_html locale.

Inoltre, WordPress è consapevole che:

https://make.wordpress.org/core/handbook/testing/reporting-security-vulnerabilities/#why-are-there-path-disclosures-when-directly-loading-certain-files


-1

Teoricamente, ciò che sto per dirti è pericoloso e probabilmente non dovrebbe essere fatto, se stai facendo le cose nel modo "Wordpress corretto".

In pratica , questo funziona per il nostro ambiente di produzione.

Il file rss-functions.phpè obsoleto e reindirizza a rss.php.

Il file rss.phpè stato deprecato dalla v3.0.0 e commenti interni consigliano invece di utilizzare SimplePie.

Quindi il file rss-functions.phppuò essere eliminato in modo sicuro purché non si disponga di una vecchia installazione legacy e se non si hanno plug-in che dipendono da questo file.

In alternativa, commentare la riga 8 in quel file.


Da un punto di vista della sicurezza, dovresti anche implementare il suggerimento di @ MarkKaplun sopra, poiché questo file non è destinato a essere colpito direttamente dal browser.


A proposito, sono d'accordo con te che divulgare l'intero percorso è un rischio per la sicurezza; teniamo fuori WEBROOT in un percorso personalizzato per questo motivo.


2
nel bene e nel male, eliminare o modificare i file core non è mai una soluzione.
Mark Kaplun,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.