URL-based access control can be circumvented

Link: https://portswigger.net/web-security/access-control/lab-url-based-access-control-can-be-circumvented

Description:

This website has an unauthenticated admin panel at /admin, but a front-end system has been configured to block external access to that path. However, the back-end application is built on a framework that supports the X-Original-URL header.

To solve the lab, access the admin panel and delete the user carlos.

Proof of concept:

  1. Analisa web target

  2. Dari hasil analisa terdapat navigasi untuk mengarahkan kehalaman Admin panel, namun ketika diakses terdapat pesan Access denied

  3. Seperti yang telah dijelaskan pada deskripsi lab, pada target ini support terhadap X-Original-Url. X-Original-Url merupakan header HTTP yang menunjukkan URL asli dari suatu sumber daya sebelum diubah atau dialihkan. Maka dari itu, dengan parameter header HTTP tersebut bisa dicoba untuk melakukan eksploitasi bypass access control. Caranya, tambahkan HTTP header X-Original-Url tersebut menggunakan burp suite repeater arahkan ke endpoint yang tidak dapat diakses yaitu endpoint /admin

  4. Terlihat, isi dari halaman yang terdapat di endpoint /admin diantaranya adalah fitur untuk menghapus pengguna yang terdaftar yang diarahkan ke endpoint /admin/delete?username=

  5. Untuk menyelesaikan tangtangan lab ini, diharuskan untuk menghapus user carlos . Maka dari itu untuk nilai X-Original-Url arahkan ke endpoint delete user yaitu /admin/delete dan untuk endpointnya ubah menjadi /?username=carlos karena user yang akan dihapus adalah user dengan username carlos

  6. Maka user carlos berhasil dihapus dan tantangan lab ini telah terselesaikan

Thanks, Stay Ethical & Happy Hacking! 🍻

Last updated