UNION SQL Injection 취약 게시판 구현 및 공격 실습 1. 공격 원리 1. SQL Injection 공격 가능 여부 확인 2. 컬럼 수 추출 3 . 각 컬럼 데이터형 추출 4. 데이블 목록 추출 5. 원하는 테이블의 컬럼명 추출 6. 원하는 데이터 추출 SQL에서 Union은 두 개의 쿼리문에 대한 결과를 통합하여 하나의 테이블로 보여주게 하는 키워드이다. 정상적인 쿼리문에 Union 키워드를 사용하여 인젝션에 성공하면, 원하는 쿼리문을 실행할 수 있게 된다. Union SQL Injection은 이전 Select 문과 Union Select 문의 칼럼 수가 동일해야 한다는 특징과 칼럼은 각 순서별로 동일한 데이터 형이어야 한다는 특징을 이용한다. 공격 과정은 다음과 같다. 2. 공격 실습..
SQL Injection 1. 공격 원리 SQL Injection는 코드 인젝션의 한 기법으로 클라이언트의 입력 값을 조작하여 서버의 데이터베이스를 공격할 수 있는 공격 방법이다. 문법적 의미가 있는 싱글쿼터(‘)와 주석(#)을 이용해 완성된 쿼리문을 주입해 공격자는 로그인 우회, 데이터 추출 등의 악의적인 행동을 취할 수 있다. SQL Injection의 공격 종류는 다음과 같다. 종류 대상/특징 Union SQLi UNION 절을 이용하여 두 개 이상의 쿼리를 묶어 원하는 정보를 DB에서 추출하는 공격 기법 Error Base SQLi 데이터베이스의 문법에 맞지 않은 쿼리문 입력 시 반환되는 에러 정보를 기반으로 공격하는 기법 Blind SQLi True인 쿼리문과 False인 쿼리문 삽입 시 반환되..
Preview 모의해킹은 중요 시스템의 정보를 탈취, 조작, 파괴 등이 가능한지 파악하는 취약점 진단을 수행한다. 체크리스트 기준으로 항목별 취약점 점검하는 업무를 수행하기 위해 위협이 있을 수 있는 웹사이트를 구현하고 공격자의 입장에서 침투테스트를 실시한다. 진단 항목을 올바르게 이해하고 프로젝트 수행 시 더 나은 결과물을 산출하기 위함이다. 자신만의 웹서버를 가지고 있고 그 서버가 입력 값에 따라 어떤 에러를 내는지 이해한다면 웹 취약점의 원리파악이 쉬워질 것이다. 구현 환경 웹 서비스를 개발 / 구축한 환경은 다음과 같다. 웹 취약점 진단 항목을 정확하게 이해하기 위해 웹 페이지 내 에러메시지 출력 설정이 되어 있으며 서버측 소스코드 및 디버깅 정보가 포함될 수 있다. 환경은 APM(Apache2,..