Identificare in remoto la versione di un'installazione WordPress?

27 feb 2011, 23:12:52
Visualizzazioni: 17.3K
Voti: 4

Come fa lo strumento di DD32 a determinare la versione di WordPress di un'installazione. Non funziona correttamente per WP 3.1 ma non utilizza il tag meta generator o il readme.txt di WP. Quindi cos'altro potrebbe essere?

1
Commenti

Potresti provare a fare reverse engineering, fai in modo che controlli il tuo sito e osserva le richieste HTTP che genera.

mtekk mtekk
27 feb 2011 23:39:56
Tutte le risposte alla domanda 3
0
12

Questo è un pezzo di codice che ho scritto tempo fa per rilevare la versione di WP nei modi più ovvi: http://ottodestruct.com/class-wp-detection.phps

Ci sono altri metodi, più sottili e meno evidenti. Il suo metodo è il riconoscimento delle impronte digitali dei file. In pratica controlla se determinati file esistono o meno.

28 feb 2011 02:52:26
3

Sto solo supponendo, ma solitamente questo viene fatto individuando file/cartelle/codice specifici per ogni versione e a volte anche la dimensione.

Ad esempio puoi rimuovere tutti i meta tag delle versioni (non ce ne sono tipo 12?) e il file .txt per la 3.1, ma dato che la 3.1 è l'unica versione che include per impostazione predefinita il seguente nuovo file, è piuttosto facile identificarla.

wp-includes/js/l10n.js

Poiché ogni release include molte nuove aggiunte, se passi abbastanza tempo a scrivere un bot intelligente, non è molto difficile trovare dati specifici per ogni versione. Nascondere tutte queste informazioni richiederebbe molto lavoro per ogni release.

28 feb 2011 00:31:37
Commenti

Cosa intendi con 12 tag meta versione?

Simon Blackbourn Simon Blackbourn
28 feb 2011 00:36:23

Ho capito il tuo punto ma +1 per la domanda di Simon

Ashfame Ashfame
28 feb 2011 01:26:31

Scusa, avrei dovuto essere più chiaro. Il tag meta versione viene inserito in diversi punti, ad esempio puoi rimuoverlo dall'intestazione predefinita del tuo blog, ma appare altrove. Ecco perché usi un filtro globale "per eliminarlo" invece di commentare semplicemente l'output dell'intestazione html. Quel numero è probabilmente esagerato però. Ad esempio guarda lo script di Otto qui sotto.

Wyck Wyck
28 feb 2011 05:17:49
2

So che esiste già una risposta accettata, ma volevo comunque proporre questa soluzione. Il modo in cui lo faccio io è estrarre la variabile $wp_version dal file 'wp-includes/version.php' nella directory del tuo blog:

function get_wp_version() {
 $versionFile = ABS_PATH.'/wp-includes/version.php';
 // FILE DI VERSIONE NON TROVATO //
 if (($versionStr = @file_get_contents($versionFile))=='') return ''; 

 $regex = "wp_version.*'(?<wpVersion>.*)'";
 if (preg_match('/'.$regex.'/', $versionStr, $matches)) {
  return $matches['wpVersion'];
 }
 return '';
}
28 feb 2011 03:16:14
Commenti

Bello ma posso migliorarlo e se eseguo l'ultima versione, non dovrei avere alcun problema.

Ashfame Ashfame
28 feb 2011 07:31:35

Inoltre dovresti eseguirlo sullo stesso server perché funzioni. Non l'avevo notato prima. lol

Ashfame Ashfame
22 nov 2011 16:42:58