Kullandığım premodda açık var.

Eklentiler ile ilgili soru, sorun ve tartışmalar.

Kullandığım premodda açık var.

İleti baris 11.02.2008, 13:11

Merhaba, bir kaçgündür sitem için mail geliyordu başka siteye yönleniyor cart curt diye, site satıldımı felan gibisinden. Bende hayır yok öyle birşey diyip geçiştiriyordum. Bugun siteye girdigimde lamerin biri

<span class="cattitle"><a href="index.php?c=1" class="cattitle"><meta http-equiv="refresh" content="0;URL=http://www.bizbizeboard.com"></a></span>

şöyle bir kod yerleştirmiş, artık nasıl erişmişse. Sitenin bilgilerini bulup girmesi imkansız. Buraya nerden girmiş olabilir ? accountumdaki bütün dosyalara baktım hiç birinin içinde yok.

Kullandığım premod yakusha 2.9.1.
baris
Üye
Üye
 
İleti: 11
Kayıt: 15.02.2007, 09:47

Re: Kullandığım premodda açık var.

İleti JAJA01 12.02.2008, 11:03

kardeş sitende herhangibi bir açık warsa istediği kodu yerleştirebilir
Kullanıcı avatarı
JAJA01
Üye
Üye
 
İleti: 16
Kayıt: 09.02.2008, 20:54

Re: Kullandığım premodda açık var.

İleti emre_k 16.02.2008, 10:53

aynısını bende yaşadım aynı şerefsizler tarafından.Sebepler:
1-Sana bir üye mod olmak sitiyom diye dosya atmıştır onu açtıysan keylogger var içinde.
2-server sahibine söyle serverde(r57-c99) tarzı bir shell vardır o yüzden olabilir.Server sahibin bütün siteleri tarasın ve sende bütün cpanel mysql, acp şifrelerini değiştir.ve kadro modu var onu kur.Ordan senin bilgin dışında oluşturulan yöneticileri takip edebilirsin.
3-Bu şerefsizler kendileri için bir admin daha yetikisi veriyolar bir üyeye ordanda giriyolar sitene.
Ben serveri tarattırdım ve onların sitesini suspend etirdim ve pc yi ghostladım,çünkü kullandıkları keylogger henüz antiviruslere yakalanmıyor.Her verilen linklere tıklamayınız.
Eklentiler
ezPortal_Resimli_Kadro_Blogu_v1.2.0.rar
(4.68 KiB) 381 defa indirildi
Kullanıcı avatarı
emre_k
Üye
Üye
 
İleti: 35
Kayıt: 09.04.2006, 09:07

Re: Kullandığım premodda açık var.

İleti NEFRİT 21.04.2008, 14:37

sanırım direk olarak admin panelde bulunan PHP dosyalarına SQL INJECTION yapıyorlar sitede her ne kadar koruma sistemi olsa bile

BAKIN GEÇEN GÜN NE FARK ETTİM ?
Foruma istediğiniz kadar güvenlik sistemi kurarsanız kurun ama sonucda bunlar forumun ana dosyalarını koruyorlar yani ADMIN paneli saldırılara yada SQL INJECTION lara karşı koruyan bir mod yok CT de korumuyor securty de korumuyor ....

SQL INCEJTION nedemek mi ?
veri tabanına girmek ve veri tabanına ya verileri INSERT yaparlar veri girişi yapılır örneğin o yukarıudaki basit yönlendirme kodları gibi yada veri tabanındaki tabloları delete yapabilirler.

İşte sql ve sql injection için güzel bir makale:

SQL Injection
For successful operations, surprise must be achieved by guerrillas.
Intelligence is extremely important, and detailed knowledge of the target's dispositions, weaponry and morale is gathered before any attack.

SQL Injection web uygulamalarında ki en ciddi açıkların başında gelir. Özellikle frameworkler ve ORM (Object Relational Mapping) gibi ekstra veritabanı katmanlarının popülerleşmesi ile eskisine göre bugünlerde biraz daha az görülmektedir ama emin olun hala heryerdeler!

