web-gelistirme-sc.com

Arka uca erişim olmadan bir Joomla web sitesinde kullanılan uzantıların sürümünü nasıl bulabilirim?

Her şeyden önce kendimi kontrol etmek istiyorum:

  • Bir uzantı, modüllerin, eklentilerin ve bileşenlerin toplamı değil mi?

  • Bu doğruysa, modüller, eklentiler ve bileşenler aynı sürümlere sahiptir. Bu da doğru mu?

Sorun şu: Yaptığım güvenlik araştırmasının bir parçası olarak, herhangi bir Joomla sitesinde kullanılan uzantıların sürümlerini bulmam gerekiyor.

Basit durumlarda, sürüm zaten burada olduğu gibi yazılmıştır:

JWallpapers - A lightweight yet powerful image gallery component with community building capabilities
 * 
 * @version 2.2.2 $Id: default.css 558 2010-12-16 12:29:41Z amazeika $
 * @package JWallpapers
 * @copyright Copyright (C) 2009 Arunas Mazeika, http://www.wextend.com. All rights reserved
 * @author Arunas Mazeika
 * @license GNU General Public License v2+ (GNU GPL v2+). See license.php
 * 
 */
#picture_container,#picture_right_content,#thumbs_right_section,#thumbs_left_section,#frontend_tagging_section,#pic_tags_section
    {
    float: left;
    border: none !important;
}

.jw_category_title {
    float: left;
    border: none !important;
} 

Ancak böyle bir kayıt yoksa bir uzantının sürümünü nasıl bulabilirim?

Ben de burada baktı ama cevaplayan bir php-script kullandı. Normal bir kullanıcının böyle bir komut dosyasını çalıştırması mümkün müdür?

Joomla sitelerinde uzantı sürümlerini bulmanın başka yolları var mı?


Feragatname: Bu tamamen Joomla içindeki olası güvenlik açıklarını araştırmak içindir

UDP_1

Sitenin ağacını almak için OWASP-ZAP kullanıyorum, yani her dizindeki her dosyayı alıyorum. Bunun gibi : enter image description here .

Peki, herhangi bir modül, eklenti veya bileşen başka bir yerde bir iz bırakabilir mi (sadece, örneğin bileşenler dizininde değil)?

5
Elvin

@Sharky'nin dediği gibi, manifest dosyalarına erişerek uzantı sürümlerini kontrol edebilirsiniz. Her bir uzantı türü için bu dosyaların yolu:

Bileşen:

../administrator/components/com_extension_name/extension_name.xml

Modül:

../modules/mod_extension_name/mod_extension_name.xml

Eklenti:

../plugins/plugin_type/extension_name/extension_name.xml

Şablon:

../templates/extension_name/templateDetails.xml
3
webchun

Sitenin yöneticisi değilseniz, bu bilgilere tam olarak sahip olamazsınız. Hangi uzantıların yüklendiğini biliyorsanız, manifest dosyalarına erişerek sürümlerini kontrol edebilirsiniz. Örneğin, Joomla! administrator/manifests/files/joomla.xml dosya.

Hangi uzantıların yüklü olduğunu bulmak için kullanabileceğiniz en yakın şey, vahşi ortamda bulabildiğiniz kadar çok uzantı listesini derleyerek ve manifest dosyalarının web sitesinde var olup olmadığını kontrol etmek için bir komut dosyası yazarakdır.

3
Sharky

uzantısı modüller, eklentiler ve bileşenlerin toplamıdır?

uzantısı , bir bileşen, modül ve eklentinin birleşimi değildir. Bu bir paket

Eklentiler, Modüller, Bileşenler, Şablonlar tüm uzantı türleridir .


Bu yüzden haklıysam, modüller, eklentiler ve bileşenler aynı sürümlere sahiptir. Aynı zamanda doğru mu?

Hayır. Hepsi ayrı, bu yüzden farklı versiyonlar kullanacaklar.


Ancak böyle bir kayıt yoksa uzantıların sürümünü nasıl öğrenebilirim?

Joomla arka ucunuzda (yönetici paneli), Uzantılar >> Yönet >> Yönet .

Bu, kurulu tüm uzantıların ve ilgili sürümlerinin bir listesini verecektir.

İşte bir örnek:

enter image description here

2
Lodder

* Güncelleme * Bu cevabı gönderdim ve daha sonra cevapları Sharky ve daha sonra Neil Roberts'ın .xml dosyalarının mevcut olduğunu söyleyerek kontrol ettim. Bunu sitelerimden birinde test ettim, bu yüzden bu bilgilerin mevcut olduğundan çok şaşırdım ve bu konuda bir şeyler yapmak zorunda kalacağım. Özgün yanıtımı genel başvuru için burada bıraktım ve bileşen dizinlerindeki manifest xml dosyasını aradığını söyleyenlerin Yanıtlarını oyladım.


Bu bilgiler, bir son kullanıcı veya bir web sitesini ziyaret eden kullanıcılar tarafından kullanılamaz.

Joomla'nın arka ucuna Yönetici erişimine veya bir veritabanı sorgusu çalıştırmak için erişime ihtiyacınız olacak ve siteyi hacklemediyseniz buna da sahip olmayacaksınız.

