yazilim adlı üyeden alıntı:
mesajı görüntüle
site açıklarını bulma ?
18
●21.619
- 12-12-2008, 18:09:45
foreach ($_GET as $security) { if( (eregi("<[^>]*script*\"?[^>]*", $security)) || (eregi("<[^>]*object*\"?[^>]*", $security)) || (eregi("<[^>]*iframe*\"?[^>]*", $security)) || (eregi("<[^>]*applet*\"?[^>]*", $security)) || (eregi("<[^>]*meta*\"?[^>]*", $security)) || (eregi("<[^>]*style*\"?[^>]*", $security)) || (eregi("<[^>]*form*\"?[^>]*", $security)) || (eregi("<[^>]*img*\"?[^>]*", $security)) || (eregi("<[^>]*onmouseover *\"?[^>]*", $security)) || (eregi("<[^>]*body *\"?[^>]*", $security)) || (eregi("\([^>]*\"?[^)]*\)", $security)) || (eregi("\"", $security)) || (eregi("forum_admin", $sec_key)) || (eregi("inside_mod", $sec_key))) {$datetime = date('Y-m-d H:i:s'); die('<center>Bilgisayarinizin IP numarasi kayit altina alinmistir. Lütfen emin olmadiginiz URL dizinlerine ulasmaya çalismayin.</center>'); } }
Bu kodu kendi başına bir php dosyası oluşturarak yerleştir. Ve bunu dosyalarına include et
Diyelim ki dosyan security.php olsun içine bunları yapıştır. Ve sonra scriptinin dosyalarına include et örnek :
include("security.php");
gibi...
index.php dosyana yada diger dosyalarına hepsine yap. Eğer scriptin fonksiyonlarlar case'ler atanarak index.php üzerinden döndürülen bir script ise sadece index.php ye include etmen yeterli olacak yok her bir dosya bağımsız ise her birine ayrı ayrı include et bu yukarda yazılanlar GET açıklarını bir nebzede olsa kapatır..
Saygılar... - 12-12-2008, 18:43:06Yada kullandığınız script size özel değilse, milw0rm - exploits : vulnerabilities : videos : papers : shellcode da script de daha önce acık bulunup bulunmadığını aratabilirsiniz.
- 12-12-2008, 23:24:11@Recepikiz
bu bilgiler için tşk ederim hemen uygulayacağım..
bende bugün uğraşıp açıkları kapattığım bir yöntemi açıklıyayım sizlere bilmeyen arkadaşlara faydamız olur.
if ( isset($_REQUEST["msg"])&&$_REQUEST['msg']<>"")
bende açığa yol açan kod buymuş..bunuda engellemek için şöyle bir yol izledim..
{ dan sonra şu kodu ekleyin..
if(strstr($_REQUEST["msg"], "script")=="false") {bunu her php dosyanıza uygulayın..
bi tane açık bulma programı bulmuşdum pro diyince herkes salla onu takma iş görmez gibisinden konuşdu ama arkadaşlar gerçekden açıkları buluyor kapandığındada kapalı diye sorun çıkarmıyor..
pro nun ismi Acunetix Web Vulnerability Scanner 6.. bunu kullanın deneyin derim benim işimi gördü..
Genellemek gerekirse bende olan bu kod eğer ki sizlerdede varsa xss açığınız var demekdir ve önlemi alınmamışsa bu verdiğim yolu takip edin xss açığından kurtulun..
şimdi arkadaşlar ben bu yolu takip ettim xss yi kapadım..
@Recepikiz arkadaşın sunmuş olduğu yol sanki her açık için kalkan oluyor..ben kendi yapdığım kodu uygulamam yeterlimi yoksa @Recepikiz arkadaşın verdiği koduda uygulayammı..
herkese başarılar... - 12-12-2008, 23:44:10arkadaşımızın vermiş olduğu kodu denedim süper çalışıyor herkesin bence sitesinde uygulaması gerek..
ben basitçe anlatım yapayım..
metin belgesi açıp içine şunları kaydediyoruz..
<? foreach ($_GET as $security) { if( (eregi("<[^>]*script*\"?[^>]*", $security)) || (eregi("<[^>]*object*\"?[^>]*", $security)) || (eregi("<[^>]*iframe*\"?[^>]*", $security)) || (eregi("<[^>]*applet*\"?[^>]*", $security)) || (eregi("<[^>]*meta*\"?[^>]*", $security)) || (eregi("<[^>]*style*\"?[^>]*", $security)) || (eregi("<[^>]*form*\"?[^>]*", $security)) || (eregi("<[^>]*img*\"?[^>]*", $security)) || (eregi("<[^>]*onmouseover *\"?[^>]*", $security)) || (eregi("<[^>]*body *\"?[^>]*", $security)) || (eregi("\([^>]*\"?[^)]*\)", $security)) || (eregi("\"", $security)) || (eregi("forum_admin", $sec_key)) || (eregi("inside_mod", $sec_key))) {$datetime = date('Y-m-d H:i:s'); die('<center>Bilgisayarinizin IP numarasi kayit altina alinmistir. Lütfen emin olmadiginiz URL dizinlerine ulasmaya çalismayin.</center>'); } } ?>örneğin dosyayı guvenlik.php diye kaydedin kök dizine atın..
sonra index.php açın..(her php dizinine eklemenizi tavsiye ederim.)
bende include olarak include_once "baglan.php"; bu şekilde vardı sizde bunun altına veya üstüne farketmez include_once "guvenlik.php"; diye ekleyin..
sonra test amaçlı bir xss açığı kodu deneyin..
örneğin ;
www.siteadı.com/index.php?msg=%3Cscript%3Ealert('Hacked....');%3C/script%3Eve sonuç size uyarı verecekdir..gördüğünüz üzre kod çalışıyor..
buradan tekrar kod sunumunu yapan arkadaşa tşkler..
ayrıca konu önemli sabitlenmesi herkesin sıkıntısına çare olacakdır..
başarılar... - 12-12-2008, 23:57:03Merhaba
bu sistemlerdeki ornegin mysql de yada php nin yapisinda bir acik bulma olayi o kadar kolay degildir, bence programlarin cogu versiyon dusukluklerini yada sunucuda bulunmayan bir componenti acik olarak gosteriyor.Bu tur aciklari bilmek, onlardan nasil faydalanacagini/kapatacagini kestirmek veritabani veya yazilim uzmanlarinin isidir.Programlar ise yaramaz bu konuda bence.
php yi bilmiyorum ama asp.net te veritabanina sorgu gonderirken parametre kullanmalisiniz kullanmazsaniz id=1'a seklindeki sorgular isi bilen icin sonuc verebilir.
php de de sanirm sorgu giderken parametre kullaniliyor. - 13-09-2010, 04:54:59uzun yıllardır asp programcısı olarak çalışarak hayatını kazanan biri olarak şunları söyleyebilirim;
@Recepikiz arkadaşın site güvenliği konusunda yazdığı mesajlardan bu konulara aslında çokta yakın olmadığını söyleyebilirim. bunu mesajlarındai terimleri yanlış kullanmasından anamak bilen adam için hiç zor değil. mesela demişki, "
PHP'nin en verimli çalıltığı Structured Query language (MySQL) diyelim.."
iyide arkadaşım Structured Query language ile MySQL aynı şey değil ki. Structured Query language (SQL) yapısal sorgu dili demektir ve veritabanına erişim sağlayan programlama teknolojilerinin kullandığı bir sorgulama dilidir. yani asp de kullansanız php de kullansanız veritabanına erişecekseniz SQL kullanırsınız. MySQL ise genellikle PHP ile kodlanan projelerde tercih edilen veritabanı yazılımıdır. yani SQL ile MySQL in isim benzerliği dışında birbirine yakın hiçbir noktası yoktur. Birde demişki arkadaşımız GET/POST açıkları
böle bi tabir yok. bu temel olarak SQL INJECTION olarak bilinen SQL sorgularının bypass edilmesi sonucunda yetki dışı veritabanına erişmek için kullanılan bir yöntemdir. verdiği kod örneği sql injection için bir önlemdir ve doğrudur. ancak injectiondan korunmak bu kadar kolay iken sizce işi bilen bir saldırgan injectionla vakit kaybeder mi ? cevabı ben vereyim. HAYIR!!! şu güvenlik açıklarını tespit ettiği söylenen programlar ise hiç bir işe yaramamaktadır. onlarla uğraşarak kaybedeceğiniz zamanı internette sunucu ve kod güvenliği üzerine araştırma yaparak değerlendirmeniz hem daha iyi sonuçlar almanızı hemde alacağınız tedbirlerin mantığını anlamanız açısından sonraki projeleriniz için daha iyi olacağı kanısındayım. recep arkadaşımız kusura bakmasın ona saldırmış gibi oldum ama amacım asla bu değil. sadece güvenlik gibi hassas bi konuda yetkin olmadan yazmasını yanlış buluyorum.
Saygılar
böle bi tabir yok. bu temel olarak SQL INJECTION olarak bilinen SQL sorgularının bypass edilmesi sonucunda yetki dışı veritabanına erişmek için kullanılan bir yöntemdir. verdiği kod örneği sql injection için bir önlemdir ve doğrudur. ancak injectiondan korunmak bu kadar kolay iken sizce işi bilen bir saldırgan injectionla vakit kaybeder mi ? cevabı ben vereyim. HAYIR!!! şu güvenlik açıklarını tespit ettiği söylenen programlar ise hiç bir işe yaramamaktadır. onlarla uğraşarak kaybedeceğiniz zamanı internette sunucu ve kod güvenliği üzerine araştırma yaparak değerlendirmeniz hem daha iyi sonuçlar almanızı hemde alacağınız tedbirlerin mantığını anlamanız açısından sonraki projeleriniz için daha iyi olacağı kanısındayım. recep arkadaşımız kusura bakmasın ona saldırmış gibi oldum ama amacım asla bu değil. sadece güvenlik gibi hassas bi konuda yetkin olmadan yazmasını yanlış buluyorum.