페이지에서 나갈까요?

지금 나가면 작성중인 내용은 저장되지 않아요

본인 인증을 완료하면
할인 혜택을 받을 수 있어요!
본인인증하면 받을 수 있는 할인이 있어요
그래도 페이지를 나갈까요?
SKT 통신사 할인
  •  · 결합 기준일 기준 M+2개월차 100%(월정료 할인), 13개월차 50%할인, 25개월차 50%할인(월10만원 이내)
취약점
XSS 공격 vs SQL 인젝션, 차이점과 예방 가이드
2025
.
02
.
19

XSS 공격이란 무엇일까요? 웹 애플리케이션의 발전으로 다양한 공격 기법이 등장하면서, 웹 공격은 더 이상 간과할 수 없는 위협이 되었습니다. 기업의 경우 웹 공격으로 인해 고객 정보가 유출되거나 서비스가 중단되면 막대한 경제적 손실로 이어질 수도 있죠. 따라서 웹 공격을 사전에 감지하고 신속하게 대응할 수 있는 능동적인 보안 시스템 구축이 필요합니다.

오늘은 XSS 공격과 SQL 인젝션의 차이점과 함께, 웹 공격을 예방하기 위한 보안 컨설팅 및 솔루션을 소개하겠습니다.

◼︎ XSS: 웹을 좀먹는 치명적인 해킹 공격

1) XSS 공격이란?

출처: Unsplash

XSS(Cross-Site Scripting) 공격은 웹 애플리케이션의 취약점을 이용하여 공격자가 악성 스크립트를 웹 페이지에 삽입하고, 사용자가 해당 페이지를 열람할 때 스크립트가 실행되도록 유도하는 공격입니다. XSS 공격을 통해 공격자는 사용자 쿠키를 탈취하거나, 웹 페이지 내용을 변조하거나, 악성 코드를 유포하는 등 다양한 악성 행위를 수행할 수 있는데요.

XSS 공격은 주로 웹 애플리케이션이 사용자 입력을 제대로 검증하지 않거나, 출력 시 적절한 이스케이프 처리를 하지 않을 때 발생합니다. 공격자는 게시판, 댓글, 검색어 입력 필드 등 다양한 경로를 통해 악성 스크립트를 삽입할 수 있으며, 삽입된 스크립트는 다른 사용자가 페이지를 방문할 때 실행되어 피해를 초래합니다.

XSS(크로스 사이트 스크립트)란? 공격 유형부터 보안대책까지!

2) 공격 유형

XSS 공격, SQL 인젝션, 버프 스위트, 보안 컨설팅

출처: Shutterstock

XSS 공격 유형은 크게 3가지로 나눌 수 있습니다. 저장형 XSS와 반사형 XSS는 악성 스크립트가 서버를 거쳐 사용자에게 전달되는 공격 방식으로, 로그 분석이나 웹 방화벽을 통해 위험 징후를 포착할 수 있습니다. 반면, DOM 기반 XSS는 서버를 거치지 않고 브라우저 내에서 클라이언트 측 JavaScript를 조작하여 악성 스크립트를 실행시키는 방식이기 때문에 서버 로그에서는 공격 징후를 파악하기 어렵습니다.

이러한 공격을 방지하기 위해 웹 개발자는 각 유형의 특징을 이해하고, 각 유형에 맞는 보안 기법을 적용하며, 필요 시 전문가의 보안 컨설팅을 통해 예방 전략을 마련해야 합니다.

1️⃣ Stored XSS

악성 스크립트를 웹 서버에 영구적으로 저장하는 공격 방식입니다. 공격자는 게시판, 댓글, 프로필 입력란 등 사용자 입력이 저장되는 공간에 악성 스크립트를 삽입하는데요. 이렇게 삽입된 스크립트는 서버에 저장되고, 다른 사용자가 해당 페이지를 방문할 때 자동으로 실행됩니다. 한 번의 공격으로 다수의 사용자가 지속적으로 피해를 입을 수 있다는 점에서 위험성이 큽니다.

2️⃣ Reflected XSS

