JWT authentication bypass via unverified signature
Link: https://portswigger.net/web-security/jwt/lab-jwt-authentication-bypass-via-unverified-signature
Description:
This lab uses a JWT-based mechanism for handling sessions. Due to implementation flaws, the server doesn't verify the signature of any JWTs that it receives.
To solve the lab, modify your session token to gain access to the admin panel at /admin
, then delete the user carlos
.
You can log in to your own account using the following credentials: wiener:peter
Preparation:
Install JWT Editor on Burp Suite Extension
Proof of concept:
Analisa seluruh fitur web target menggunakan akun testing
Dari pengumpulan informasi didapati terdapat direktori
/admin
Akses halaman
/admin
. Terlihat halaman/admin
hanya dapat diakses olehadministrator
Dapat dilihat pada web target ini menggunakan
JWT
, analisa JWT yang diberikan ketika login menggunakan akun testing. Kirim request pada saat mengakses/admin
keburp repeater
Buka tab
JSON Web Token
. Pada payload terlihat terdapat parametersub
dengan nilaiwiener
. Parameter tersebut berisikan nilai username yang sedang loginUbah nilai pada parameter
sub
tersebut menjadiadministrator
. Jika sudah lakukansign
denganHeader Options
Don’t modify header
Kirim kembali request untuk mengakses
/admin
. Dapat dilihat sebelumnya status code pada saat mengakses/admin
adalah401
sekarang menjadi200
yang artinya sudah dapat mengakses halaman/admin
. Untuk menyelesaikan tangtangan pada lab ini lakukan penghapusan usercarlos
Thanks, Stay Ethical & Happy Hacking! 🍻
Last updated