Since 2017

BLANTERWISDOM101

Eksploitasi Celah No Redirect pada Sesi Admin

Minggu, 07 November 2021


Suatu celah keamanan bisa dikatakan sangat berbahaya bagi sebagian besar perusahaan atau organisasi besar di dunia. Bagaimana tidak, jika celah tersebut dapat dieksekusi dengan mudah oleh penyerang maka dapat membahayakan server website khususnya aset pada situs tersebut.

Banyak CMS juga bermunculan untuk mempermudah kita dalam mengelola website. Namun, kita juga tahu tidak semuanya sempurna, pasti ada titik dimana versi CMS tersebut memiliki celah keamanan yang fatal.

Deskripsi Bug

No Redirect, salah satu celah keamanan yang sangat mudah dieksekusi penyerang dan sangat berbahaya bagi situs yang dikelola. Bagaimana mungkin? Ya, penyerang dapat meng utak-atik situs secara sembrono dengan mengakses halaman admin secara langsung tanpa autentikasi login menggunakan sesi user.

Eksploitasi dilakukan menggunakan sesi yang ada. Celah ini didapat dari sesi pengguna yang tidak hilang sehingga saat penyerang mengirim request secara dinamis terhadap server maka dia dapat mengaksesnya. Wow! Sungguh sangat membagongkan.

Cara Eksploitasi

Oke, hanya untuk sebagai pembelajaran di sini saya menggunakan situs elearning.tpi.sch.id. Dimana letak celah keamanan tersebut? Tentu saja pada halaman admin.

Celah yang sangat fatal. Situs ini menggunakan LMS (Learning Management System) CandyCBT dan pastinya berbasis server CBT untuk keperluan e-learning atau ujian online. Sepertinya mereka menggunakan CandyCBT versi lama atau mungkin memang versi terbarunya juga masih memiliki celah tersebut. Saya sempat berbincang dengan teman saya Hari yang ahli dalam riset uji penetrasi pada CMS yang ada di Indonesia. Karena belum begitu paham tentang CandyCBT ini.


Saat mengakses halaman admin maka kita akan dialihkan ke halaman login.php. Kita menggunakan sesi yang tidak dimatikan ke index.php pada admin. Kita bisa eksekusi menggunakan cURL.
curl http://elearning.tpi.sch.id/admin/index.php -v 

Oke, kita bisa simpan sumber kode untuk mempermudah kita dalam melihat apakah benar website memiliki celah tersebut. Jika iya, maka pasti ada sesi logout atau mungkin ada teks "Admin" pada sumber kode. Mudah saja, cukup tambahkan perintah output file yang ada di Linux seperti pada contoh:

curl http://elearning.tpi.sch.id/admin/index.php -v > tpi.php

Hasil bisa kita lihat dengan membuka file tpi.php.



Disitu ada tertulis "Admin" dan "logout" berarti sesi kita berhasil mengakses halaman kelola admin.

Hal ini menyebabkan penyerang dapat mengupload file atau menginjeksi situs menggunakan form yang tertera. Kamu juga bisa memakai addon Hackbar No Redirect untuk firefox pada desktop. Dengan ini kamu bisa dengan mudah utak-atik situs.

Jika kamu adalah bukan orang yang ingin repot dengan perintah pada linux. Maka kamu bisa menguji celah keamanan ini pada Aplikasi berikut yang kami buat pada versi web.

Cara Memperbaiki Masalah

Berhubungan dengan sesi pada user, yang kemungkinan sesi tersebut tidak dipotong atau dihapus untuk client yang belum mengaksesnya. Maka seperti contoh berikut kita bisa menggunakan fungsi exit() atau die().

<?
if(!isset($_SESSION["user"])){
  session_destroy();
  die();
}
?>

Kamu bisa mencari website yang memiliki celah tersebut dengan menggunakan dork seperti contoh pada dork berikut. Dan ketikkan di search engine.

  • inurl:/admin/index.php
  • inurl:/admin/login.php
  • inurl:/admin/dashboard.php
  • inurl:/dashboard

Share This :
Arya Kresna

Hanya seorang pelajar yang hobi nya membuat kode dan berharap karya nya bermanfaat bagi orang lain.

0 komentar

Berkomentar dengan bahasa yang baik dan benar sangat diperlukan