보안/보안 개념

SQL Injection WAF 및 공격차단

no-brake 2026. 5. 19. 13:55

[입력 값 검증]

  • 악의적인 입력 값 검증 후 차단
  • SQL 인젝션은 특수한 문자나 패션 사용하기 때문에 해당 문자나 패턴을 감지 후 차단
  • Sanitizing 같이 서버에서 악의적인 문자열만 필터링 한 후 처리

[사전에 컴파일 된 쿼리 사용]

  • Prepared Statrment와 같은 사전에 컴파일 된 쿼리 사용
  • 컴파일 된 쿼리는 입력 값에 의해 변경 되지 않아 효과적

[시스템 하드링]

  • DB를 최소 권한으로 운영하거나 입력 값의 유형을 지칭

[WAF]

  • 웹 어플리케이션 방화벽
  • 사전에 정의해 둔 룰셋에 따라 공격 차단
  • SQL Injection은 어플리케이션 상에서 동작하기 때문에 WAF 차단 가능
  • WAF 무력화시 공격에 노출되기 때문에 입력값을 필터링하는 등 추가적인 작업 필요

[실습]

  • 해당 실습은 ModSecurity 사용

  • SQL Injection 룰셋 설명
    • SecRule : 사용자가 직접 정의한 방화벽 룰셋 의미
    • ARGS : 패킷 대부분의 필드에서 검사
    • 첫번쨰 "..." : 연산자라고 하며, 정규식을 사용하거나 특정 패턴 등록시 WAF에서 해당 정규식과 매칭되는 패킷을 찾아 룰셋에 매칭
    • 두번쨰 "..." 
      • 연산자에서 지정된 패턴에 매칭된 패킷이 존재 시, 행해지는 동작
      • Chain : 룰셋이 매칭될 경우, 다음 룰셋(하위)과 연동하여 매칭 진행
      • msg : 조건 매칭 시 해당 패킷 로그에 기록을 같이하는 문자열

  • ID : 임의의 문자
  • PW : SQL Injection 공격인 'or'1'='1
  • 로그인 차단 확인

  • SQL Injection 공격 탐지되어, 로그인 시도 ID 및 PW 정보 확인
  • 로그 내용

  • 게시물 URL를 통한 자동화 SQL Injection 공격을 하기 위한 URL 수집
sqlmap --current-db -u "(복사한 URL)"

  • WAF로 차단되어 DB 정보 유출 실패

'보안 > 보안 개념' 카테고리의 다른 글

LFI와 RFI  (0) 2026.05.20
XSS-WAF로 차단  (0) 2026.05.20
SQL Injection 개념 및 실습  (0) 2026.05.19
웹 프록시 개념 및 실습  (0) 2026.05.19
윈도우 권한 상승 케이스 분석 실습(Fodhelper UAC Bypass)  (0) 2026.05.19