Turk Devilz
Yeni Üye
- Katılım
- 2 May 2014
- Mesajlar
- 131
- Tepkime puanı
- 0
- Puanları
- 0
Format String coderlerin tanıdığı bir açık olmasına rağmen günümüzde çokca bulunmak-
tadır.Çok tehklikeli br açık olup bulunduğunda etkil sonuçlar vermektedir.
Fazla Söze Ne Hacet Diyip Başlıyalım.
Öncelikle arkadaşlar ’’Format String ’’ konusuna girmeden önce ’’Format String’in’’
hangi platformlarda nasıl oluştuğuna değinmek istiyorum.
C’de Java’da C#’da bir uygulamaya başlamadan önce bazı fonksiyonlar kullanılır.
C’de bu fonksiyon ’’main()’’ fonksiyonudur.Ayrıca ’’Format String’i’’ anlatırken
kullanacağım ’’printf()’’fonksiyonudur ve bu fonksiyon ekrana mesaj yazdırılmasını sağlar
Hemen Örneğe Geçelim ;
Farklı özellikleri veri tiplerini uygulama içerisinde belirlemek için de kontrol
karakterleri kullanılır. Her veri için ayrı bir kontrol karakteri kullanılır.
Hemen Örneğe Geçelim ;
Gördüğünüz gibi printf() fonksiyonu ile ekrana saat,dakika,saniye yazdırırken
%s %s %ld kontrol karakterleride kullandık.
Buraya kadar olanı bir yana bırakarak ’’Format String ’’ Nasıl Meydana Gelir’ geçelim
Yukarıdaki örneğin sonucunda Saat,Dakika,Saniye ekrana yansıyacaktır.Buraya kadar normal
Kontrol karakter olmasaydı?
İşte zurnanın zırt dediği yere geldik ) Kontrol karakterinin olmaması Format String
saldırılarının temelini oluşturur ve kritik bir açık türüdür.
Hemen Örneğimize Geçelim ;
Evet Arkadaşlar bu örenğimizdeki inputa bir kod girelim
./formatstring Turk Devilz
Not: ./formatstring ’i asla değiştirmeyiniz.
Kodumuzu inputa girdiğimiz zaman bize Turk Devilz çıktısını verecektir.
ve bunu stacka yazacaktır.
Şimdi Arkadaşlar her kullanıcı bizim gibi yaralı olarak kullanayabilir.
yani herkes Turk Devilz gibi çıktıalr vererek stacka eklemez
işte zaten sorunda burada ya normal bir komut değilde zararlı bir komut
çalıştırılırsa olabilecekleri eminim tahmine etmişsinizdir.
Peki Bu Zaralı komutlar Nasıl Çalıştırılır ?
./formatstring %x Stacktan yani Hafızadan veri okur.
./formatstring %s Hafızadaki karakter dizilerini okur.
./formatstring %n Hafızaya Zararlı Kod yazar.
Toparlayacak olursak coderlerin gafletlerinden,uykusuzluklarından dolayı
yapmış oldukları hatalar Format Stringi oluşturur.Günümüzde çokca bulunan
kritik bir açık türüdür.Ve çokcada bulunur deyip makalemi bitiriyorum.
Selametle //
tadır.Çok tehklikeli br açık olup bulunduğunda etkil sonuçlar vermektedir.
Fazla Söze Ne Hacet Diyip Başlıyalım.
Öncelikle arkadaşlar ’’Format String ’’ konusuna girmeden önce ’’Format String’in’’
hangi platformlarda nasıl oluştuğuna değinmek istiyorum.
C’de Java’da C#’da bir uygulamaya başlamadan önce bazı fonksiyonlar kullanılır.
C’de bu fonksiyon ’’main()’’ fonksiyonudur.Ayrıca ’’Format String’i’’ anlatırken
kullanacağım ’’printf()’’fonksiyonudur ve bu fonksiyon ekrana mesaj yazdırılmasını sağlar
Hemen Örneğe Geçelim ;
Kod:
main( )
{
printf(’’Formst Stringe Giriş’’)
}
Farklı özellikleri veri tiplerini uygulama içerisinde belirlemek için de kontrol
karakterleri kullanılır. Her veri için ayrı bir kontrol karakteri kullanılır.
Hemen Örneğe Geçelim ;
Kod:
main( )
{
printf(’’%s %s %ld \\n ,Saat,dakika,saniye ’’)
}
Gördüğünüz gibi printf() fonksiyonu ile ekrana saat,dakika,saniye yazdırırken
%s %s %ld kontrol karakterleride kullandık.
Buraya kadar olanı bir yana bırakarak ’’Format String ’’ Nasıl Meydana Gelir’ geçelim
Kod:
printf(’’%s %s %ld \\n ,Saat,dakika,saniye ’’)
Yukarıdaki örneğin sonucunda Saat,Dakika,Saniye ekrana yansıyacaktır.Buraya kadar normal
Kontrol karakter olmasaydı?
İşte zurnanın zırt dediği yere geldik ) Kontrol karakterinin olmaması Format String
saldırılarının temelini oluşturur ve kritik bir açık türüdür.
Hemen Örneğimize Geçelim ;
Kod:
#include <stdio.h>
#include <string.h>
main(int *argc, char *argv[]]
{
char buffer[75];
strcpy(buffer,argv[1]);
printf(buffer);
printf("/n");
return 0;
}
Evet Arkadaşlar bu örenğimizdeki inputa bir kod girelim
./formatstring Turk Devilz
Not: ./formatstring ’i asla değiştirmeyiniz.
Kodumuzu inputa girdiğimiz zaman bize Turk Devilz çıktısını verecektir.
ve bunu stacka yazacaktır.
Şimdi Arkadaşlar her kullanıcı bizim gibi yaralı olarak kullanayabilir.
yani herkes Turk Devilz gibi çıktıalr vererek stacka eklemez
işte zaten sorunda burada ya normal bir komut değilde zararlı bir komut
çalıştırılırsa olabilecekleri eminim tahmine etmişsinizdir.
Peki Bu Zaralı komutlar Nasıl Çalıştırılır ?
./formatstring %x Stacktan yani Hafızadan veri okur.
./formatstring %s Hafızadaki karakter dizilerini okur.
./formatstring %n Hafızaya Zararlı Kod yazar.
Toparlayacak olursak coderlerin gafletlerinden,uykusuzluklarından dolayı
yapmış oldukları hatalar Format Stringi oluşturur.Günümüzde çokca bulunan
kritik bir açık türüdür.Ve çokcada bulunur deyip makalemi bitiriyorum.
Selametle //