오류 메시지 출력되지 않는 경우 SQL 쿼리 동작으로 DB 구조를 파악하여 공격하는 기법이다.
조건이 참이면 페이지 정상적으로 출력, 거짓인 경우 페이지 출력되지 않는다.
✅ PortSwigger
Blind SQL Injection 문제

The database contains a different table called users, with columns called username and password. You need to exploit the blind SQL injection vulnerability to find out the password of the administrator user.
➡️ 문제에 핵심은 administrator 이라는 user의 password를 알아내어 로그인 하는 것이다 (문제를 잘 읽자)

Cookie: TrackingId=Cyx139z81x7YgTa8;proxy가 잡은 현재 페이지를 repeater로 보내어 request, response 값을 확인한다.
[SQL 쿼리문이 TRUE인 경우]

[SQL 쿼리문이 FALSE인 경우]

(SELECT 'a' FROM users WHERE username='administrator' AND LENGTH(password)>1)='a

LENGTH(password)>1 을 조작하면 패스워드가 20일떄 false가 나오는 것을 알 수 있으며 password의 길이는 20이다.
intruder로 보내 해당하는 패스워드를 찾아낸다.
(SELECT SUBSTRING(password,1,1) FROM users WHERE username='administrator')='a
-> 활용하여 첫 번째 글자를 찾아냄

-> Burte forcer 공격 보내고 길이 다른 응답을 통해 password 알아낼 수 있음


✅ password -> z1hvpwred13qaahlrytk


좋아요 기능으로 모든 사용자의 프로필 사라지게 하는 공격
comment_id가 정수로 처리되고 쿼리에서 이스케이프 처리되지 않았음
WAF/filters가 따옴표를 차단할 때도 유용함