Bagikan Artikel ini ke teman Anda...!!!
setelah kemarin saya membahas Art of Social Engineering. kali ini saya akan menshare tentang SQL injection, cara untuk defacing web. berikut penjelasanya.Dalam dunia information technology (IT) kata hacker adalah sesuatu yang tidak asing lagi ditelinga kita. Hacking dapat digolongkan ke dalam cybercrime mengingat bahwa adanya akses secara tidak sah terhadap sistem komputer dan tidak jarang pula terjadi perusakan data maupun intersepsi secara tidak sah terhadap suatu sistem database. Namun, jika dulu Hacker yang dulu dipandang sebagai penjahat, pencuri atau pembobol suatu system komputer sekarang sudah bergeser , keberadaan hacker yang identik dengan aktifitas underground kini sudah mulai menampakan diri , sebagai contoh dinegara negara maju , perusahaan perusahaan besar yang mempunyai system komputer yang besar sudah mulai menyewa hacker – hacker untuk mencari kelemahan kelemahan system mereka. Ada beberapa teknik yang dilakukan para hacker diantaranya adalah SQL Injection.Tehnik hacking sql injection mulai mencuat kepermukaan semenjak dijebolnya situs KPU pada pemilu putaran pertama kemarin oleh Dani Firmansyah atau Xnuxer , dengan teknik ini beliau dapat masuk sebagai web administrator tanpa susah payah scan port – port yang terbuka , tanpa terdeteksi oleh firewall dan tanpa tool ke situs tersebut yang konon system yang seharga 152 milyar itu keamanannya berlapis lapis . Teknik ini memungkinkan kita masuk ke suatu system yang terproteksi sebagai siapa saja dengan hanya mengetahui username tanpa harus mengetahui passwordnya bahkan kita juga bisa login tanpa perlu mengetahui username dan password sama sekali.Teknik ini dianggap sebagai teknik tantangan utama bagi seorang hacker untuk menembus jaringan karena setiap jaringan mempunyai sistem keamanan yang berbeda-beda serta menunjukkan sejauh mana kemampuan operator jaringan, sehingga apabila seorang hacker dapat masuk ke dalam jaringan tersebut dapat dikatakan kemampuan hacker lebih tinggi dari operator jaringan yang dimasuki.Cara Kerja
statement := “SELECT * FROM users WHERE name = ‘” + userName + “‘;”-Di User Name dan Password :Input User : a’ or ‘t’='t Instruksi SQL : SELECT * FROM users WHERE name=’a'OR’t'=’t';-Delete Table SQL :Input User : a’;DROP TABLE users; SELECT * FROM data WHERE name LIKE ‘%’: Instruksi SQL : SELECT * FROM users WHERE name = ‘a’;DROP TABLE users; SELECT * FROMDATAWHERE name LIKE’%';Bentuk Penanganan yang Tidak Benar ~ Incorrect type handling. Bentuk ini akan muncul pada saat user memasukkan karakter string dengan tipe data yang tidak sama atau tipe data string tersebut tidak periksa batasannya oleh programmer.Contoh :
statement := “SELECT * FROM data WHERE id = ” + a_variable + “;” dan 1;DROP TABLE users maka SELECT * FROMDATAWHERE id = 1;DROP TABLE users;Celah Keamanan berada didalam Server Basis Datanya ~ Vulnerabilities inside the database server.Biasanya celah keamanan bisa terjadi dalam software server database itu sendiri, seperti: MySQL Server didalam salah satu instruksi fungsi SQL berikut :mysql_real_escape_string().Bagian ini yang biasanya penyerang berhasil menembus dengan memasukkan karakter-karakter string biasa maupun karakter string kosong.Penyamaran SQL Injection ~ Blind SQL InjectionInjeksi ini biasanya dilakukan terhadap aplikasi web, yang hasil attack-nya tidak ditampilkan secara langsung namun disamarkan dalam bentuk halaman lain.
Respon Logika Kondisi ~ Conditional ResponsesSalah satu teknik untuk mengevaluasi statement logika pada tingkat aplikasi yang sama pada layer.Contoh :
SELECT booktitle FROM booklist WHERE bookId = ‘OOk14cd’AND1=1Hasilnya : Berupa halaman web normal.SELECT booktitle FROM booklist WHERE bookId = ‘OOk14cd’AND1=2Kesalahan Logika ~ Conditional ErrorsPemaksaan ini akan mengakibatkan database error untuk mengevaluasi pernyataan yang menyebabkan error apabila pernyataan WHERE adalah true.Contoh :
SELECT 1/0 FROM users WHERE username=’Ralph’Jeda Waktu ~ Time DelaysPemaksaan ini mengakibatkan engine database SQL menjalankan proses secara terus-menerus samapai beberapa lama ataupun berdasarkan jeda waktu yang diinjeksikan terhadap query tersebut.Untuk mengetahui lebih dalam tentang cara kerja SQL Injection dapat anda pelajari disini http://www.unixwiz.net/techtips/sql-injection.html
Sebagai administrator ada beberapa cara yang mungkin dapat membantu mengatasi SQL injection ada beberapa cara, antara lain :
- Attack dilakukan dilapisan basis data dan aplikasinya.
- Attack dilakukan berbentuk penyisipan instruksi-instruksi SQL berupa karakter-karakter khusus atau karakter-karakter logika dalam password.

- Untuk variable berupa angka yang di lewatkan pada URL address(metode get) misal http://www.contoh.org?pid=30 , pid di parsing ke integer terlebih dahulu sebelum masuk ke query. (semua ini berlaku juga untuk metode post)
- Atau bisa juga sebelum masuk ke query, variable dengan metode get di lewatkan ke fungsi mysql_escape_string untuk mengubah variable sebagai string yang tidak akan di eksekusi. bentuknya $pid = mysql_escape_string($_GET['pid']).
- Database yang di publish di front, baiknya di set read only pada user databasenya, kecuali pada bagian yang membutuhkan write ke database.
- Buat fungsi untuk filter kata2 update,delete,insert,grant dll dalam variable yg masuk dalam query.
0 komentar:
Posting Komentar