Kaynak : https://eksisozluk.com/w3schools--507757?focusto=22316888
Şüphesiz yazılıma yeni başlayanlara tavsiye edilen kaynaklardan biri de W3schools dur. Birçok hatalı anlatımın yer aldığı bu sitede dolaşırken, "dosya yükleme" ile ilgili kod parçasında güvenlik açığı tespit ettim.
Konuyu detaylandırmak için ilgili sayfaya gidelim.
http://www.w3schools.com/php/php_file_upload.asp
echo "Upload: " . $_FILES["file"]["name"] . "<br>";
Yukarıda gördüğünüz kod parçası bütün örneklerin içinde geçiyor ve dikkat ederseniz dosya ismi hiç bir filtre uygulanmadan direkt olarak son kullanıcıya yansıtılmış. Yani XSS zafiyetine sebep oluyor. Kodu sömürmeyi deneyelim.
<img src=1 onerror=prompt(1)>.jpg
Dosyanın ismini yukarıdaki gibi değiştirip sunucuya yolluyoruz. Yükleme işlemi gerçekleştikten sonra karşımıza aşağıdaki gibi bir ekran çıkacaktır.
Görüldüğü gibi başarılı bir şekilde JS kodunu çalıştırabildik ve yazılımın enjeksiyon noktasını tespit ettik. Konuya farklı bir bakış açısı getirmek adına, daha önce Facebook'ta çıkmış olan XSS güvenlik açığını incelemenizi tavsiye ederim. http://blog.detectify.com/post/39209711597/how-i-got-a-3-500-usd-facebook-bug-bounty
Peki bu kodu nasıl güvenli bir hale getirebiliriz?
This is a very simple way of uploading files. For security reasons, you should add restrictions on what the user is allowed to upload.
Kaynak : http://www.w3schools.com/php/php_file_upload.asp
EOF




0 yorum:
Yorum Gönder