정보보안공부
[Root-Me] SQL injection - Numeric 본문
먼저 문제를 풀기위해 에러를 통해 DB를 확인한 결과 평소 다뤄보지 않은 Sqlite를 사용하고 있음을 확인했다. sqlite는 모든 테이블 조회시 sqlite_master 테이블을 사용하며 컬럼명 조회 시 sql 컬럼의 데이터 안에 사용되는 컬럼명이 적혀있음을 검색으로 확인했다. 그 이후에 참 거짓을 이용한 Blind SQL Injection 구문을 작성해보았다.
[참 / 거짓 판별]
- 참 거짓을 통해 SQL Injection 가능성 여부 판별
[테이블 길이]
- 참 거짓을 통해 테이블 길이 조회
- 2개의 테이블에 대한 길이 확인
[테이블 확인]
- 조회된 테이블 길이를 참고하여 파이썬으로 코드 작성 후 테이블 조회
[컬럼 길이 확인]
- 참 거짓을 통해 컬럼 길이 조회
- 싱글쿼터가 막혀있으므로 char()함수를 이용해 테이블명 작성
[컬럼 확인]
- 조회된 테이블 길이를 참고하여 파이썬으로 코드 작성 후 컬럼 조회
[데이터 확인]
- 조회한 테이블, 컬럼명을 통해 파이썬으로 코드 작성 후 테이블 내 모든 데이터 조회
#테이블 조회
select tbl_name from sqlite_master
#컬럼 조회
select sql from sqlite_master where sql like '%테이블이름%'
#관련 함수
length, substr, unicode, char, ||(%7c%7c), limit
'Web > RootMe' 카테고리의 다른 글
[Root-Me] SQL injection - Filter bypass (0) | 2020.02.18 |
---|---|
[Root-Me] SQL injection - Blind (0) | 2020.02.18 |
[Root-Me] SQL injection - String (0) | 2020.02.18 |
[Root-Me] PHP Filters (0) | 2020.02.13 |
[Root-Me] Insecure Code Management (0) | 2020.02.13 |
Comments