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