Pages

Selasa, 05 Februari 2013

Serangan Menggunakan SQL Injection

Dalam dunia hacking ada berbagai macam cara untuk menembus suatu jaringan, salah satunya adalah SQL Injection. SQL merupakan bahasa yang digunakan untuk pengolahan data pada database server. sedangkan SQL Injection merupakan salah satu teknik penyerangan pada jaringan dengan cara menyisipkan kode-kode pada jaringan tersebut. SQL Injection dapat berjalan pada MYSQL maupun MSSQL.

Langkah pertama anda tetapkanlah target yang ingin anda tembus.
perlu diingat tidak semua situs dapat kita tembus dengan teknik ini, tetapi jika situs tersebut mempunyai keamanan yang kurang, mungkin teknik ini dapat kita lakukan. 
Untuk mengetahui apakah situs tersebut dapat ditembus atau tidak. kita hanya perlu menambahan tanda petik pada akhir url target.





misalnya anda ingin menembus situs ini



untuk melihat apakah situs tersebut dapat ditembus ataupun tidak, kita cukup menambahkan tanda petik pada akhir url, sehingga menjadi:




Lihatlah perbedaan kedua URL tersebut setelah dijalankan. tampilannyapun akan berbeda, URL yang tanpa petik akan menampilkan apa yang ada didsitus tersebut, yaitu akan memanggil id 31 pada database situs tersebut, sedangkan jika kita tambahkan kutip diakhir url, akan muncul peringatan error. peringatan tersebut menunjukkan bahwa kemungkinan besar situs tersebut dapat kita exploitasi menggunakan SQL Injection.

Langkah selanjutnya adalah menghitung jumlah kolom pada target tersebut, untuk itu kita gunakan perintah order by . Namun perlu anda ingat, anda harus menyisipkan tanda negatif setelah tanda samadengan dan angka input, sihingga URLnya menjadi:


gantilah spasi dengan tanda plus, dan akhiri perintah dengan double minus.
angka 1 tersebut menunjukkan kolom ke-1,
saat anda mengakses url tersebut belum menemukan pesan error, maka naikkan angkanya menjadi 2,3 dan seterusnya sampai menemukan pesan erorr.
pada situs ini saya menemukan pesan eror pada kolom ke-empat, ini berarti situs tersebut memiliki 3 kolom, yaitu 1,2,dan 3.



Setelah anda mendapatkan kolom-kolom yang tidak memunculkan pesan eror, sekarang anda harus mencari angka ajaib yang akan anda gunakan untuk menyisipkan syntax SQL.  perintah untuk memunculkan pesan ini yaitu:

+union+all+select+1,....,n--

n merupakan kolom terakhir sebelum muncul pesan error, sehingga url anda menjadi:


setelah anda memasukkan url tersebut akan tampil angka 2 dan 3. Angka tersebut adalah angka-angka yang dapat kita ganti dengan syntax SQL untuk mendapatkan data dari server tersebut.

syntax yang sering digunakan untuk SQL Injection adalah

version()   =  menampilkan versi MYSQL yang digunakan
Database = menampikan nama database yang digunakan
User()       =  menampilkan username
Concat()   = menampilkan suatu data dari kolom tertentu

sekarang anda sudah dapat mendapatkan kolom dan angka ajaib tersbut.
sekarang bagaimana cara untuk mengetaui versi MYSQL yang digunakan pada situs tersebut..
untuk mengetahuinya anda dapat gunakan perintah version()  

sehingga akan tampl seperti ini:


tampilan tersebut menunjukkan versi MySQL yang digunakan dari situs tersebut

langkah selanjutnya adalah mencari tau nama database yang digunakan pada situs tersebut.

gunakanlah perintah:

uniton+all+select+group-concat(schema_name)+
from+information-schema.schemata--

sehingga akan tampil seperti ini:



setelah itu akan tampil  information_blackhat. 
nama database tersebut telah kita dapatkan, yaitu blackhat.

Begitu seterusnya, 
jika anda ingin mencari nama tabel, anda dapat gunakan perintah:

+union+all+select+group_concat(table_name)+
from+information.schema.tables+where+table+schema=database()--

sekarang jika anda ingin mencari nama kolom pada situs tersebut, anda harus menconvert nama tabel target anda dari ASCII ke hexadesimal. 
anda dapat menggunakan layanan DISINI

jika sudah berhasil konvert, 
selanjutnya anda ketikkan perintah ini pada situs tersebut:

+union+all+select+group_concat(column_name)+
from+information_schema.columns+where+
table_name=0x[hasil_konversi_ke_hex]

sekarang tinggal sedikit lagi anda dapat menembus situs tersebut.
tinggal tambahkan sentuhan terakhir ini, maka anda akan mendapatkan apa yang anda inginkan.

langkah terakhr tersbut anda harus menampilkan data dengan perintah:

+union+all+select+concat
(nama_kolom_ke_1.0x3a.nama_kolom_ke_n)+from+nama_tabel--

0x3a merupakan pembatas antara id dan title,  
3a merupakan konversi kebentuk hex.
anda dapat mengubahnya sesuai keinginan anda.

mungkin sedikit rumit, tetapi jika anda terus melatihnya,
anda akan menjadi mahir dan akan mempunyai kemampuan untuk menembus suatu situs dengan SQL Injection.

saya menulis artikel ini bukanlah untuk disalahgunakan, 
seperti pisau bermata dua. ilmu yang kita pelajari dapat digunakan untuk kebaikan atau keburukan. kembali pada diri kalian masing-masing.
semoga artikel ini dapat bermanfaat :)

Tidak ada komentar:

Posting Komentar

Semua Artikel Diblog ini boleh disebarluaskan,
asal mencantumkan sumbernya.

Terima kasih atas kunjungannya
Semoga artikel dblog ini bisa bermanfaat buat kita semua.
mohon kritik dan sarannya.
salam kenal dan salam Blogger Indonesia