Seditio ve Ldu hakkında sınırsız arama yapın
 
Php security exploit with gif images fixed
Author: dvdbil
Submitted by: Dvdbil   Date: 2007-08-01 05:14
Comments: (2)   Ratings:
Ön bilgi

Ldu ve Seditio'nun tüm sürümlerinin, pfs (my file) ve profile alanından upload edilen image dosyalarına inject edilen php veya javascript kodları ile bazı browser'lar üzerinden bypass edilerek, inject edilen kodları çalıştırmayı mümkün kılan açığa karşı bugüne kadar Ldu ve Seditio için herhangi bir yama çıkarılmamıştı.

Fakat bahse konu edilen açığın php açısından çok tehlikeli durumlara sebep olduğu bir kaç gün önce bir çok dünya genelindeki sitelerde yayınlandı.

Hex editorleri ile .gif dosyasına eklenen bazı karakterler ve eklenen php komutları sayesinde getimagesize() fonksiyonunu bypass ederek ilgili kodu çalıştırmaktadır.

Şuan bu açık tüm .php üzerinden upload özelliği bulunan siteler için geçerlidir.

İlgili çalışmalarım sonucu bu açığa karşı tüm Ldu ve Seditio sürümlerinde çalışabilir yamayı hazırladım.

Sitemi bu açığa karşı nasıl korurum ?

İlgili dosyayı download kısmından indirip sıkıştırılmış dosyayı açın. Klasör içeriğindeki tüm dosyaları;

datas/users/

klasörü içine kopyalayın.

/users/ klasörünün chmod ayarını 755 yapın.

--
Ldu ve Seditio'da 3 farklı upload olayı vardır.
1- avatar upload
2- photo upload
3- my files (pfs.php)

Eğer isterseniz datas/photos/ ve datas/avatars/ klasörleri içinde uygulayabilirsiniz.

İşleyiş nedir ?

.htaccess = bulunduğu klasördeki alttaki dosyalara istekte bulunan istemciyi *.php?*=dosya dosyasına yönlendirir.

jpg.php = istek gelen jpg dosyasını Php server üzerinden sadece image görüntülemesi için çalıştırıyoruz.

gif.php = istek gelen gif dosyasını Php server üzerinden sadece image görüntülemesi için çalıştırıyoruz.

png.php = istek gelen png dosyasını Php server üzerinden sadece image görüntülemesi için çalıştırıyoruz.

bmp.php = istek gelen bmp dosyasını Php server üzerinden sadece application/pdf görüntülemesi için çalıştırıyoruz.

zip.php = istek gelen zip dosyasını Php server üzerinden sadece application/zip görüntülemesi için çalıştırıyoruz.

rar.php = istek gelen rar dosyasını Php server üzerinden sadece application/rar görüntülemesi için çalıştırıyoruz.

pdf.php = istek gelen pdf dosyasını Php server üzerinden sadece application/pdf görüntülemesi için çalıştırıyoruz.

mov.php = istek gelen mov dosyasını Php server üzerinden sadece video/quicktime görüntülemesi için çalıştırıyoruz.

qt.php = istek gelen qt dosyasını Php server üzerinden sadece video/quicktime görüntülemesi için çalıştırıyoruz.

ogg.php = istek gelen ogg dosyasını Php server üzerinden sadece video/quicktime görüntülemesi için çalıştırıyoruz.

avi.php = istek gelen avi dosyasını Php server üzerinden sadece video/x-msvideo görüntülemesi için çalıştırıyoruz.

mpg.php = istek gelen mpg dosyasını Php server üzerinden sadece video/mpeg görüntülemesi için çalıştırıyoruz.

mpeg.php = istek gelen mpeg dosyasını Php server üzerinden sadece video/mpeg görüntülemesi için çalıştırıyoruz.

txt.php = istek gelen txt dosyasını Php server üzerinden sadece text/plain görüntülemesi için çalıştırıyoruz.

mp3.php = istek gelen mp3 dosyasını Php server üzerinden sadece audio/mp3 görüntülemesi için çalıştırıyoruz.

wav.php = istek gelen wav dosyasını Php server üzerinden sadece audio/x-wav görüntülemesi için çalıştırıyoruz.

Böylece upload edilen jpg, jpeg, png, bmp, rar, zip, mov, mpeg, mpg, avi, ogg, qt, txt, mp3, wav, pdf, ve özellikle gif dosyasına inject edilen php xss ve ayrıca getimagesize() fonksiyonunu bypass ederek kötü kod çalıştırılmasını önlemiş oluyoruz.

(uzantılar referansı system/config.extensions.php dosyasından alınmıştır)

Notlar

- Bu yama sadece Ldu ve Seditio için değil, upload özelliği bulunan tüm php scriptleri için geçerlidir.

- Uygulama açısından sadece Apache Server yüklü sunucularda çalışır.

İlgili unlink etiketler

php upload security fix, upload güvenliği, getimagesize bug, gif injection, php upload file bug, php gif bug fix, avatar açığı, image files bug, GIF89A bug, gif header, browser gif, render bug, gd library bug

Uyarı

Bu makale içeriği dvdbil tarafından Seditio-tr.com için yazılmış olup, içeriği değiştirerek kopya oluşturmak, satmak ve kaynak linki belirtmeden kopya oluşturmak yasaktır.
Download : Upload Açığına Karşı Önlem Almak (bug fix)

Size: 5KB, downloaded 557 times

Benzer sayfalar (Similar pages) #BETA

Keywords (beta):

Forum Arşiv (beta):

[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [64] [65] [66] [67] [68] [69] [70] [71] [72] [73] [74] [75] [76] [77] [78] [79] [80] [81] [82] [83] [84] [85] [86] [87] [88] [89] [90] [91] [92] [93] [94] [95] [96] [97] [98] [99] [100] [101] [102] [103] [104] [105] [106] [107] [108] [109] [110] [111] [112] [113] [114] [115] [116] [117] [118] [119] [120] [121] [122] [123] [124] [125] [126] [127] [128] [129] [130] [131] [132] [133] [134] [135] [136] [137] [138] [139] [140] [141] [142] [143] [144] [145] [146] [147] [148] [149] [150] [151] [152] [153] [154] [155] [156] [157] [158] [159] [160] [161] [162] [163] [164] [165] [166] [167] [168] [169] [170] [171] [172] [173] [174] [175] [176] [177] [178] [179] [180] [181] [182] [183] [184] [185] [186] [187] [188] [189] [190] [191] [192] [193] [194] [195] [196] [197] [198] [199] [200] [201] [202] [203] [204] [205] [206] [207] [208] [209] [210] [211] [212] [213] [214] [215] [216] [217] [218] [219] [220] [221] [222] [223] [224] [225] [226] [227] [228] [229] [230] [231] [232] [233] [234] [235] [236] [237] [238] [239] [240] [241] [242] [243] [244] [245] [246] [247] [248] [249] [250] [251] [252] [253] [254] [255] [256] [257] [258] [259] [260] [261] [262] [263] [264] [265] [266] [267]