Notice
Recent Posts
Recent Comments
Link
«   2026/05   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
Archives
Today
Total
관리 메뉴

mo1lusca의 블로그

[Unifox] - 웹해킹 2차시 본문

Unifox

[Unifox] - 웹해킹 2차시

mo1lusca 2025. 11. 7. 01:13

안녕하세요 오늘은 Blind SQL Injection에 대해 알아볼게요.


Blind SQL injection이란??

주입한 SQL 쿼리의 결과가 보이지 않을 때 사용하는 방법이다.

쿼리의 결과를 볼 수 없기 때문에, True/False 값을 가지는 쿼리를 날려 페이지의 변화를 보거나(Boolean-Based),

딜레이를 거는 쿼리 등을 날려서(Time-Based) 쿼리의 동작 여부같은걸 확인한다.


Boolean-Based SQL injection이란??????

Blind SQL injection의 한 종류로, 쿼리에 대한 True/False 결과로 인한 서버나 사이트 변화를 통해서 데이터를 유추한다.

 

쉽게 예를 들자면, admin의 비밀번호를 브루트포스를 통해 뚫는다고 할 때, 비밀번호의 자릿수를 알아내는데에 사용 할 수 있다.

업-다운 게임이나 이분탐색 처럼 기준값과 비교 한 True/False의 결과를 통해 비밀번호 자릿수의 범위를 좁힌다..

 

정보 획득을 위해 많은 쿼리를 전송해야 하고, 자동화를 위해 스크립트를 작성하기도 한다..

 

 

Time-Based SQL injection이란????

사이트의 변화를 통해 쿼리 결과의 True/False를 구분할 수 없을 때 사용된다..

Sleep 등의 함수를 사용해 응답 별 딜레이를 다르게 걸어서 결과를 구분한다.

and 연산자와 함께 사용해서 Sleep을 걸 조건을 정할 수 있다.

 

admin' and sleep(10) -- -

대충 where userid = '{input}' 라고 받는 상황이라고 생각하자.

admin이라는 userid가 있다면, 앞의 조건에서는 True가 뜨고, Sleep 함수를 실행하게 되어

10초동안 딜레이가 걸리는 걸 볼 수 있을 것이다.

(만약 거짓이라면, and 연산자는 일반적으로 앞의 조건이 거짓일 때

뒤의 조건을 검사하지 않기 때문에 Sleep 함수가 실행되지 않을 것이다.)


문제를 풀어봐야 이해가 더 잘 될 것 같다.

SQL injection의 고수가 되자..


'Unifox' 카테고리의 다른 글

[Unifox] 동아리 프로젝트 - 트리에서의 구간 쿼리 알고리즘 시각화  (0) 2025.12.07
[Unifox] - 웹해킹 1차시  (0) 2025.11.02
[Unifox] - SQL  (1) 2025.10.03
[Unifox] - Flask 2차시  (0) 2025.10.03
[Unifox] - Flask 1차시  (0) 2025.09.22