---
template: overrides/blog.html
icon: material/plus-circle
title: SQL injection - Time based
description: >
search:
exclude: true
hide:
- feedback
tags:
- SQL Injection
---
# __SQL injection - Time based__
:octicons-calendar-24: May 03, 2023
---
## __Tài nguyên và link challenge__
Tài nguyên của challenge này tại [https://www.root-me.org/en/Challenges/Web-Server/SQL-injection-Time-based](https://www.root-me.org/en/Challenges/Web-Server/SQL-injection-Time-based)
Link challenge này tại [:octicons-arrow-right-24: http://challenge01.root-me.org/web-serveur/ch40/][http://challenge01.root-me.org/web-serveur/ch40/]
[http://challenge01.root-me.org/web-serveur/ch40/]: http://challenge01.root-me.org/web-serveur/ch40/
## __Tổng quan__
Trong challenge này, mục tiêu của ta là lấy được password admin.
> __Time-based SQL Injection__ là một kỹ thuật SQL Injection suy luận dựa trên việc gửi một truy vấn SQL đến cơ sở dữ liệu, buộc cơ sở dữ liệu phải đợi một khoảng thời gian xác định (tính bằng giây) trước khi phản hồi. Về định nghĩa thì hơi khó hiểu, tôi sẽ ví dụ như sau:
> Ví dụ: Ta cần check password một tài khoản có username là admin bằng cách brute force
> - Ta biết password có n kí tự và đặt là S[n]
> - Ta sẽ gửi request lần lượt từ S[0] -> S[n-1], nếu so khớp S[0] trùng với S[0] trong password thì cho nó ngủ 5s :octicons-arrow-right-24: với thời gian phản hồi như thế, ta có thể biết được kí tự S[0] là kí tự gì. Tương tự đến S[n-1].
## __Kịch bản tấn công__
### Bước 1: Kiểm tra website
Challenge này cung cấp cho ta 2 website: 1 cho việc login tài khoản, 1 cho việc xem danh sách tài khoản
Có thể thấy, sau một vài thao tác truy cập danh sách tài khoản thì đều yêu cầu login tài khoản mới được quyền xem
### Bước 2: Khai thác website
Đầu tiên, ta dùng sqlmap để quét website và đặt thời gian cho CSDL phản hồi là 10s bằng lệnh `sqlmap -u "http://challenge01.root-me.org/web-serveur/ch40/?action=member&member=1" --time-sec=10 --dbs`