JWT authentication bypass via flawed signature verification

Link:https://portswigger.net/web-security/jwt/lab-jwt-authentication-bypass-via-flawed-signature-verification

Description:

This lab uses a JWT-based mechanism for handling sessions. The server is insecurely configured to accept unsigned JWTs.

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 JSON Web Tokens on Burp Suite extension

Proof of concept:

  1. Lakukan analisa pada web target menggunakan akun testing

  2. Akses halaman /admin

  3. Terlihat halaman admin hanya dapat diakses menggunakan akun administrator. Lakukan percobaan modifikasi JWT menggunakan extension JSON Web Tokens yang sebelumnya telah diinstal dengan cara kirim request pada saat mengakses halaman /admin ke burp suite repater. Jika sudah, buka tab JSON Web Tokens

  4. Pada header JWT terdapat parameter alg dengan nilai RS256. Ubah nilai pada paramter alg tersebut menjadi none dengan cara pada drop-down Alg None Attack pilih Alg: none. Selanjutnya, pada payload terdapat parameter sub dengan nilai wiener / username yang sedang login. Ubah nilai pada parameter tersebut menjadi administrator

  5. Selanjutnya, kirim kembali request tersebut dan dapat dilihat halaman /admin berhasil diakses dengan ditandai dengan response 200 OK

  6. Untuk menyelesaikan tangtangan pada lab ini, hapus user carlos

Thanks, Stay Ethical & Happy Hacking! 🍻

Last updated