Ermitteln Sie die Magento-Version ohne Zugriff auf die Codebasis


22

Gibt es eine Möglichkeit, die verwendete Magento-Version zu finden, ohne Zugriff auf serverseitigen Code zu haben?

Wie funktioniert dieses Plugin?

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

Meine Gedanken sind, nach LICENSE.txtoder zu suchen LICENSE_EE.txt. Sie können zumindest CE vs EE bestimmen.

Sie können auch das Copyright-Jahr in der Standardeinstellung verwenden styles.css, um eine Vermutung zu bilden.

Kennt jemand einen besseren Weg?


3
Ihr eigenes Werkzeug scheint ziemlich genau zu sein ...
Peter O'Callaghan

Antworten:


26

Magento 1.x

Der Copyright-Hinweis in /skin/frontend/default/default/css/styles.cssist bereits ein guter Indikator.

Dies sind die verschiedenen Copyright-Hinweise für 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)

Um 1.4 und 1.5 zu unterscheiden, sollten Sie einen tatsächlichen Vergleich mit den Dateien durchführen. Dieses Spiegel-Repository auf GitHub könnte helfen:

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

Magento 2.x

Für Magento 2-Shops erhalten Sie die Version auf einem silbernen Schild, solange das Magento_VersionModul nicht deaktiviert ist. Besuchen Sie einfach shop-domain.tld/magento_version. Beispielausgabe:

Magento/2.1 (Community)

Es gibt jedoch keine Informationen über die genaue Patch-Version.

Wenn das Versionsmodul deaktiviert oder der Zugriff auf diese URL gesperrt ist, können Sie auch ein Standard-Stylesheet wie das folgende überprüfen /static/frontend/Magento/blank/en_US/css/print.css. Bisher sagt der Copyright-Vermerk jedoch nicht viel aus:

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

Wie kann ich sehen, ob Magento CE oder EE ist?
Vladimir Despotovic

Öffnen Sie eine URL, die nur in EE existiert
Fabian Schmengler

Da ich nicht weiß, welche URL nur in EE vorhanden ist, habe ich festgestellt, dass der Unterschied zwischen EE und CE auch in der Anzahl der Felder in der Rolle admin_role besteht. In CE gibt es 7 Felder, und in EE gibt es ungefähr 3 weitere, also ungefähr 10. Auch mein Problem mit der Editionsversion von Magento gelöst.
Vladimir Despotovic

17

Wenn im Store noch das Magento Connect-Modul installiert ist und diese URL nicht absichtlich für den öffentlichen Zugriff gesperrt ist, kann nur auf http://www.website.com / downloader zugegriffen werden. Die Version wird wie in diesem Bild unten angezeigt.

Technisch denke ich, dass dies die Version für das Downloader-Paket ist, aber ich habe noch nie gesehen, dass sie nicht mit der Magento-Gesamtversion übereinstimmt.

Bildbeschreibung hier eingeben


Das heißt, wenn Sie zu Downloader / Maged / Controller.php gehen und sich public static function getVersionInfo()dort ein Array ansehen , das die Version anzeigt. Ich denke, diese Version entspricht auch der Magento-Version.
Buttle Butkus

8

Sie können MD5-Hashes von öffentlichen Dateien (Images, CSS, JS) verwenden, um die Version zu identifizieren.

Dieses Repository hat eine Liste von Hashes für Dateien in js, mediaund skinOrdnern.

Hier sind die eindeutigen Hashes im jsonFormat

{
    "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"
    }
}

Zum Beispiel, wenn wir die Demo Magento Store testen

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

Wir sehen, dass der Hash entspricht CE 1.9.0.0.

Mit könnte es so aussehen

$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;
    }
}

Beachten Sie, dass dies möglicherweise nicht funktioniert, wenn die Dateien minimiert, gepatcht sind, unterschiedliche Zeilenenden aufweisen usw.


4

Wenn Sie Zugriff auf das Admin-Panel haben, können Sie in der Fußzeile nachsehen, ob es sich um eine Magento-Version handelt

Andernfalls können Sie, wenn die Berechtigung nicht geändert wird, in der Datei RELEASE_NOTES.txt nach der Version von Magento suchen, die leicht erkennen kann, ob es sich um EE oder Community handelt


0

Nein , es wäre schlecht, wenn es öffentlich gepostet würde. Sicherheitstechnisch ist es in Ordnung, nicht allen alles zu erzählen.

Manchmal gibt Ihnen die Frontend-Funktionalität eine gute Vorstellung. Weil einige Funktionen erst seit Edition x implementiert sind. Oder Pfade werden speziell für eine Version erstellt.

Dasselbe gilt für Module, wenn sie über spezifische Frontend-Funktionen und Router verfügen, die auf sie verweisen, oder wenn der Klassenname verwendet wird, kann dies leicht erraten werden.

Sie können dies jedoch tun, indem Sie (alle benötigen eine bestimmte Zugriffsebene):

  • Serverseite (werfen Sie einen Blick hinein app/Mage.php) und überprüfen Sieapp/etc/modules
  • Loggen Sie sich in das Adminpanel ein und sehen Sie die Version in der Fußzeile
  • laufen Magerun server (man kann viel mehr tun)
  • Verwenden Sie den API-Aufruf von magento.info

Wie in der Frage erwähnt, habe ich keinen serverseitigen Zugriff, daher funktioniert diese Antwort bei mir nicht.
Steve Robbins

0

Ich habe verwendet magescan, um eine entfernte Magento-Version zu bestimmen:

https://github.com/steverobbins/magescan

Es kann auch nach Patch-Level, Server-Informationen, installierten Modulen, Katalog, Sitemap, nicht erreichbaren Pfaden und natürlich der Version suchen. Es ist ein PHP-Phar und kann mit Composer installiert werden.

Typische Verwendung:

$ magescan.phar scan:all store.example.com
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.