Execution After Redirect with Burp Suite

Execution After Redirect with Burp Suite

Execution After Redirect atau EAR adalah teknik yang digunakan untuk mengeksekusi kode setelah proses redirect. Teknik ini biasanya digunakan untuk bypass beberapa fitur keamanan yang ada pada aplikasi web. Pada artikel ini, kita akan membahas bagaimana melakukan exploitasi EAR menggunakan Burp Suite.

Apa itu Execution After Redirect (EAR)?

Execution After Redirect biasanya ditemui pada aplikasi web dengan style code native yang menggunakan mekanisme redirect untuk mengarahkan user ke halaman lain setelah melakukan proses tertentu, seperti setelah login atau registrasi. Pada beberapa kasus, aplikasi web tidak memanggil fungsi exit() atau die() setelah melakukan proses redirect, sehingga kode yang ada setelah proses redirect tetap dieksekusi.

Paling umum terjadi EAR pada akses dashboard yang memiliki validasi session, jika sesi tidak valid, maka aplikasi web akan melakukan redirect ke halaman login. Namun, jika aplikasi web tidak memanggil fungsi exit() atau die() setelah melakukan proses redirect, maka kode yang ada setelah proses redirect tetap dieksekusi. Hal ini dapat dimanfaatkan oleh penyerang untuk melakukan exploitasi EAR.

Untuk detail bacaan lebih lanjut mengenai EAR, Anda dapat merujuk ke OWASP.

Contoh Kasus Execution After Redirect

Berikut adalah contoh sederhana dari EAR:

<?php
session_start();
if (!isset($_SESSION['user'])) {
    header('Location: index.php');
    // exit(); // Jika fungsi exit tidak dipanggil, maka kode di bawah ini tetap dieksekusi
}
echo "Welcome to the dashboard!";
?>

Pada kode di atas, jika user tidak memiliki session yang valid, maka aplikasi web akan melakukan redirect ke halaman login. Namun, karena fungsi exit() tidak dipanggil setelah proses redirect, maka kode echo "Welcome to the dashboard!"; tetap dieksekusi. Hal ini dapat dimanfaatkan oleh penyerang untuk melakukan exploitasi pada kerentanan ini.

Umumnya pada real-world application, data yang ditampilkan tidak hanya welcome to the dashboard namun kadang berisi dashboard CMS itu sendiri tanpa harus melakukan authentikasi terlebih dahulu. Hal ini dapat digunakan penyerang untuk melakukan serangan lanjutan seperti mencari fitur upload file, mengakses data sensitif, atau melakukan tindakan lain untuk mendapatkan akses yang lebih dalam ke aplikasi web maupun server yang menjalankan aplikasi tersebut.

Exploitasi EAR dengan Burp Suite

Seperti yang kita ketahui, Burp Suite adalah sebuah tool yang sering digunakan oleh para pentester untuk melakukan penetration testing pada aplikasi web. Salah satu fitur yang dimiliki oleh Burp Suite dan menjadi favorit para pentester adalah fitur Proxy. Fitur ini memungkinkan kita untuk melakukan intercept terhadap request dan response yang dikirimkan oleh aplikasi web.

Untuk melakukan exploitasi EAR menggunakan Burp Suite, kita perlu melakukan beberapa langkah berikut:

  1. Buka Burp Suite dan aktifkan fitur Proxy.
  2. Buka browser dan atur proxy ke localhost dengan port yang digunakan oleh Burp Suite.
  3. Lakukan request ke aplikasi web yang ingin diuji, lalu akses halaman yang memiliki potensi EAR, seperti halaman dashboard yang memerlukan autentikasi.
  4. Pada Burp Suite carilah response yang mengandung parameter yang dapat dimanipulasi untuk melakukan EAR. seperti parameter redirect pada HTTP response header, javascript redirect atupun response code HTTP 302.
    Image
  5. Modifikasi request tersebut dengan menghapus parameter redirect atau merubah nilai untuk menghindari proses redirection.
  6. Kirimkan request tersebut dan kita akan melihat bahwa kode setelah proses redirect akan dieksekusi karena parameter redirect telah dihapus.
  7. Agar lebih enak dalam melakukan exploitasi EAR, kita dapat menggunakan match and replace pada fitur Proxy di Burp Suite untuk secara otomatis menghapus parameter redirect pada setiap request yang dikirimkan, sehinnga kita tidak perlu melakukan modifikasi manual setiap kali mengirimkan request.
    Image

Dengan melakukan exploitasi EAR, kita dapat melakukan bypass terhadap beberapa fitur keamanan yang ada pada aplikasi web. Oleh karena itu, sangat penting bagi para pengembang aplikasi web untuk memperhatikan keamanan aplikasi mereka dan mencegah terjadinya exploitasi EAR.

Image

Cara Mencegah Execution After Redirect

Untuk terhindar dari serangan EAR, para pengembang aplikasi web dapat melakukan beberapa langkah berikut:

  1. Memanggil fungsi exit() atau die() setelah melakukan proses redirect untuk memastikan bahwa tidak ada kode yang dieksekusi setelah proses redirect.
  2. Menggunakan mekanisme redirect yang aman, seperti menggunakan HTTP response header untuk melakukan redirect.
  3. Validasi input yang diterima dari user.
  4. Monitoring aplikasi web secara berkala untuk mendeteksi adanya serangan EAR mau pun serangan lainnya.

Berikut response setelah penambahan fungsi exit() pada contoh kode di atas tadi, coba bandingkan dengan response sebelumnya yang tidak memanggil fungsi exit().

Image

Server response secara otomatis tidak akan menampilakan pesan “Welcome to the dashboard!” karena fungsi exit() telah dipanggil setelah proses redirect. Dengan demikian, kode yang ada setelah proses redirect tidak akan dieksekusi.

Dengan melakukan langkah-langkah di atas, developer aplikasi web dapat mencegah terjadinya serangan EAR dan menjaga keamanan aplikasi.

Sekian dan semoga tulisan ini bermanfaat dan dapat menambah pengetahuan kita semua. Terima kasih.