URL-based access control can be circumvented
Link: https://portswigger.net/web-security/access-control/lab-url-based-access-control-can-be-circumvented
Last updated
Link: https://portswigger.net/web-security/access-control/lab-url-based-access-control-can-be-circumvented
Last updated
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:
Analisa web target
Dari hasil analisa terdapat navigasi untuk mengarahkan kehalaman Admin panel
, namun ketika diakses terdapat pesan Access denied
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
Terlihat, isi dari halaman yang terdapat di endpoint /admin
diantaranya adalah fitur untuk menghapus pengguna yang terdaftar yang diarahkan ke endpoint /admin/delete?username=
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
Maka user carlos
berhasil dihapus dan tantangan lab ini telah terselesaikan
Thanks, Stay Ethical & Happy Hacking! 🍻