Determina la versione di Magento senza accesso alla base di codice


22

C'è un modo per trovare la versione di Magento in uso senza avere accesso al codice lato server?

Ad esempio, come funziona questo plugin

https://chrome.google.com/webstore/detail/magento-version-check/aekpbnbbbgocohlbdpdfgghamedmplal

I miei pensieri sono di verificare LICENSE.txto LICENSE_EE.txt. Puoi almeno determinare CE vs EE.

È inoltre possibile utilizzare l'anno del copyright per impostazione predefinita styles.cssper formare un'ipotesi.

Qualcun altro conosce un modo migliore?


3
Il tuo strumento sembra essere abbastanza preciso ...
Peter O'Callaghan,

Risposte:


26

Magento 1.x

L'avviso di copyright in /skin/frontend/default/default/css/styles.cssè già un buon indicatore.

Queste sono le diverse note sul copyright di Magento CE:

Version             @copyright
------------------------------------------------------------------------------------------------
Magento 1.9         Copyright (c) 2006-2014 X.commerce, Inc. (http://www.magento.com)
Magento 1.8         Copyright (c) 2013 Magento Inc. (http://www.magentocommerce.com)
Magento 1.7         Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
Magento 1.6         Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
Magento 1.4.1-1.5   Copyright (c) 2010 Magento Inc. (http://www.magentocommerce.com)
Magento 1.4.0       Copyright (c) 2009 Irubin Consulting Inc. DBA Varien (http://www.varien.com)
Magento 1.0-1.3     Copyright (c) 2008 Irubin Consulting Inc. DBA Varien (http://www.varien.com)

Per distinguere 1.4 e 1.5 dovresti fare una differenza effettiva con i file. Questo repository mirror su GitHub potrebbe aiutare:

https://github.com/OpenMage/magento-mirror/commits/magento-1.5/skin/frontend/default/default/css/styles.css

Magento 2.x

Per i negozi Magento 2 ottieni la versione su un piatto d'argento purché il Magento_Versionmodulo non sia disabilitato. Basta visitare shop-domain.tld/magento_version. Esempio di output:

Magento/2.1 (Community)

Tuttavia, non ci sono informazioni sulla versione esatta della patch.

Se il modulo versione è disabilitato o l'accesso a questo URL è bloccato, puoi anche controllare un foglio di stile predefinito come /static/frontend/Magento/blank/en_US/css/print.css. Ma fino ad ora, l'avviso sul copyright non dice molto:

Version             @copyright
------------------------------------------------------------------------------------------------
Magento 2.0         Copyright © 2016 Magento.
Magento 2.1         Copyright © 2016 Magento.

come posso vedere se Magento è CE o EE?
Vladimir Despotovic,

Apri un URL che esiste solo in EE
Fabian Schmengler il

Dato che non so quale URL esiste solo in EE, ho visto che la differenza tra EE e CE sta anche nel numero di campi in admin_role. In CE ci sono 7 campi in esso, e in EE ce ne sono circa altri 3, quindi circa 10 o giù di lì. Risolto anche il mio problema con la versione di Magento.
Vladimir Despotovic,

17

Se il negozio ha ancora installato il modulo Magento Connect e non sta bloccando intenzionalmente quell'URL dall'accesso pubblico a può semplicemente accedere a http://www.website.com / downloader, la versione verrà mostrata in fondo come da questa immagine.

Tecnicamente penso che questa sia la versione per il pacchetto Downloader, ma non l'ho mai vista non corrispondere alla versione generale di Magento.

inserisci qui la descrizione dell'immagine


Ciò significa che se vai su downloader / Maged / Controller.php e guardi public static function getVersionInfo()c'è un array che mostra la versione. Immagino che questa versione corrisponda anche alla versione di Magento.
Buttle Butkus,

8

È possibile utilizzare gli hash MD5 di file pubblici (immagini, css, js) per identificare la versione.

Questo repository ha una lista di hash per i file in js, mediae skinle cartelle.

Ecco gli hash unici in jsonformato

{
    "skin/adminhtml/default/default/boxes.css": {
        "6aefb246b1bb817077e8fca6ae53bf2c": "CE 1.2.0, CE 1.2.0.1, CE 1.2.0.2, CE 1.2.0.3", 
        "84b67457247969a206456565111c456b": "CE 1.1.2, CE 1.1.3, CE 1.1.4", 
        "0902e89fb50b22d44f8242954a89300c": "EE 1.12.0.0", 
        "8a5c088b435dbcf1bbaac9755d4ed45f": "EE 1.12.0.1, EE 1.12.0.2", 
        "1cbeca223c2e15dcaf500caa5d05b4ed": "CE 1.7.0.0", 
        "d0511b190cdddf865cca7873917f9a69": "CE 1.1.1", 
        "a2c7f9ddda846ba76220d7bcbe85c985": "CE 1.2.1, CE 1.2.1.1, CE 1.2.1.2"
    }, 
    "js/mage/adminhtml/sales.js": {
        "a86ad3ba7ab64bf9b3d7d2b9861d93dc": "CE 1.0", 
        "d80c40eeef3ca62eb4243443fe41705e": "CE 1.5.0.1", 
        "95e730c4316669f2df71031d5439df21": "CE 1.1.0", 
        "bdacf81a3cf7121d7a20eaa266a684ec": "CE 1.5.1.0", 
        "ba43d3af7ee4cb6f26190fc9d8fba751": "EE 1.14.1.0", 
        "c8dd0fd8fa3faa9b9f0dd767b5a2c995": "CE 1.9.1.1", 
        "4422dffc16da547c671b086938656397": "CE 1.4.2.0", 
        "0e400488c83e63110da75534f49f23f3": "CE 1.3.2, CE 1.3.2.1, CE 1.3.2.2, CE 1.3.2.3, CE 1.3.2.4", 
        "48d609bb2958b93d7254c13957b704c4": "CE 1.6.1.0, CE 1.6.2.0", 
        "40417cf4bee0e99ffc3930b1465c74ae": "EE 1.11.2.0", 
        "5656a8c1c646afaaf260a130fe405691": "CE 1.8.1.0", 
        "17da0470950e8dd4b30ccb787b1605f5": "CE 1.1.5, CE 1.1.6", 
        "aeb47c8dfc1e0b5264d341c99ff12ef0": "EE 1.11.0.2", 
        "ec6a34776b4d34b5b5549aea01c47b57": "EE 1.10.0.2", 
        "a0436f1eee62dded68e0ec860baeb699": "CE 1.9.1.0", 
        "5112f328e291234a943684928ebd3d33": "CE 1.1.7, CE 1.1.8", 
        "7ca2e7e0080061d2edd1e5368915c267": "EE 1.10.1.1", 
        "a4296235ba7ad200dd042fa5200c11b0": "CE 1.6.0.0", 
        "9a5d40b3f07f8bb904241828c5babf80": "EE 1.13.1.0", 
        "3fe31e1608e6d4f525d5db227373c5a0": "EE 1.13.0.0, EE 1.13.0.2", 
        "26c8fd113b4e51aeffe200ce7880b67a": "CE 1.8.0.0", 
        "839ead52e82a2041f937389445b8db04": "CE 1.3.3.0", 
        "d1bfb9f8d4c83e4a6a826d2356a97fd7": "CE 1.3.1, CE 1.3.1.1"
    }, 
    "js/mage/adminhtml/product.js": {
        "e887acfc2f7af09e04f8e99ac6f7180d": "CE 1.3.0"
    }, 
    "skin/frontend/rwd/default/css/styles.css": {
        "bf6c8e2ba2fc5162dd5187b39626a3a0": "CE 1.9.0.1", 
        "5373978891051983da47ac5064b4b2b9": "EE 1.14.0.1", 
        "8a874fcb6cdcb82947ee4dbbe1822f3e": "CE 1.9.0.0", 
        "bd66fd43fecd7ca1e293226bb11e1658": "EE 1.14.0.0"
    }, 
    "js/prototype/validation.js": {
        "295494d0966637bdd03e4ec17c2f338c": "CE 1.4.1.0", 
        "d3252becf15108532d21d45dced96d53": "CE 1.4.1.1"
    }, 
    "js/mage/adminhtml/tools.js": {
        "86bbebe2745581cd8f613ceb5ef82269": "CE 1.7.0.1, CE 1.7.0.2", 
        "ea81bcf8d9b8fcddb27fb9ec7f801172": "CE 1.3.2.2", 
        "d594237950932b9a3948288a020df1ba": "CE 1.3.2.3, CE 1.3.2.4, CE 1.3.3.0"
    }, 
    "js/lib/flex.js": {
        "4040182326f3836f98acabfe1d507960": "CE 1.4.0.1", 
        "eb84fc6c93a9d27823dde31946be8767": "CE 1.4.0.0"
    }
}

Ad esempio, se testiamo il negozio Magento demo

$ curl -s http://demo.magentocommerce.com/skin/frontend/rwd/default/css/styles.css | md5
8a874fcb6cdcb82947ee4dbbe1822f3e

Vediamo che l'hash corrisponde CE 1.9.0.0.

Con potrebbe sembrare

$url = 'http://demo.magentocommerce.com/';

foreach ((array)json_decode(file_get_contents('hashes.json')) as $file => $hash) {
    $md5 = md5(file_get_contents($url . $file));
    if (isset($hash[$md5])) {
        echo $hash[$md5];
        break;
    }
}

Nota che potrebbe non funzionare se i file sono minimizzati, patchati, hanno terminazioni di linea diverse, ecc.


4

Se hai accesso al pannello di amministrazione, puoi controllarlo tramite il piè di pagina per la versione di Magento

Altrimenti, se l'autorizzazione non viene modificata, puoi controllare il file RELEASE_NOTES.txt per la versione di magento che può facilmente dire se si tratta di EE o della community


0

No , sarebbe male se fosse pubblicato pubblicamente. Per quanto riguarda la sicurezza, va bene non dire tutto a tutti.

A volte la funzionalità di frontend ti darà una buona idea. Perché alcune funzionalità sono state implementate dall'edizione x. O i percorsi vengono creati in un modo specifico per una versione.

Lo stesso vale per i moduli, se hanno funzionalità frontend specifiche e router che puntano a loro o all'utilizzo del nome della classe, può essere facilmente indovinato.

Puoi farlo tramite (tutti hanno bisogno di un certo livello di accesso):

  • lato server (dai un'occhiata app/Mage.php) e verificaapp/etc/modules
  • accedi al pannello di amministrazione e vedi la versione nel piè di pagina
  • esegui Magerun lato server (puoi fare molto di più)
  • Usa la chiamata API magento.info

Come accennato nella domanda, non ho accesso lato server, quindi questa risposta non funzionerà per me.
Steve Robbins,

0

Ho usato magescanper determinare una versione remota di Magento:

https://github.com/steverobbins/magescan

Può anche cercare il livello di patch, le informazioni sul server, i moduli installati, il catalogo, la mappa del sito, i percorsi non raggiungibili e, naturalmente, la versione. È un PHP Phar e può essere installato con il compositore.

Utilizzo tipico:

$ magescan.phar scan:all store.example.com
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.