목록Web/RootMe (20)
정보보안공부
보호되어 있는 글입니다.
보호되어 있는 글입니다.
보호되어 있는 글입니다.
보호되어 있는 글입니다.

문제를 푸려고 봤더니 중국어 할수있냐는 문장이랑 GBK를 검색해보니 UTF-8처럼 중국어의 인코딩문자임을 알게되면서 멀티바이트를 이용해 푸는 문제라는 것을 알게됬다. 멀티바이트를 이용한 싱글쿼터 우회는 select * from 테이블 where 컬럼='값' 형태에서 값에 싱글쿼터를 이용한 인젝션 구문을 삽입(' or '1'='1) 할 경우 select * from 테이블 where 컬럼='값' or '1'='1' 형태가 된다. 이때 서버측 코드에서 싱글쿼터에 대해 이스퀘이프 처리를 하고있을 경우 select * from 테이블 컬럼='값\' or \'1\'=\'1'로 구문이 작성되어 구문 실행이 되지 않는데 멀티바이트와 이스케이프 문자가 만나게되면 2개를 하나의 문자로 취급하게되어 이스케이프 역할을 하지..

위 문제가 에러 기반의 SQL Injection으로 알고있어서 floor와 rand를 결합한 인젝션 쿼리를 날렸는데 Hint를 보여주어 형변환과 관련된 함수를 찾아본 결과 cast 함수를 이용해 쿼리를 작성했다. [floor, rand 에러구문] [테이블 조회] - cast 함수를 사용하여 쿼리 작성 - where table_type='base+table' 작성 시 쿼리가 실행되지 않아 우회하려 했으나, 실패함.. ( 방법을 찾는중 ) - 문제는 풀어야하므로 가장 수상한 첫번째 테이블 "m3mbr35t4bl3" 확인 [컬럼 조회] - cast 함수를 사용하여 쿼리 작성 - where table_name='m3mbr35t4bl3' 작성 시 쿼리가 실행되지 않아 우회하려 했으나, 실패함.. ( 방법을 찾는중..
보호되어 있는 글입니다.

Numeric 문제에서 이미 Blind Sql Injection으로 문제를 풀어보았으나sqlite는 모든 테이블 조회시 sqlite_master 테이블을 사용하며 컬럼명 조회 시 sql 컬럼의 데이터 안에 사용되는 컬럼명이 적혀있음을 검색으로 확인했다. 그 이후에 참 거짓을 이용한 Blind SQL Injection 구문을 작성해보았다. [참 / 거짓 판별] - 참 거짓을 통해 SQL Injection 가능성 여부 판별 [테이블 개수 확인] [테이블 길이] - 참 거짓을 통해 테이블 길이 조회 [테이블 확인] - 조회된 테이블 길이를 참고하여 파이썬으로 코드 작성 후 테이블 조회 [컬럼 길이 확인] - 참 거짓을 통해 컬럼 길이 조회 [컬럼 확인] - 조회된 테이블 길이를 참고하여 파이썬으로 코드 작성 ..