sql injection

웹 해킹/웹 해킹 및 시큐어 코딩 기초

SQL Injection 대응 방안

대응 방안 개요일반적인 방법- 시큐어 코딩 → 근본적인 대응 방안- 인라인 보안솔루션(IPS,WAF 등) → 한계가 있다. (우회 할 수 있음) 시큐어 코딩1. Prepared Statement 사용2. 사용자 입력 값 타입에 따른 입력 값 검증 로직 구현3. 길이 제한 Prepared Statement 가 적용되어 있다면 굳이 2,3번을 적용할 필요가 없다.3번 길이제한은 단독으로 사용하면 안된다. → 1번 or 2번과 같이 적용해야 한다.   대응 방안(1) - Prepared Statement 사용Prepared Statement 는 SQL Injection에 대한 방어 뿐만 아니라 성능적인 이점에 의해서 많이 사용된다.하지만 적절하게 사용하지 않는 경우 Prepared Statement 또한 취약..

웹 해킹/웹 해킹 및 시큐어 코딩 기초

SQL Injection

1) SQL Injection이란 무엇인가?SQL은 RDBMS에서 데이터를 관리하기 위해 설계된 특수 목적의 프로그래밍 언어다.클라이언트와 웹 어플리케이션이 통신할 때 사용자 입력값에 SQL 구문 삽입을 통해 변조된 SQL 구문을 질의함. 이를 통해 데이터 조회, 삭제 등의 다양한 공격이 가능하다.  2) 취약점 발생 원인1. 공격자는 취약한 웹 어플리케이션을 대상으로 SQL 구문을 삽입한다.2. Server-Side Script에서 사용자 입력값을 받게되며, 미완성된 SQL 구문이 사용자 입력값을 통해서 완성된 SQL 구문으로 만들어진다. → 취약점 발생(입력 값 검증 없이 구문 조합하게 되는 경우)3. 완성된 SQL 구문으로 DB에 질의를 요청하게 된다.(변조된 SQL로 질의)4. DB는 질의에 대한..

웹 해킹/SQL 기본

SQL Injection을 위한 데이터베이스 기초

SQL 기본 문법을 알아야 하는 이유취약점 진단 시 성공적인 SQL 인젝션 공격을 위해서는 SQL 기본 문법에 대한 이해는 필수다!   데이터베이스란 무엇인가?데이터를 구조적으로 모아둔 데이터 집합소 관계형 데이터베이스(Relational Database: RDB)- 데이터를 열과 행을 가진 테이블 형태로 표현하며, 구조적으로 데이터 관리를 한다.  데이터베이스 용어(A) = 데이터의 집합 → 테이블(B) = 행 → 레코드(C) = 열 → 컬럼  관계형 데이터베이스 관리 시스템(RDBMS)관계형 데이터베이스를 관리하는 시스템을 RDBMS라고 부른다.주요 기능은 데이터 추가, 수정, 삭제, 조회, 데이터 무결성 유지, 트랜잭션 관리, 백업 및 복원, 보안 등이 있다.대표적인 관계형 데이터베이스는 Oracl..