Take over Admin Account memanfaatkan SQL Truncation



Kesalahan koding, pesan kesalahan yang kurang tepat pada sebuah website, serta kesalahan konfigurasi database bisa berakibat fatal. Ditulis oleh Rizky Aditiyan


Kesalahan koding, pesan kesalahan yang kurang tepat pada sebuah website, serta kesalahan konfigurasi database bisa menjadi pasangan serasi bagi hacker untuk melakukan sebuah serangan, misalkan melakukan percobaan take over sebuah account.

Contoh kasus berikut bisa kita lihat pada website http://book.htb, pada source code aplikasi memberitahu batasan karakter pada form nama dan email untuk menu registrasi user.

 
 

Hal ini dapat dimanfaatkan oleh hacker untuk mencoba melakukan serangan SQL Truncation. Serangan ini berpotensi terjadi karena tidak adanya filtering pada aplikasi serta memanipulasi pemotongan karakter di database salah satunya pada proses registrasi.

Penyerang biasanya akan mencoba registrasi user default, biasanya “admin” lalu diikuti nama domainnya, misalkan admin@book.htb.

 

Dengan diketahuinya akun admin adalah “admin@book.htb”, kemudian penyerang bisa memanfaatkan kurang maksimalnya filtering pada aplikasi, penyerang akan menggunakan character “+”. Char ini akan dianggap null oleh database.

Di sini aplikasi hanya akan menerima hingga 20 karakter untuk form email, dan sisanya dari karakter, yang merupakan ‘+++++++a’, akan diabaikan sehingga char akan dimasukkan dalam database adalah ‘admin@book.htb’.

Penyerang login sebagai admin menggunakan email “admin@book.htb” dengan password “1234” dan berhasil melakukan take over account admin website.

 

Mitigasi dari kejadian diatas :
1. Pastikan filtering pada aplikasi berjalan dengan baik, khususnya untuk handling special character pada tiap form yang disediakan.
2. Pastikan aplikasi tidak memberikan informasi penting pada pesan kesalahan.
3. Memastikan konfigurasi Database sudah dilakukan dengan sangat proper.