목록Web/RootMe (20)
정보보안공부
이문제도 마찬가지로 DB가 sqlite를 사용하고 있다. Blind Sql 로도 가능하지만 Union Sql도 가능하기 때문에 Union Sql Injection으로 풀어보겠다. [컬럼 개수 확인] - order by 또는 union select 를 이용해 조회가능한 컬럼 개수가 몇개인지 확인한다. [테이블 개수 확인] - count를 이용해 테이블 개수를 확인한다. [테이블 조회] - limit를 이용해 테이블을 하나씩 차례대로 조회한다. [컬럼 조회] - limit 또는 like 구문을 이용해 테이블의 컬럼을 조회한다. [데이터 조회] - 문자열을 이어주는 연산자( || %7c%7c )를 사용하여 데이터를 조회한다. - "아이디(공백)비밀번호" 형태로 데이터가 조회된다. #테이블 조회 select t..
먼저 문제를 풀기위해 에러를 통해 DB를 확인한 결과 평소 다뤄보지 않은 Sqlite를 사용하고 있음을 확인했다. sqlite는 모든 테이블 조회시 sqlite_master 테이블을 사용하며 컬럼명 조회 시 sql 컬럼의 데이터 안에 사용되는 컬럼명이 적혀있음을 검색으로 확인했다. 그 이후에 참 거짓을 이용한 Blind SQL Injection 구문을 작성해보았다. [참 / 거짓 판별] - 참 거짓을 통해 SQL Injection 가능성 여부 판별 [테이블 길이] - 참 거짓을 통해 테이블 길이 조회 - 2개의 테이블에 대한 길이 확인 [테이블 확인] - 조회된 테이블 길이를 참고하여 파이썬으로 코드 작성 후 테이블 조회 [컬럼 길이 확인] - 참 거짓을 통해 컬럼 길이 조회 - 싱글쿼터가 막혀있으므로 ..
보호되어 있는 글입니다.
보호되어 있는 글입니다.