|
|
Yayınlandı 17.06.2023 11:10:55
|
|
|
|

Gereksinimler: Web sitesi arayüzlerini enjeksiyon riskleri açısından test etmek için SQL Map açık kaynak sızma testi aracını kullanın. SQL enjeksiyonu, web uygulamasının kullanıcının giriş verilerinin meşruiyetini yargılamaması veya filtrelemenin katı olmaması anlamına gelir; saldırgan, web uygulamasında önceden tanımlanmış sorgu ifadesinin sonuna ek SQL ifadeleri ekleyebilir ve yöneticinin bilgisi olmadan yasa dışı işlemler uygulayarak veritabanı sunucusunu yetkisiz keyfi sorgular yürütmeye kandırabilir ve böylece ilgili veri bilgilerini daha fazla elde edebilir. Kısacası, öyleArka uç arayüzü, istenen parametreleri birleştirerek SQL ifadelerini çalıştırır。
Eleştiri:
SQLMAP, SQL enjeksiyon açıklarını tespit etme ve kullanma süreçlerini otomatikleştiren açık kaynaklı bir sızma testi aracıdır ve veritabanı sunucularını ele geçirme sürecini otomatikleştirir. Güçlü bir tespit motoru, nihai penetrasyon testerinin birçok niş özelliği ve veritabanı parmak izi, veri tabanlarından veri getirme, temel dosya sistemine erişim ve bant dışı bağlantılar üzerinden işletim sisteminde komutların çalıştırılması gibi geniş bir anahtar yelpazesiyle gelir.
SQLMAP kutudan çıkar çıkmaz çalışır ve her platformda çalışırPython sürümleri 2.6, 2.7 ve 3.x。
SQLMAP çevre inşası
Python indirme:Bağlantı girişi görünür.
SQLMAP açık kaynak adresi:Bağlantı girişi görünür. SQLMAP komut dokümantasyonu:Bağlantı girişi görünür.
Öncelikle, bilgisayar Python'u (atlanmış) yüklemeli, ardından git komutunu kullanarak kaynak kodunu indirmelidir, aşağıdaki gibi:
Seçenekler:
-h, --yardım Temel yardım mesajını göster ve çıkış -----Temel yardım mesajını göster ve çıkış -hh Gelişmiş yardım mesajını göster ve çıkış----- --versiyon versiyonunu görmek için----------- Programın sürüm numarasını göster ve çıkış -v VERBOSE detay seviyesi (0-6, varsayılan 1) --Sözlük seviyesi: 0-6 (varsayılan 1)
Hedef:
Hedef URL'yi belirlemek için en az aşağıdaki seçeneklerden biri ayarlanmalıdır: Normal şekilde kullanılabilmek için SQLMap işlem komutunda en az biri aşağıdaki seçeneklerden biri dahil edilmeli
-d Doğrudan veritabanı bağlantısı için DIRECT Bağlantı dizisi------------------- -u URL, --url=URL Hedef URL --------------------- Hedef URL (ör. "http://www.site.com/vuln.php?id=1") -l LOGFILE Burp veya WebScarab proxy log dosyasından hedef (hedef(ler)i ayrıştır ---- bir Burp veya başka bir proxy'nin log dosyasından hedef -x SITEMAPURL, hedefi uzak sitemap(.xml) dosyasından ayrıştırır --Hedef(ler) uzak sitemap(.xml) dosyasından ayrıştırır BULKFILE -------- metinsel dosyada verilen birden fazla hedefi tara -r REQUESTFILE Bir dosyadan HTTP isteği yükle ---------------Bir dosyadan HTTP isteği yükle -g GOOGLEDORK Google dork sonuçlarını hedef URL olarak işle--- -c CONFIGFILE Yapılandırma INI dosyasından seçenekleri yükle -------------- Yapılandırma INI dosyasından seçenekleri yükleme
İstek:
Aşağıdaki seçenekler, hedef URL'ye nasıl bağlanacağını belirtir
--method=METHOD Verilen HTTP yönteminin (örneğin PUT) kullanımını zorla kullanın------------------ --data=DATA veri dizisi POST yöntemiyle gönderilecek------------------ --param-del=PARA.. Parametre değerlerini ayırmak için sembol ayarlayın-------------------- Parametre değerlerini bölmek için kullanılan karakter --cookie=COOKIE, HTTP çerez değerini ---------------------- HTTP çerez başlığı değerini belirtir --cookie-del=COO.. Kurabiye değerlerini bölmek için kullanılan karakter------------------ SQLMAP kullanarak bir enjeksiyon noktası test edilirken, -v x parametresini kullanarak yankı bilgisinin karmaşıklığını belirtebilirsiniz; bu seviye [0~6] ile 7 arasında değişir ve varsayılan olarak 1 olur.
0: Sadece python hataları ve kritik bilgiler gösterilir. 1: Hem temel bilgileri hem de uyarı bilgilerini gösterin. (varsayılan) 2: Hata ayıklama bilgisini aynı anda gösterin. 3: Enjekte edilen yük aynı anda görüntülenir. 4: HTTP isteklerini aynı anda gösterin. 5: HTTP yanıt başlığını aynı anda gösterin. 6: HTTP yanıt sayfasını aynı anda gösterin.
ASP.NET Çekirdek enjeksiyon ortamı kurulumu
ASP.NET Core kullanarak yeni bir web projesi oluşturun, enjeksiyonlu bir arayüz yazın ve kaynak kodu şu şekildedir:
Test arayüzü:
Yaygın kullanılan penetrasyon testleri
DBMS veritabanlarını saymak
Ve aşağıdaki şekilde gösterildiği gibi SQL Server Profili kullanılarak SQL'in çalıştırılmasını yakalayın:
select * from [Users] burada [Username] = 'itsvse' UNION ALL SELECT NULL,NULL,CHAR(113)+CHAR(98)+CHAR(122)+CHAR(118)+CHAR(113)+(SELECT name FROM master.. SYSDATABASES FOR JSON AUTO, INCLUDE_NULL_VALUES)+CHAR(113)+CHAR(113)+CHAR(118)+CHAR(120)+CHAR(113)-- yHIm'
Belirlenen veritabanının tablolarını sıralayın
Komut şöyledir:
Karmaşık HTTP istekleri için-r parametresi aracılığıyla(Dosyalardan HTTP istekleri yükleniyor,Paket HTTP isteklerini yakalamak için Burp Suite aracını kullanın) ve orijinal HTTP isteğini bir metin dosyasından yüklemek için kullanılır. Bu, birçok diğer seçeneğin (örneğin çerez ayarları, yayınlanmış veriler vb.) kullanımını atlamanıza olanak tanır.
SQL Map güçlüdür, daha gelişmiş özellikler için dokümantasyona bakabilirsiniz. (Son)
|
Önceki:EF 6, yerel SQL ifadeleri ve parametre enjeksiyon problemleri çalıştırırÖnümüzdeki:[Aktar] MySQL İleriye: tablo komutunu optimize et
|