최대 1 분 소요

이전 포스팅

Union SQLi 과 Error Based SQLi 과정 정리.

MYSQL 사전 지식

DB 명 출력하기

select database() from dual;

테이블명 출력하기

select table_name from information_schema.tables where table_schema='DB명'

컬럼명 출력하기

select column_name from information_schema.columns where table_name='테이블명'

Blind SQLi

  • 참과 거짓 조건에 따른 응답을 이용하여 한글자씩 알아내어 데이터를 추출하는 공격이다.

조건

  • 결과가 화면에 안나오는 곳에서 사용한다.
  • 참과 거짓 조건에 따라 응답이 다른 곳에서 이용가능하다.

필요 함수

  • substring
  • ascii

과정

  1. 서버에서 어떤 질의문을 사용하는지 예측하기.
    select x from x where id='x';
    
  2. Blind SQLi 을 사용하기 위하여 참/거짓 일때 응답 결과가 다른지 확인하기.

  3. select 문 사용 가능한지 확인하기.
  4. 공격 포맷 만들기.
  5. database 이름 추출하기. 한 문자씩 알아내어야 한다.
  6. 테이블 이름들 추출하기.
  7. 컬럼 명 추출 하기.
  8. 정보 추출하기.

댓글남기기