SQL Injection – UNION 공격, 다른 테이블에서 데이터 가져오기 | PortSwigger Lab Note #4

발행: (2026년 3월 9일 PM 10:20 GMT+9)
2 분 소요
원문: Dev.to

Source: Dev.to

Target

Tools Used

  • Browser
  • Burp Suite

Vulnerability Summary

  • Type: SQL Injection
  • Description:
    실습을 해결하려면 모든 사용자 이름과 비밀번호를 가져오는 SQL 인젝션 UNION 공격을 수행하고, 해당 정보를 사용해 관리자 계정으로 로그인합니다.

Steps to Exploit

  1. 이전 노트에서 언급한 기법을 사용해 쿼리가 반환하는 열의 개수를 파악하고, 텍스트 데이터를 포함하는 열을 확인합니다. 쿼리가 두 개의 열을 반환하며, 두 열 모두 텍스트를 포함한다는 것을 확인합니다.

    Column enumeration result

  2. 페이로드를 주입해 관리자의 비밀번호를 얻습니다.

    Payload injection screenshot 1

    Payload injection screenshot 2

Remediation

  • 파라미터화된 쿼리 / 준비된 문(statement) 사용.
  • 서버 측 입력 검증 구현.
  • 사용자 입력을 이스케이프하고 정제(sanitize)하기.

Lessons Learned

원본 쿼리가 반환하는 열의 개수를 파악하고 문자열 데이터를 담을 수 있는 열을 식별하면, 흥미로운 데이터를 추출할 수 있는 위치에 도달하게 됩니다.

0 조회
Back to Blog

관련 글

더 보기 »