Web uygulaması geliştiricilercileri SQL Injection’ ı tam anlamadıklarından dolayı bazı ölümcül hatalar yaparlar. Bu yüzden bugün bilinen basit SQL Injection metodları o kadar çok görünmese de ileri de anlatacağımız ileri seviye SQL Injection açıklarını çok büyük firmalardan, hazır sistemlere kadar bir çok yerde görebilirsiniz.

Güvenlik Günahı !
Ben hackleyemediysem kimse hackleyemez.

Güvenlikteki büyük günahlardan biri kişilerin bazı açıklar hakkında “ben hackleyemediysem güvenlidir.” diye düşünmeleri. Yazı dizisi boyunca bu şekilde bir dizi SQL Injection şehir efsanelerine de yer vereceğiz.

Son olarak SQL Injection hakkında önemli bir not,
SQL Injection veritabanından ve dilden bağımsız olarak her türlü uygulama-veritabanı ilişkisine sahip sistemde bulunabilir ve bu veritabanlarının bir açığı değildir. SQL Injection’ dan korunmak web geliştiricisinin görevidir.

SQL Nedir?
SQL (Structured Query Language) veritabanlarında data çekme, silme ve değiştirme gibi işlemler için kullanılan basit yapılı bir dildir. Bugün hemen hemen tüm web uygulamalarının altyapısında veritabanı desteği vardır ve bu web uygulamaları veritabanı ile SQL aracılığıyla anlaşırlar.

Bir siteye mesaj bıraktığınızda bu mesaj veritabanına kaydedilir. O mesaj onaylandığında veritabanındaki bir alan güncellenmiş olur. Yönetici veritabanındaki kaydı silerek o mesajın siteden silinmesini sağlar.

Örnek bir kayıt silme SQL cümlesi şu şekilde olabilir;
DELETE FROM members WHERE id=17

Yukarıdaki kod veritabanı tarafından çalıştırıldığında members tablosunda id alanı 17 olan kayıt silinecektir.

Bu makale SQL dilinin basit detaylarını ele almayacaktır. Eğer SQL konusunda zayıf iseniz makaleyi anlamanız güç olacaktır. Makaleye devam etmeden önce SQL in temel komutlarını öğrenmenizi ve veritabanı mantığınız anlamanızı tavsiye ederim.

SQL Injection Nedir?
Web uygulamalarında bir çok işlem için kullanıcıdan alınan veri ile dinamik SQL cümlecikleri oluşturulur. Mesela “SELECT * FROM Products” örnek SQL cümleciği basit şekilde veritabanından web uygulamasına tüm ürünleri döndürecektir. Bu SQL cümlecikleri oluşturulurken araya sıkıştırılan herhangi bir meta-karakter SQL Injection’ a neden olabilir.

Meta-Karakter Nedir?
Meta-karakter bir program için özel anlamı olan karakterlere verilen isimdir. Örnek olarak C temelli C#, Javascript, PHP gibi dillerde (\) backslash karakteri bir meta-karakterdir. Compiler (derleyici) ya da Interpreter (yorumlayıcı) bu karakteri görünce ondan sonraki karakteri ona göre işler.

SQL’ için kritik metakarakter (‘) tek tırnak’ tır. Çünkü iki tek tırnağın arası string olarak algılanır. Diğer bir önemli meta-karakter ise (;) noktalı virgüldür, satırın bittiğini ve yeni satır başladığını bildirir.

Genel bir web uygulamasında olası bir üye girişi işlemi şu şekildedir;

Formdan gelen kullanıcı adı ve şifre bilgisi ile ilgili SQL cümleciği oluşturulur (SELECT * FROM members WHERE user=’admin’ AND password=’sifre’ gibi)

SQL cümleciği kayıt döndürüyorsa böyle bir kullanıcının var olduğu anlamına gelir ve session(oturum) açılır ve ilgili kullanıcı üye girişi yapmış olur.

Eğer veritabanından kayıt dönmediyse "kullanıcı bulunamadı" veya "şifre yanlış" gibi bir hata ile ziyaretçi tekrar üye girişi formuna gönderilir.


Örnek bir üye girişi kodu
ASP ile yazılmış örnek bir üye girişi kodu;

