본문 바로가기

DB2

DB 종류, 버전 알아내기 1. 쿼리 실행 결과가 출력되는 경우DBMS에서 지원하는 환경 변수 값을 이용하여 버전 출력하기SELECT @@versionSELECT version()애플리케이션에서 실행하면서 에러 메세지를 출력하는 경우, 에러 메세지에서 버전 정보 알아내기SECLECT 1 UNION SELECT 1,2;MySQL => ERROR 1222 (21000): The used SELECT statements have different ~~~.애플리케이션에서 쿼리 실행결과로참 거진 여부만 출력할 경우, Blind SQL Injectionmid(@@version, 1, 1)='5';substr(version(), 1, 1)='P';2. 쿼리와 관련된 어떠한 결과도 출력하지 않는 경우시간 지연 이용sleep(10)pg_sleep.. 2024. 8. 15.
System table 정보 수집은 모의 해킹에 있어서 가장 중요한 단계 중 하나. 공격 대상이 사용하는 웹 서버와 개발 언어, DBMS와 내부 정보 등을 알아내는 과정이 이에 해당되는데 SQL Injection 취약점이 존재하는 경우  System table을 활용할 수 있다. 모든 DBMS에는 데이터베이스의 정보를 포괄하는 시스템 테이블이 존재한다. 시스템 테이블에는 설정 및 계정 정보 외에도 테이블과 칼럼 정보, 그리고 현재 실행되고 있는 쿼리의 정보 등 다양한 정보를 포함하고 있다.  실제로 SQL Injection을 수행할 때 특정 계정이나 비밀번호를 알아내기 위해 쿼리를 삽입하는 경우, 해당 정보가 포함된 테이블명과 칼럼명을 알아야 하기 때문에 이를 모르는 경우에 시스템 테이블을 먼저 공격하여 해당 정보를 알아낼 수.. 2024. 8. 15.