---
# System prepended metadata

title: Exploiting time-sensitive vulnerabilities
tags: [Race conditions]

---

# Exploiting time-sensitive vulnerabilities

* Bài lab yêu cầu chúng ta khai thác lỗ hổng race condition ở tính năng đổi mật khẩu để truy cập vào Admin panel của user `carlos`. Trước tiên ta sẽ thử đổi mật khẩu của user `wiener`.
![Capture01](https://hackmd.io/_uploads/B1DXWKLDp.png)

* Chúng ta đã nhận được mail reset password có chứa token trong đường dẫn.
![Capture02](https://hackmd.io/_uploads/HyD7-YLvp.png)

* Chúng ta sẽ khai thác lỗi race condition với hai request `POST /forgot-password`, một với user là `wiener`, còn lại là `carlos`. Trước tiên ta cần cookie và CSRF token thứ hai cho request còn lại. Xóa dòng cookie và gửi lại request `POST /forgot-password` để lấy cookie và CSRF token mới.
![Capture03](https://hackmd.io/_uploads/Sklw7-tUva.png)
![Capture04](https://hackmd.io/_uploads/SywXWYLPp.png)

* Chúng ta sẽ thay cookie và CSRF token mới vào request `POST /forgot-password` thứ hai và đổi tên username thành `carlos`. Tiến hành gửi 2 request cùng lúc, nếu tấn công thành công thì 2 request sẽ có chung một token reset password.
![Capture05](https://hackmd.io/_uploads/BJwXbFLPT.png)

* Sau khi gửi request, ta vào mail để lấy đường dẫn reset password. Đổi tên username thành `carlos` và kiểm tra, nếu chưa được thì ta lặp lại bước tấn công. Như hình dưới thì chúng ta đã tấn công thành công, tiến hành đổi password.
![Capture06](https://hackmd.io/_uploads/H1w7bYLD6.png)

* Sau khi login vào user `carlos`, ta truy cập vào Admin panel và xóa user `carlos`.
![Capture07](https://hackmd.io/_uploads/rkwQZKUDp.png)
![Capture08](https://hackmd.io/_uploads/SJxwQZKUD6.png)

* Hoàn thành bài lab.
![Capture09](https://hackmd.io/_uploads/SywQZt8wT.png)
