카테고리 없음

[워게임 공부] baby-union

범호야 2025. 9. 23. 23:23

1. SQL : 데이터베이스에서 데이터를 추출하고 조작하는 데에 사용하는 데이터 처리 언어

2. SQL INJECTION: 악의적인 사용자가 보안상의 취약점을 이용하여, 임의의 SQL 문을 주입하고 실행되게 하여 데이터베이스가 비정상적인 동작을 하도록 조작하는 행위

3. SQL INJECTION 취약점: 데이터베이스와 연동된 웹 애플리케이션에서 공격자가 입력 폼 또는 URL 입력란에 SQL 구문을 삽입하여 DB를 조작할 수 있는 취약점

UNION 명령어 

SQL UNION 명령어 개요

  • UNION은 두 개 이상의 SELECT 결과 집합을 합치는 SQL 연산자.
  • 각 SELECT문의 결과 컬럼 수, 순서, 데이터 타입이 일치해야 사용 가능.
  • 기본적으로 중복된 행은 제거하고, 모두 표시하려면 UNION ALL을 사용.

기본 문법

 
SELECT column1, column2, ...
FROM table1
WHERE 조건;

UNION

SELECT column1, column2, ...
FROM table2
WHERE 조건;

주요 특징

컬럼 수 동일
SELECT id, name FROM users
UNION
SELECT id, title FROM posts;
데이터 타입 호환 필요
중복 제거와 유지 
SELECT 'A'
UNION
SELECT 'A'; -- 결과: A (1개)

SELECT 'A'
UNION ALL
SELECT 'A'; -- 결과: A, A (2개)

정렬 

SELECT id, name FROM users
UNION
SELECT id, title FROM posts
ORDER BY id DESC;

SQL Injection에서의 활용

  • UNION은 원래 합집합 연산자이지만, SQL 인젝션에서 공격자가 다른 테이블/DB 정보를 덧붙여 노출시키는 데 자주 사용.
  • 예:원래 쿼리 결과 뒤에 users 테이블의 계정 정보를 합쳐서 출력 가능.