목록SQL Injection (2)
jyamethyst21 님의 블로그
1. SQL Injection1. SQL Injection 정의SQL Injection은 사용자 입력값이 적절히 검증되지 않은 상태로 SQL 쿼리에 포함될 때 발생하는 공격 기법이다.공격자는 입력값에 SQL 구문을 삽입하여 데이터 조회, 인증 우회, 데이터 변조 등을 수행할 수 있다.2. 취약한 구조SELECT * FROM board WHERE date = '사용자입력값' 상기 쿼리는 사용자 입력이 그대로 쿼리에 포함된다.이 구조에서는 입력값에 SQL 문법을 삽입하면 쿼리 자체를 변경할 수 있다.3. Injection 가능 여부 확인이런 경우에는 먼저 쿼리가 조작 가능한지 확인하는 단계가 필요하다.접근 방식항상 참이 되는 조건을 삽입한다.: ' AND 1=1 --또는 항상 거짓 조건을 삽입한다.: ' A..
SQL InjectionSQL Injection은 사용자가 입력한 값이 SQL 문장 안에 그대로 포함될 때 발생한다.정상적인 검색 기능은 원래 사용자가 입력한 값을 단순한 문자열로 처리해야 하지만, 입력값 안에 ', AND, UNION, SELECT, -- 같은 SQL 문법이 포함되면 데이터베이스는 그것을 단순 문자열이 아니라 SQL 구문의 일부로 인식하게 된다.이때 공격자는 원래 개발자가 의도한 조회 범위를 벗어나 추가 조건을 넣거나, 다른 테이블을 조회하거나, 에러를 강제로 발생시켜 내부 정보를 얻을 수 있다.1. UNION SQL InjectionUNION 기반 인젝션은 기존 SELECT 문의 결과와 공격자가 만든 SELECT 결과를 하나로 합치는 방식이다. UNION은 양쪽 SELECT의 컬럼 개..