반사형 XSS는 웹 응용 프로그램의 지정된 변수를 이용할 때 발생하는 취약점을 이용하는 공격입니다. 악성 스크립트를 URL 파라미터에 포함시켜 사용자가 특정 URL을 클릭하면 스크립트가 실행되도록 유도하는데요. 주로 이메일, 메신저, SNS 등을 통해 신뢰를 위장한 링크를 전송해 클릭을 유도하며, 피해자는 의심 없이 URL을 클릭했다가 공격에 노출됩니다.

3️⃣ DOM based XSS

DOM 기반 XSS는 서버를 거치지 않고 클라이언트 측에서 직접 실행되는 공격입니다. 웹 페이지의 DOM 구조를 조작해 악성 스크립트를 실행하는 방식으로, URL의 hash 값, 쿠키, 로컬 스토리지 등 다양한 경로를 통해 공격이 이루어질 수 있습니다. 서버 로그로는 탐지가 어렵고, 브라우저 내에서만 발생하기 때문에 취약점을 발견하고 예방하기가 상대적으로 까다롭습니다.

◼︎ SQL 인젝션: 웹 개발자의 악몽, 데이터 유출의 주범

1) SQL 인젝션이란?

XSS 공격, SQL 인젝션, 버프 스위트, 보안 컨설팅

출처: Unsplash

SQL 인젝션(SQL Injection)은 웹 애플리케이션의 취약점을 악용해 악의적인 SQL 코드를 삽입하고, 이를 통해 데이터베이스를 조작하거나 불법적으로 접근하는 공격 기법입니다.

웹 애플리케이션은 사용자 입력을 기반으로 SQL 쿼리를 생성하여 데이터베이스와 상호작용 하는데요. 하지만 입력 데이터에 대한 검증이 제대로 이루어지지 않을 경우, 공격자는 입력 필드에 악성 SQL 코드를 주입해 데이터베이스를 제어할 수 있습니다.

SQL 인젝션 공격을 통해 개인 정보 탈취, 웹 페이지 내용 변조, 관리자 권한 탈취는 물론, 심각한 경우 데이터베이스 전체를 삭제하는 피해가 발생할 수 있습니다.

2) 공격 유형

XSS 공격, SQL 인젝션, 버프 스위트, 보안 컨설팅

출처: Shutterstock

즉, SQL 인젝션은 공격자가 악성 코드나 명령어를 삽입해 시스템의 동작을 조작하는 공격 기법입니다. 이를 통해 데이터를 탈취하거나 관리자 권한을 획득하는 등 다양한 보안 위협이 발생할 수 있습니다.

주로 웹 애플리케이션, 데이터베이스, 소프트웨어 시스템에서 발생하며, 입력값 검증이 제대로 이루어지지 않는 경우 공격자는 이를 악용해 민감한 정보에 접근하거나 시스템을 변조할 수 있습니다.

SQL 인젝션은 공격 방식에 따라 4가지 유형으로 나뉘며, 각각의 특징과 작동 원리가 다른데요. 각 공격 유형을 정확히 이해하고 그에 맞는 보안 대책을 마련하는 것이 중요합니다.

1️⃣ Error based SQL Injection

데이터베이스에서 발생하는 오류 메시지를 통해 데이터베이스 구조나 정보를 파악하는 공격 기법입니다. 공격자는 SQL 쿼리에서 의도적으로 오류를 발생시켜 오류 메시지에 나타나는 정보를 통해 테이블명, 컬럼 구조, 데이터 내용 등 데이터베이스의 정보를 추론합니다.

2️⃣ Union SQL Injection

SQL의 UNION 명령어를 사용하여 원래 쿼리에 악의적인 쿼리를 삽입하고, 두 쿼리의 결과를 합쳐서 정보를 탈취하는 공격 기법입니다. 공격자는 UNION 명령어를 사용하여 원본 쿼리와 동일한 형태의 악성 쿼리를 추가하여, 사용자 정보, 로그인 계정, 시스템 정보 등을 탈취합니다.

3️⃣ Blind SQL Injection

오류 메시지를 확인할 수 없는 환경에서 참/거짓 판단을 통해 데이터베이스 정보를 유추하는 공격 기법입니다. 공격자는 SQL 쿼리에 조건을 삽입하고, 서버 응답 결과나 응답 시간을 통해 조건의 참/거짓을 판별합니다. 이를 여러 번 반복해 데이터베이스 정보를 점진적으로 탈취합니다.

