• OS
  • 물리서버
  • 보안
  • 네트워크
  • 클라우드
  • 자격증
카테고리

3.1 SQLi_WAF_1

2025. 1. 22. 12:41·Security/CTF
반응형

목표

WAF(Web Application Firewall)의 필터링을 우회하여 admin 계정으로 로그인에 성공하는 것을 목표로 합니다.


환경

대상 웹 애플리케이션에는 기본적인 SQL 인젝션을 차단하기 위해 WAF가 적용되어 있습니다.
WAF는 SQL 인젝션 공격을 방지하기 위해 다음과 같은 필터링 규칙을 적용합니다:

  • ', OR, --와 같은 특수 문자와 키워드를 차단.
  • OR은 ||로, =는 IN으로, --는 #로 대체함으로써 우회 가능.

공격 전략

WAF 필터링 규칙을 우회하기 위해 다음과 같은 전략을 사용했습니다:

  1. OR 대신 || 사용.
  2. = 대신 IN 사용.
  3. -- 대신 # 사용.

이러한 대체 기법을 통해 필터링을 우회하고 SQL 인젝션을 성공적으로 수행할 수 있었습니다.


공격 과정

1. 로그인 페이지 탐색

대상 웹 애플리케이션의 로그인 페이지는 username과 password를 입력받아 데이터베이스에서 확인하는 구조를 가지고 있었습니다. 일반적인 SQL 쿼리는 다음과 같을 것으로 추정되었습니다:

 
SELECT * FROM users WHERE username = '[username]' AND password = '[password]';

2. WAF 필터링 규칙 확인

공격을 시도하면서 WAF가 다음과 같은 규칙으로 SQL 인젝션 구문을 차단함을 확인했습니다:

  • OR, = 및 --와 같은 키워드 및 특수 문자를 필터링.
  • 이를 우회하기 위해 다음과 같은 대체 기법을 적용했습니다:
    • OR 대신 ||.
    • = 대신 IN.
    • -- 대신 #.

3. 필터링 우회 및 페이로드 작성

WAF 규칙을 우회하기 위해 다음과 같은 페이로드를 username 필드에 입력했습니다:

 
1' || username IN ("admin") #

이 페이로드는 SQL 쿼리를 다음과 같이 변형합니다:

 
SELECT * FROM users WHERE username = '1' || username IN ('admin') # AND password = '[password]';
  • 1' ||는 항상 참인 조건을 만들어줌.
  • username IN ("admin")는 username이 admin일 경우 참이 되도록 설정.
  • #는 SQL에서 주석 처리를 하여 뒤의 조건(AND password = '[password]')을 무시.

4. 로그인 성공 확인

해당 페이로드를 입력한 결과, 비밀번호 조건을 우회하여 admin 계정으로 로그인에 성공했습니다.
실제 비밀번호를 알지 못하더라도 이 방식으로 인증을 우회할 수 있었습니다.


 

이번 실습을 통해 다음을 확인할 수 있었습니다:

  1. 기본적인 WAF 필터링 규칙(예: OR, =, -- 차단)은 대체 기법(||, IN, #)을 통해 우회할 수 있습니다.
  2. SQL 인젝션 공격을 방어하기 위해서는 WAF만으로는 충분하지 않으며, 다음과 같은 보안 조치가 필요합니다:
    • 프리페어드 스테이트먼트(Prepared Statement) 사용: 모든 SQL 요청을 안전하게 처리.
    • 입력 값 검증 및 필터링 강화: 사용자의 입력 값을 철저히 검증.
    • 로그 모니터링: 비정상적인 로그인 시도를 탐지하고 대응.

이번 공격은 WAF가 SQL 인젝션에 취약할 수 있음을 보여주며, 보다 강력한 보안 대책이 필요하다는 점을 강조합니다.

반응형

'Security > CTF' 카테고리의 다른 글

8.1 SSTI - server flag  (0) 2025.01.22
3.3 SQLi_WAF_3  (0) 2025.01.22
Web_main 기초 과정 정리  (0) 2025.01.20
6. XSS - mitigations  (0) 2025.01.20
3.2 SQLi_WAF_2  (0) 2025.01.20
'Security/CTF' 카테고리의 다른 글
  • 8.1 SSTI - server flag
  • 3.3 SQLi_WAF_3
  • Web_main 기초 과정 정리
  • 6. XSS - mitigations
wogho
wogho
    반응형
  • wogho
    눙이의 인프라 메모장
    wogho
  • 전체
    오늘
    어제
    • 분류 전체보기
      • OS
        • Linux
        • Windows Server
      • Physical Server
        • Xenserver
        • Equipment
      • Network
        • Cisco
      • Cloud
        • GCP
        • AZURE
        • AWS
      • Security
        • Basic
        • CTF
        • Solution
      • Language
      • Certificate
  • 블로그 메뉴

    • OS
    • 물리서버
    • 보안
    • 네트워크
    • 클라우드
    • 자격증
  • 링크

  • 공지사항

    • Tistory 추천 스킨 및 폰트 (hELLO & d2co⋯
  • 인기 글

  • 태그

    lsi
    MEGARAID
    CentOS
    리눅스
    윈도우서버
    megacli
    Linux
    ubuntu
    윈도우
    debian
    windows
    PowerShell
    mdadm
    Windows Server
    SMB
    데비안
    RAID
    네트워크
    서버
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
wogho
3.1 SQLi_WAF_1
상단으로

티스토리툴바