Shell injection yöntemi ile hack yapılan sistem nasıl düzeltilir?

iyi akşamlar,
bir kaç gün önce shell injection ile sitemi hacklemişler. İlk bakışta bir sorun yok ama admin panelinde 2 sayfaya girince otomatik yönlendirme oluyor. Tıpatıp benzer başka sayfalarda yönlendirme olmuyor ama. Sayfanın kodlarına bakınca hiçbir yönlendirme kodu yok. Acaba hangi yollarla yönlendirme yapılabilir?
not: .htaccess dosyası yok sistemde.

M
0 kişi takip ediyor.
Misafir olarak yayınla
7
7 CEVAP

nereden injection yediginizi ogrenip sorunu duzeltiniz mi

E

shell injection için dosya yukleme sayfasi gerekiyor. Bende bikaç yerde dosya yukleme var. Resim ve doc/pdf yuklemek için. Bu arkadaşlar dosya uzantisini değiştirip shell dosyasini sisteme yukluyorlar. Mesela shell. Php. Jpg yapiyorlar. Ben de dosya yukleme scriptinde mime_content_type ile fake dosyalari kontrol ettiriyorum artik. Uzanti jpg olsa bile yuklenen dosyanin mimesi jpg olmuyor yani mime_content_type ile gerçek kontrolu yapabiliyorsun. sql injection için ise, sadece giriş sayfasinda session yapilandirmasi oluyor. Diğer tum sayfalarda sadece session kontrolu var. Yani giriş sayfasinda sql injection yapamazlarda diğer sayfalara erişemezler. Bunun için ise "select ...... Where username=$username" yerine tum kullanicilarin listesini alip for dongusuyle "if user["username"] == $username gibi bir kontrolle giriş yaptiriyorum artik. Umarim başka sorun çikmaz.

Mazlum Sahinkusu 6 yıl

session icinde önlem almak gerekirmi

Enes Buldu 6 yıl

tam bilmiyorumda

Enes Buldu 6 yıl

almak gerekirse nasil bir önlem gerekir

Enes Buldu 6 yıl

ben de çok iyi bilmiyorum ya. İlk yayinladiğim siteydi ve birkaç gun sonrasinda hack yedim. Şaştim kaldim afalladim. stackoverflowda session hacklenmez diyor. Hacklenmesi için hosting şirketinin serveri hacklenmeli diyor

Mazlum Sahinkusu 6 yıl

iyi o zaman

Enes Buldu 6 yıl

korktum bi an

Enes Buldu 6 yıl

pdo ile yapiyorum zaten yine sorun cikarmi ki

Enes Buldu 6 yıl

sessionla pdonun bi alakasi yok ki sorun çiksin

Mazlum Sahinkusu 6 yıl

hayir yani giris filan yapilirken

Enes Buldu 6 yıl

kontrol ediliyor ya

Enes Buldu 6 yıl

haa onun için yukarda dediğim şekilde kullanici kontrolu yapsan sorun olmaz.

Mazlum Sahinkusu 6 yıl

session ile id'yi çekiyorum sonra onunla ilgili bilgileri veritabanindan cekiyorum

Enes Buldu 6 yıl

fonksiyon yaptim hizlica

Enes Buldu 6 yıl

normalde $conn->query("select * from users where username='$username' and password='$password') yapilir. Eğer boyle yaparsan çok kolay sql injection yersin.

Mazlum Sahinkusu 6 yıl

istedigim kismi seciyorum

Enes Buldu 6 yıl

prepare execute ile yapiyorum

Enes Buldu 6 yıl

evet oyle önlenebiliyor. session konusunda problem olmuyor istediğin gibi kullanabilirsin. Tabi kullanıcının göremeyeceği şekilde. Mesela "profil. Php? Userid=55" benzeri şekillerde bilgileri gösterme.

Mazlum Sahinkusu 6 yıl

profil/55

Enes Buldu 6 yıl

nasil olur

Enes Buldu 6 yıl

sessionda gostermiyorum zatende profil sayfasinda nasil cekcez ozaman

Enes Buldu 6 yıl

mumkunse sadece profil olsun ve içerde idyi sessiondan al. Sonuçta sessiona bi kere attın mı artık istediğin sayfadan o verilere erişebiliyorsun

Mazlum Sahinkusu 6 yıl

başkasinin profiline bakarken diyorum

Enes Buldu 6 yıl

haa o mesele. O biraz zor işte. Mecbur bişeyler tanımlatacan orda

Mazlum Sahinkusu 6 yıl

adamlar nasil hackliyor onuda anlayamadim

Enes Buldu 6 yıl

formda acik biraktik diyelim

Enes Buldu 6 yıl

adam butun verileri listeletiyor

Enes Buldu 6 yıl

anlamamiz için daha 40 firin ekmek yememiz gerekiyor

Mazlum Sahinkusu 6 yıl

bir arkadaş vardi ozamanlar ilk başladigim zamanlardi

Enes Buldu 6 yıl

hackle demiştim

Enes Buldu 6 yıl

hemen admin hesabimin kadi sifresini cikarmisti

Enes Buldu 6 yıl

yaparlar heci. Amatorun şifresini bulmak basit tabi

Mazlum Sahinkusu 6 yıl

neyse iyi geceler

Enes Buldu 6 yıl

iyi geceler

Mazlum Sahinkusu 6 yıl

Çekerken saf çekip, gösterirken ekstra bişeyler katabilirsin ID'ye.

Umut Sagir 6 yıl