4️⃣ Stored Procedure SQL Injection

데이터베이스에 저장된 저장 프로시저의 취약점을 이용하는 공격 기법입니다. 저장 프로시저는 미리 컴파일된 SQL 코드를 저장하여 실행하는 데이터베이스 객체인데요. 공격자는 저장 프로시저에 악성 SQL 코드를 삽입하여 데이터베이스를 제어합니다. 저장 프로시저의 권한을 이용하여 데이터베이스 전체를 장악할 수 있다는 점에서 위험성이 높습니다.

◼︎ XSS vs SQL 인젝션, 어떻게 다를까?

1) XSS와 SQL 인젝션 비교하기

XSS 공격, SQL 인젝션, 버프 스위트, 보안 컨설팅

XSS(Cross-site Scripting)과 SQL 인젝션(SQL Injection)은 웹 애플리케이션 보안에서 가장 주의해야 하는 웹보안 공격 기법입니다.

XSS 공격은 사용자 브라우저를 겨냥해 악성 스크립트를 삽입하여 개인 정보 탈취, 웹 페이지 변조, 악성 코드 유포 등을 시도합니다. 이로 인해 사용자 측면에서 직접적인 피해가 발생할 수 있습니다.

반면, SQL 인젝션은 웹 애플리케이션의 데이터베이스를 공격해 데이터를 탈취하거나 조작하거나, 심지어 데이터베이스를 손상시키기도 하는데요. 이 공격은 데이터베이스에 저장된 민감한 정보를 노리며, 기업의 비즈니스 운영에 심각한 피해를 초래할 수 있습니다.

2) 취약점 탐지 방법

XSS 공격, SQL 인젝션, 버프 스위트, 보안 컨설팅

출처: Shutterstock

XSS와 SQL 인젝션 취약점을 탐지하는 방법은 소스 코드 분석, 퍼징, 도구 활용으로 나눌 수 있습니다.

✔️ 소스 코드 분석

HTML, JavaScript, SQL 코드 등을 분석하여 취약점을 찾는 방법입니다.

✔️ 퍼징(Fuzzing)

다양한 입력값을 주입해 웹 애플리케이션의 반응을 확인하고 취약점을 탐지합니다.

✔️ 도구 활용

OWASP ZAP, 버프스위트와 같은 보안 도구를 사용해 자동으로 취약점을 분석합니다.

이러한 분석 방법을 기반으로 정기적인 점검과 보안 컨설팅을 통해 지속적으로 웹 취약점을 관리하는 것이 중요합니다.

◼︎ XSS & SQL 인젝션 공격 예방 방법

1) XSS 대응 방법

🔐입력 값 필터링

웹 페이지 변조나 사용자 정보 탈취를 유발하는 XSS 공격을 방지하기 위해 입력 값 필터링이 필요합니다. 사용자가 입력한 <, >, ', " 등의 특수문자를 HTML Entity로 치환하여 악성 스크립트 실행을 차단합니다.

XSS 공격, SQL 인젝션, 버프 스위트, 보안 컨설팅

🔐WhiteList 필터링

WhiteList 방식은 허용된 문자나 패턴만 통과시키고 나머지는 차단하는 방법입니다. 즉, 숫자만 입력 가능한 필드에는 숫자만 허용하고, 특수 문자나 HTML 태그는 차단합니다.

✔️ BlackList 방식

금지할 패턴을 지정하지만, 새로운 공격 방식이 등장할 때마다 업데이트가 필요해 관리가 어렵습니다.

✔️ WhiteList 방식

허용할 항목만 지정하면 되기 때문에 보안성과 관리 효율성이 높습니다.

🔐라이브러리 및 보안 도구 활용

