# 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)