JWT authentication bypass via unverified signature
Link: https://portswigger.net/web-security/jwt/lab-jwt-authentication-bypass-via-unverified-signature
Last updated
Link: https://portswigger.net/web-security/jwt/lab-jwt-authentication-bypass-via-unverified-signature
Last updated
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 oleh administrator
Dapat dilihat pada web target ini menggunakan JWT
, analisa JWT yang diberikan ketika login menggunakan akun testing. Kirim request pada saat mengakses /admin
ke burp repeater
Buka tab JSON Web Token
. Pada payload terlihat terdapat parameter sub
dengan nilai wiener
. Parameter tersebut berisikan nilai username yang sedang login
Ubah nilai pada parameter sub
tersebut menjadi administrator
. Jika sudah lakukan sign
dengan Header Options
Don’t modify header
Kirim kembali request untuk mengakses /admin
. Dapat dilihat sebelumnya status code pada saat mengakses /admin
adalah 401
sekarang menjadi 200
yang artinya sudah dapat mengakses halaman /admin
. Untuk menyelesaikan tangtangan pada lab ini lakukan penghapusan user carlos
Thanks, Stay Ethical & Happy Hacking! 🍻