마지막으로 XSS 필터 관련 외부 라이브러리를 활용하면 XSS 공격을 효과적으로 방어할 수 있습니다. Lucy-XSS-Filter와 OWASP ESAPI는 대표적인 XSS 필터 라이브러리로, 프로젝트 환경과 필요에 따라 적절한 라이브러리를 선택하여 다양한 패턴의 공격을 사전에 탐지하고 차단해 보안을 강화합니다. 또한, 버프 스위트와 같은 웹 보안 도구를 통해 웹 애플리케이션의 입력 필터링이 적절히 작동하는지 검증할 수 있습니다.

2) SQL Injection 대응 방법

🔐 파라미터화된 쿼리

SQL Injection을 방지하는 가장 효과적인 방법으로, 쿼리문을 템플릿 형태로 미리 준비하고 사용자 입력은 파라미터로 전달해 구조 변경을 차단합니다. 입력 값은 쿼리 실행 시점에 안전하게 전달되어 악성 코드 삽입을 막을 수 있습니다.

🔐입력 값 필터링

사용자 입력을 허용된 패턴으로 제한하거나 위험한 문자를 제거하여 공격을 차단합니다. Prepared Statement와 함께 사용하면 보안 효과가 더욱 강화됩니다.

🔐DB 계정 권한 최소화

웹 애플리케이션과 관리자 계정을 분리하고, 최소 권한만 부여해야 합니다. 계정이 탈취되더라도 제한된 권한으로 인해 데이터베이스 전체를 장악하기 어렵습니다.

🔐보안 도구 활용

버프 스위트와 같은 보안도구를 활용하여 SQL Injection 공격 가능성을 점검하는 것이 중요합니다. SQL Injection 시도가 가능한 파라미터를 탐지하고 다양한 입력값을 반복적으로 시도하며 애플리케이션의 반응을 분석해 취약점을 찾아내고, 예상치 못한 입력에도 안전하게 작동하도록 보안을 강화할 수 있습니다.

SK쉴더스와 함께 웹 공격 미리 예방하세요!

XSS 공격, SQL 인젝션, 버프 스위트, 보안 컨설팅

웹 보안은 마치 전쟁과 같습니다. 공격자는 끊임없이 새로운 공격 기법을 개발하고, 방어자는 이를 막기 위해 노력합니다. 하지만 가장 효과적인 방어는 미리 예방하는 것입니다. SK쉴더스는 웹 보안의 핵심인 XSS와 SQL 인젝션에 대한 철저한 분석과 맞춤형 보안 컨설팅을 제공합니다.

✅ 검증된 전문성

국내 최고 수준의 보안 전문가 그룹 EQST가 최신 공격 기법과 보안 기술을 연구하며 기업별 환경에 최적화된 보안 가이드를 제공합니다.

✅ 고객사 맞춤형 서비스

금융, 공공, 의료 등 다양한 산업에서 쌓은 20년 이상의 경험을 바탕으로, 각 기업의 비즈니스 특성에 맞춘 맞춤형 보안 점검을 제공합니다.

✅ 고도화된 모의해킹 방법론

최신 보안 트렌드와 법제 동향을 반영한 IPTM(Infosec Penetration Test Methodology)을 통해 고도화된 모의해킹 서비스를 제공합니다.

✅ 원스톱 진단 및 해결

취약점 진단부터 보완, 지속적인 관리까지 원스톱으로 지원하여 보안 수준을 안정적으로 유지할 수 있도록 돕습니다.

SK쉴더스의 정보보안 컨설팅과 함께 웹 보안의 최전선에서 미리 공격에 대비하세요!

[콘텐츠 내용 출처]

개인정보보호위원회, 해킹사고로 바라본 개인정보 유출 - 3부 – SQL 인젝션

보안뉴스, [카드뉴스] ‘오래된 위협, 그러나 여전히 강력한’ SQL 인젝션

디지털 보안 컨설턴트와 함께,
맞춤 서비스와 견적을 알아보세요
중소기업 맞춤형 정보보안
사이버가드 온라인 바로가기
실시간 카카오 상담으로
쉽고 빠르게 안내받으세요
전문상담 예약
전화상담 연결
1800-6400

이름을 입력해주세요.

연락처를 입력해주세요.

상담 시간을 선택해주세요.

문의가 완료되었어요.

URL이 복사되었습니다.

구독신청이 완료되었습니다.

불편∙제안사항글 올리기 완료되었습니다