정보보안공부

[Root-Me] SQL injection - Blind 본문

Web/RootMe

[Root-Me] SQL injection - Blind

Steady_sp 2020. 2. 18. 17:55

 

Numeric 문제에서 이미 Blind Sql Injection으로 문제를 풀어보았으나sqlite는 모든 테이블 조회시 sqlite_master 테이블을 사용하며 컬럼명 조회 시 sql 컬럼의 데이터 안에 사용되는 컬럼명이 적혀있음을 검색으로 확인했다. 그 이후에 참 거짓을 이용한 Blind SQL Injection 구문을 작성해보았다.

 

[참 / 거짓 판별]

- 참 거짓을 통해 SQL Injection 가능성 여부 판별

참인 경우 Hi master !이 조회됨을 확인

 

거짓인 경우 Hi master !이 조회되지 않음을 확인

[테이블 개수 확인]

테이블 개수가 1개임을 확인

 

[테이블 길이]

- 참 거짓을 통해 테이블 길이 조회

테이블 길이가 5임을 확인

 

[테이블 확인]

- 조회된 테이블 길이를 참고하여 파이썬으로 코드 작성 후 테이블 조회

파이썬 코드를 작성하여 테이블 이름 확인

 

[컬럼 길이 확인]

- 참 거짓을 통해 컬럼 길이 조회

컬럼 길이가 63임을 확인

 

[컬럼 확인]

- 조회된 테이블 길이를 참고하여 파이썬으로 코드 작성 후 컬럼 조회

users 테이블의 sql 컬럼 확인

 

[데이터 확인]

- 조회한 테이블, 컬럼명을 통해 파이썬으로 코드 작성 후 테이블 내 모든 데이터 조회

users 테이블의 username, passwor 컬럼 데이터 조회

 

#테이블 조회

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 - Error  (0) 2020.02.19
[Root-Me] SQL injection - Filter bypass  (0) 2020.02.18
[Root-Me] SQL injection - String  (0) 2020.02.18
[Root-Me] SQL injection - Numeric  (0) 2020.02.18
[Root-Me] PHP Filters  (0) 2020.02.13
Comments