Sqlmap

SQL Injection tespit etme ve sonrasında exploit etmek için en çok kullanılan araç olan sqlmap’den bahsedeceğiz. Bir senaryo üzerinden anlatmaya başlayalım …

Test edeceğimiz form alanı aşağıdaki gibi olsun.

1 3 - Sqlmap

Girdi alanlarını doldurup rasgele doldurup Burp proxy ile araya girelim. Daha sonrada sağ tıklayıp Copy to file diyerek isteği bilgisayarımıza kaydedelim.

2 5 - Sqlmap

Yukarıdaki resimdende de göreceğiniz üzere bir GET isteği yapılıyor. Şimdi sıra geldi sqlmap’i kullanmaya.

Sql injection tespit etme

Basitçe tespit etmek için aşağıdaki iki seçenekten birini kullanabilirsiniz. İsterseniz -u parametresi ile URL adresini verebilir, isterseniz -r parametresiyle de herhangi bir dosya verebilirsiniz. Bundan sonraki örnekleri ikinci seçeneği kullanarak gerçekleştireceğim.

sqlmap -u 'https://192.168.47.131:80/mutillidae/index.php?page=user-info.php&username=deneme&password=deneme2&user-info-php-submit-button=View+Account+Details'
sqlmap -r istegim

3 4 - Sqlmap

Yukarıdaki ekran görüntüsü bize form’da başarılı sql injection yöntemlerini ve payload’larını gösteriyor.

Parametre vererek tespit etme

Gördüğünüz üzere yukarıdaki örneğimizde 2 adet parametre vardı. Eğer spesifik bir parametre belirtmek isterseniz -p parametresini kullanabilirsiniz.

sqlmap -r istegim -p username

Fingerprinting

sqlmap çeşitli metotlarla back end de yer alan db ‘nin versiyonu varsayılan olarak yapıyor. Ancak –fingerprint diyerek işletim sistemi ve db hakkında daha detaylı bilgiye de ulaşabilirsiniz.

4 4 - Sqlmap

Database, Tablo, Kolon Tespiti ve Dump etme

Inject edilebilen db sunucusundaki tüm database’leri görüntülemek için –dbs parametresini kullanırız.

5 5 - Sqlmap

Tüm db’lere ait tüm tabloları görüntülemek için ise –tables parametresini kullanırız.

6 4 - Sqlmap

Tüm kolonları görüntüklemek için –columns parametresini kullanırız.

Yukarıdaki seçenekler tüm db’leri,tabloları ve kolonları göstermek adınaydı. İsterseniz spesifik bir database ‘i -D parametresiyle , tabloyu -T parametresiyle, kolonu -C parametresiyle belirleyebilirsiniz.

7 3 - Sqlmap

Database’i dump etmek için –-dump veya –dump-all parametrelerini kullanabilirsiniz.

8 2 - Sqlmap

Mevcut database ve kullanıcıyı görüntüleme

Inject ettiğimiz formun olduğu mevcut database’i –current-db, kullanıcıyı ise –current-user parametreleriyle görüntüleyebiliriz.

4 5 - Sqlmap

Kullanıcının DBA olup olmadığını tespit etme

Oturum kurulan mevcut kullanıcının DBA olup olmadığını –is-dba parametresiyle test edebilirsiniz.

5 6 - Sqlmap

DBMS kullanıcılarını görme

Mevcut kullanıcınızın yetkisi varsa dbms’deki tüm kullanıcıları görüntelemek için –users parametresini kullanabilirsiniz.

6 5 - Sqlmap

DBMS kullanıcılarının parolalarını kırma

DBMS ‘deki tüm kullanıcıların parolalarını kırmayı denemek için –passwords parametresini kullanabilirsiniz. Spesifik bir kullanıcıyı belirtmek için -U parametresiyle birlikte kullanabilirsiniz.

7 4 - Sqlmap

DBMS kullanıcılarının yetkilerini görme

DBMS ‘deki kullanıcıların yetkilerini görmek için –privileges parametresini kullanabilirsiniz. Spesifik bir kullanıcı yetkilerini görmek isterseniz de -U parametresiyle kullanıcıyı belirteebilirsiniz.

8 3 - Sqlmap

User-agent ve Cookie belirleme

Bazı durumlarda user-agent’ınız engellenmiş olabilir ya da sunucu belirli bir agent’dan gelen isteklere cevap verebilir. sqlmap’de user-agent bilginizi –user-agent parametresiyle belirleyebilirsiniz. İsterseniz de  –random-agent diyerek sqlmap altında yer alan user-agent.txt dosyası içerisindeki agent’lardan rasgele seçebilirsiniz.Cookie belirlemek için ise –cookie parametresini kullanabilirsiniz.

9 2 - Sqlmap

Sistemden dosya okuma ve sisteme dosya ekleme

Database’den bir dosya okumak için –file-read parametresini kullanabilirsiniz

10 3 - Sqlmap

Database’e dosya sistemimizden db sistemine dosya eklemek için –file-write parametresini, karşı sunucudaki konumunu –file-dest parametresiyle belirterek birlikte kullanırız.c

2 6 - Sqlmap

DB Shell’ine düşme

Sql injection yararlanıp shell düşmeyi denemek için –sql-shell parametresini kullanabilirsiniz. Sql sorguları gerçekleştirebilirsiniz.

3 5 - Sqlmap

Tor ile çalıştırma

sqlmap ile tor ile kullanmak için isterseniz tor uygulaması arkaplanda gelen istekleri dinliyorken  –tor parametresini kullanabilirsiniz. Bunun yanı sıra proxychain benzeri bir istemci de kullanabilirsiniz.

proxychain - Sqlmap