SQLITE] SQL Injection

노션으로 옮김·2020년 3월 8일
1

skills

목록 보기
8/37
post-thumbnail

시작

설치

#apt update
#apt install sqlite

실행

쉘에서

#sqlite3 myDb.db`

myDB.db 생성 후 해당 db로 sqlite를 실행(이미 존재할 경우 존재하는 파일로 로드)


기본 명령어

명령어

.database

  • 데이터 베이스 확인

.tables

  • 테이블 확인

.quit or Ctrl + D

  • 나가기

SQL Injection

sqlite_master

현재 db의 테이블 정보를 확인할 수 있는 테이블이다. mysql의 information_schema.tables와 비슷한 기능을 가진다.

schema

SQLite - frequently asked questions

CREATE TABLE sqlite_master (
  type TEXT, //table or else
  name TEXT, //이름
  tbl_name TEXT, //이름 *대상이 table일 경우 name과 차이없음
  rootpage INTEGER,
  sql TEXT //생성시 입력된 쿼리문
);

확인해보자

sqlite> select * from sqlite_master;
table|myTable|myTable|2|CREATE TABLE myTable(username varchar(10), password varchar(20))
sqlite> 

built-in functions

sqlite_version()

버전을 출력한다.

sqlite> select sqlite_version();
3.31.1

숫자 값이기 때문에 다음과 같이 비교연산이 가능하다.

sqlite> select sqlite_version() < 3;
0
sqlite> 

unicode() / char()

sqlite3에는 문자를 10진수로 변환해 출력해주는 ascii()가 없다.

unicode()로 대체할 수 있다.

sqlite> select unicode('a');
97
sqlite> 

0개의 댓글