---
# System prepended metadata

title: Username enumeration via response timing
tags: [Authentication]

---

# Username enumeration via response timing

* Ở bài lab này, chúng ta sẽ tiếp tục brute-force username và password. Nhưng lần này chúng ta sẽ bị block nếu đăng nhập sai nhiều lần.
![Capture00](https://hackmd.io/_uploads/HyKMViI86.png)

* Trước tiên đăng nhập bằng account được cấp `wiener:peter` để lấy được request `POST /login`. Gửi request đó tới Burp Intruder.
![Capture01](https://hackmd.io/_uploads/S1tMVsULp.png)

* Do trang web có sử dụng các phương thức ngăn chặn brute-force dựa trên IP nên chúng ta sẽ sử dụng `X-Forwarded-For` header để bypass. Header này chứa địa chỉ IP của client khi kết nối đến server thông qua proxy. Ở trường hợp này ta sẽ dùng nó để tạo địa chỉ IP mới mỗi payload ta gửi. Ta chọn loại tấn công là Battering ram, và thêm 2 vị trí payload vào `X-Forwarded-For` và username. Password thì chúng ta chọn một password thật dài để xem thời gian phản hồi.
![Capture02](https://hackmd.io/_uploads/S1Kf4o8L6.png)

* Chúng ta thêm vào payload `wiener` để có thể so sánh response time.
![Capture03](https://hackmd.io/_uploads/SktGEjLUT.png)

* Kết quả sau khi tấn công, ta thấy username `ads` và `wiener` có thời gian gần tương đương nhau và khác hẳn so với những username khác. Đây chính là username cần tìm.
![Capture04](https://hackmd.io/_uploads/H1Fz4s88p.png)

* Tìm được username rồi thì ta đổi vị trí payload qua password để brute-force.
![Capture05](https://hackmd.io/_uploads/BJYf4oI8a.png)

* Kết quả trả về ta thấy được có password `2000` chứa status code `302`.
![Capture06](https://hackmd.io/_uploads/HyKMVjL8a.png)

* Dùng Burp Repeater để đăng nhập account `ads:2000`.
![Capture07](https://hackmd.io/_uploads/H1tGEoI8a.png)

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