Bir web sitesinin herkese açık görüntüleyicisi olarak yalnızca görüntülenen HTML'de nelerin mevcut olduğunu görebileceksiniz. Lodder'ın cevabında açıklandığı gibi Uzantılar eklenti, modüller ve bileşenlerden oluşur ve çoğunlukla bunlar daha sonra oluşturulan ve tarayıcınıza gönderilen sayfaları oluşturmak için sunucu tarafında gerçekleşir.

Bazı bileşenler, bir sayfanın altbilgisinde bir arka bağlantı veya `` .... tarafından desteklenmektedir ... '' metni görüntüleyebilir, bu da kodlarındaki kısımlarında kasıtlı eylemle olabilir, ancak normalde eklentiler ve modüller kendi başlarına herhangi bir iz bırakmaz. onların sürümü. Joomla kodunun derinliklerinde yürütülen ve A'dan B'ye bir değeri değiştiren bir eklenti, bir filmde çalışan kişilerin sonunda listelendiğini söylemek gibi bir sayfanın alt kısmına herhangi bir kredi alamaz.

Bir Joomla sitesinin her sayfasının HTML kodunu analiz edebilir ve bir uzantının sayfa oluşturmada bir eli olabileceğini veya olmayabileceğini gösteren kanıt kırıntıları kataloğunu yavaşça oluşturabilirsiniz, ancak güvenilir bir sürüm bilgisi olmayacaktır. Ayrıca o kadar uzun sürecek ki, içinde çok fazla nefes kalmamasını öneririm.

Yaptığınız araştırma ve gereksiniminizin ne olduğu hakkında daha fazla bilgi verirseniz, belki de buradaki insanlar alternatif bir yaklaşım önerebilir.

1
Irata

Sharky 'in dediği gibi, veritabanına yönetici erişiminiz yoksa, bu bilgileri bulmanın en iyi yolu, web sitesindeki xml bildirim dosyaları gibi genel olarak erişilebilir dosyalardır. Bazı web sitelerindeki güvenlik, bu dosyaları görüntülemenize izin vermediğinden, bu yöntem her zaman güvenilir değildir.

Manifest dosyalarına erişiminiz olsa bile, bir uzantının tüm sürümleri aynı manifest dosyasını kullanmaz.

Bazı örnekler için, Akeeba Backup ve JCE Editor'ün tüm sürümler için aynı manifest dosyasını kullandığı aşağıdaki koda bakın, ancak ChronoForms ve Gantry Framework için sürüm numarasını almak için birkaç dosyayı kontrol etmeniz gerekir.

// Display Akeeba Version
echo "<div class='item'>Akeeba Version:</div>";
$xml = simplexml_load_file($website . "/administrator/components/com_akeeba/akeeba.xml");
if (isset($xml->version)) {
  echo "<div class='column'>$xml->version</div>";
} else {
  echo "<div class='column'>Unknown</div>";
}

// Display JCE Version
echo "<div class='item'>JCE Version:</div>";
$xml = simplexml_load_file($website . "/administrator/components/com_jce/jce.xml");
if (isset($xml->version)) {
  echo "<div class='column'>$xml->version</div>";
} else {
  echo "<div class='column'>Unknown</div>";
}

// Display ChronoForms Version
echo "<div class='item'>ChronoForms Version:</div>";
$xml = simplexml_load_file($website . "/administrator/components/com_chronoforms6/chronoforms6.xml");
if (isset($xml->version)) {
  //ChronoForms v6
  echo "<div class='column'>$xml->version</div>";
} else {
  $xml = simplexml_load_file($website . "/administrator/components/com_chronoforms5/chronoforms5.xml");
  if (isset($xml->version)) {
    //ChronoForms v5
    echo "<div class='column'>$xml->version</div>";
  } else {
    $xml = simplexml_load_file($website . "/administrator/components/com_chronoforms/chronoforms.xml");
    if (isset($xml->version)) {
      //ChronoForms v4
      echo "<div class='column'>$xml->version</div>";
    } else {
      $xml = simplexml_load_file($website . "/administrator/components/com_chronocontact/chronocontact.xml");
      if (isset($xml->version)) {
        //ChronoForms v3
        echo "<div class='column'>$xml->version</div>";
      } else {
        //Unknown
        echo "<div class='column'>Unknown</div>";
      }
    }
  }
}

// Display Gantry Version
echo "<div class='item'>Gantry Version:</div>";
$xml = simplexml_load_file($website . "/administrator/components/com_gantry5/gantry5.xml");
if (isset($xml->version)) {
  //Gantry v5
  echo "<div class='column'>$xml->version</div>";
} else {
  $xml = simplexml_load_file($website . "/administrator/components/com_gantry/gantry.xml");
  if (isset($xml->version)) {
    //Gantry v4
    echo "<div class='column'>$xml->version</div>";
  } else {
    $xml = simplexml_load_file($website . "/administrator/components/com_gantry/manifest.xml");
    if (isset($xml->version)) {
      //Gantry v3
      echo "<div class='column'>$xml->version</div>";
    } else {
      //Unknown
      echo "<div class='column'>Unknown</div>";
    }
  }
}
1
Neil Robertson