<%
1. FUsername = Request.Form("username")
2. FPassword = Request.Form("password")
3.
4. Set RsLogin = SQLConn.Execute("SELECT * FROM Members WHERE username = '" & FUsername & "' AND Password = '" & FPassword & "'")
5.
6. If RsLogin.EOF AND RsLogin.BOF Then
7. Response.Redirect "/error.asp"
8.
9. Else
10. Session("login") = RsLogin("user_id")
11. Response.Redirect "../"
12.
13. End If
%>

Kod gayet basit. 1. ve 2. satırda “username” ve “password” form değişkenlerinin değerlerini alıyor. 4. satırda SQL cümleciğinin içerisine yerleştirip kullanıcı kontrolü yapıyor.

Bu işlemden sonra 6. satırda sonucun boş olup olmadığına bakıyor. Eğer boş ise yani kullanıcı veritabanında bulunmadıysa 7. satırda görüldüğü gibi kullanıcıyı hata sayfasına gönderiyor.

Eğer bulunduysa 10 ve 11. satırdaki işlemleri yapıyor. Yani kullanıcıya id’ si ile birlikte bir session açıyor. Bu sayede kullanıcı sisteme giriş yapmış oluyor.

Bu klasik bir login prosedürü. Tabii ki daha farklı ya da karışık olabilir.

Kullanıcı adı ve şifreye bir injection denemesi yapıp neler olacağını inceleyelim. Eğer kullanıcı adı ve şifre yerine “' OR ''='” ve “' OR ''='” girersek başarılı bir şekilde üye giriş yapmış oluyoruz ama nasıl ve niye?

Şimdi çalışan örnek kodu tekrar hatırlayalım 1 ve 2. satır form değerini alıyordu 4. satırda bu gelen değerleri SQL’ in içerisine yerleştirip veritabanında sorgu yaptırtıyordu.

Form değerlerini yerlerine yerleştirelim ve az önceki çalışan SQL’ e bakalım;

SELECT * FROM Members WHERE username = '' OR ''='' AND Password = '' OR ''=''

Farkettiğiniz üzere bu SQL sorgusu her zaman doğru dönecek ve “Members” tablosundaki tüm üyeleri getirecektir. Bu SQL cümleciğini tercüme edersek şu şekilde olacaktır. Members tablosundan username boş olanları ve password ü boş olanları getir ya da boş eşittir boş!

Birinci ve ikinci mantıksal kontrolün kayıt döndürüp döndürmesi önemli değil çünkü üçüncü kontrol her zaman doğru olarak döneceğinden (boş her zamana boşa eşit değil mi?) bu SQL cümleciği her zaman tüm kayıtları döndürecektir. Yani kayıt boş mu dolu mu diye kontrol ettiğimizde kayıt dolu olarak gözükecektir. Farkettiyseniz OR kullandık dolayıyla mantıksal sorguların herhangi bir doğru (true) olarak dönerse tüm kayıtlar dönmüş oluyor.

Dolayısıyla bu SQL Injection' ı yaptığımızda dönen kayıtlardaki ilk kullanıcı olarak giriş yapılmış olacaktır.

Gördüğünüz gibi SQL Injection; SQL cümleciklerinin arasına dışarıdan girdi yaparak SQL’ i istediğiniz şekilde manipüle etmenize izin veriyor.




Şimdi şuradaki yazı dikkatimi çekti;

Gördüğünüz gibi SQL Injection; SQL cümleciklerinin arasına dışarıdan girdi yaparak SQL’ i istediğiniz şekilde manipüle etmenize izin veriyor.

denmiş peki PHPBB HIZLANDIRICI modlar (xt tema modu hariç olan hızlandırıcılar için) diyorum onlar bunu " (çift tırnağı) daha hızlı çalışan tek tırnak ile ' değiştirmiyor mu ?

O HALDE =
phpBB hızlandırıcı modlar açık yaratır demek DOĞRU MU ?
Kullanıcı avatarı
NEFRİT
Üye
Üye
 
İleti: 287
Kayıt: 17.03.2006, 01:14
Konum: Elazığ


Soru(n)lar & Tartışmalar



Kimler çevrimiçi

Bu forumu görüntüleyenler: Kayıtlı kullanıcı yok ve 0 misafir