Ustal wersję Magento bez dostępu do bazy kodu


22

Czy istnieje sposób na znalezienie używanej wersji Magento bez dostępu do kodu po stronie serwera?

Na przykład, jak działa ta wtyczka

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

Mam na myśli sprawdzenie LICENSE.txtczy LICENSE_EE.txt. Możesz przynajmniej określić CE kontra EE.

Można również domyślnie użyć roku praw autorskich, styles.cssaby zgadnąć.

Czy ktoś jeszcze zna lepszy sposób?


3
Twoje własne narzędzie wydaje się dość dokładne ...
Peter O'Callaghan

Odpowiedzi:


26

Magento 1.x

Informacja o prawach autorskich w /skin/frontend/default/default/css/styles.cssjest już dobrym wskaźnikiem.

Oto różne uwagi dotyczące praw autorskich do 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)

Aby rozróżnić 1.4 i 1.5, powinieneś zrobić różnicę w stosunku do plików. To repozytorium lustrzane w GitHub może pomóc:

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

Magento 2.x

W przypadku sklepów Magento 2 otrzymasz wersję na srebrnej płytce, o ile Magento_Versionmoduł nie jest wyłączony. Po prostu odwiedź shop-domain.tld/magento_version. Przykładowe dane wyjściowe:

Magento/2.1 (Community)

Jednak nie ma informacji o dokładnej wersji łatki.

Jeśli moduł wersji jest wyłączony lub dostęp do tego adresu URL jest zablokowany, możesz również sprawdzić domyślny arkusz stylów, taki jak /static/frontend/Magento/blank/en_US/css/print.css. Ale do tej pory informacja o prawach autorskich niewiele mówi:

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

jak mogę sprawdzić, czy Magento jest CE czy EE?
Vladimir Despotovic

Otwórz adres URL, który istnieje tylko w EE
Fabian Schmengler

Ponieważ nie wiem, który adres URL istnieje tylko w EE, zauważyłem, że różnica między EE i CE wynika również z liczby pól w admin_role. W CE znajduje się 7 pól, aw EE jest ich jeszcze około 3, czyli około 10. Rozwiązałem również mój problem z edycją wersji Magento.
Vladimir Despotovic

17

Jeśli sklep nadal ma zainstalowany moduł Magento Connect i nie blokuje celowo tego adresu URL przed dostępem publicznym, może po prostu uzyskać dostęp do http://www.website.com / downloader wersja zostanie pokazana na dole, jak na tym obrazie.

Technicznie myślę, że jest to wersja pakietu Downloader, ale nigdy nie widziałem, żeby nie pasowała do ogólnej wersji Magento.

wprowadź opis zdjęcia tutaj


Co oznacza, że ​​jeśli przejdziesz do downloader / Maged / Controller.php i spojrzysz na public static function getVersionInfo()tablicę pokazującą wersję. Myślę, że ta wersja odpowiada również wersji Magento.
Buttle Butkus

8

Do identyfikacji wersji można użyć skrótów MD5 plików publicznych (obrazów, css, js).

Repozytorium zawiera listę skrótów do plików js, mediai skinfoldery.

Oto unikalne skróty w jsonformacie

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

Na przykład, jeśli przetestujemy demo sklep Magento

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

Widzimy, że skrót odpowiada CE 1.9.0.0.

Z może to wyglądać

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

Uwaga: może to nie działać, jeśli pliki są zminimalizowane, załatane, mają różne zakończenia linii itp.


4

Jeśli masz dostęp do panelu administracyjnego, możesz to sprawdzić w stopce dla wersji magento

W przeciwnym razie, jeśli uprawnienia nie zostaną zmienione, możesz sprawdzić plik RELEASE_NOTES.txt dla wersji magento, która może łatwo stwierdzić, czy jest to EE czy społeczność


0

Nie , byłoby źle, gdyby został opublikowany publicznie. Jeśli chodzi o bezpieczeństwo, nie jest w stanie powiedzieć wszystkim wszystkiego.

Czasami funkcjonalność nakładki da ci dobre domysły. Ponieważ niektóre funkcje zostały właśnie zaimplementowane od wydania x. Lub ścieżki są budowane w sposób, który jest specjalnie dla wersji.

To samo dotyczy modułów, jeśli mają określoną funkcjonalność interfejsu i routery do nich wskazujące lub użycie nazwy klasy, można łatwo zgadnąć.

Możesz to zrobić przez (wszyscy potrzebują określonego poziomu dostępu):

  • serveride (rzuć okiem app/Mage.php) i sprawdźapp/etc/modules
  • zaloguj się do panelu administracyjnego i zobacz wersję w stopce
  • uruchom serwer Magerun na serwerze (możesz zrobić znacznie więcej)
  • Użyj wywołania API magento.info

Jak wspomniano w pytaniu, nie mam dostępu do serwera, więc ta odpowiedź nie będzie dla mnie działać.
Steve Robbins,

0

Użyłem magescanzdalnej wersji Magento:

https://github.com/steverobbins/magescan

Może także skanować w poszukiwaniu poziomu łatek, informacji o serwerze, zainstalowanych modułach, katalogu, mapie witryny, nieosiągalnych ścieżkach i oczywiście wersji. Jest to phar PHP i można go zainstalować z kompozytorem.

Typowe zastosowanie:

$ magescan.phar scan:all store.example.com
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.