Sıfırdan SQLMap

  • Konuyu Başlatan Konuyu Başlatan zed
  • Başlangıç tarihi Başlangıç tarihi

zed

Editör
Katılım
9 Eylül 2026
Mesajlar
10
Tepkime puanı
28
Puan
9
  • Kurucu Üye
1789327169467.webp

SQLMap Nedir?​

Sqlmap_logo.webp


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.
kısmındaki adres ve port bilgisi, kişinin kendi bilgisayarında çalıştırdığı proxy aracının adresine göre değiştirilir. Örneğin Burp Suite kullanılıyorsa genellikle 127.0.0.1:8080 adresi kullanılır, ama farklı bir araç veya port kullanılıyorsa buraya onun bilgisi yazılmalıdır.
1789327169467.webp
​

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:
Eline sağlık. Yasal uyarı alanı eklemeni ayrıca takdir ettim. Dikkat edilmesi gereken hususlar ne yazıkki, sorumluluk bize ait olmaktan çıkıyor böylelikle. Tebrikler.
 
  • Beğen
Tepkiler: zed
Benim merak ettiğim mesela bir aralar sahte SQL hataları ile sisteme sızmak isteyen kişileri günlerce oyalama taktiği vardı acaba bu taktiği farkedecek bir sistem SQLMap içerisinde var mı?
 

SQLMap Nedir?​

Ekli dosyayı görüntüle 500

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.
kısmındaki adres ve port bilgisi, kişinin kendi bilgisayarında çalıştırdığı proxy aracının adresine göre değiştirilir. Örneğin Burp Suite kullanılıyorsa genellikle 127.0.0.1:8080 adresi kullanılır, ama farklı bir araç veya port kullanılıyorsa buraya onun bilgisi yazılmalıdır.Ekli dosyayı görüntüle 502
​

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.​
Elinize sağlık hocam Teşekkürler
 
Geri
Üst