지식로그
-1' OR 2+940-940-1=0+0+0+1 --

[질문] -1' OR 2+940-940-1=0+0+0+1 --

2025.02.20. 15:13:18 | 문서번호: 22004

전체 답변:
[무물보AI]

입력하신 문자열은 SQL 인젝션 공격 페이로드로 보입니다. 구성과 동작을 요약하면 다음과 같습니다.

  • 원문: -1' OR 2+940-940-1=0+0+0+1 --
  • 의미:
    • "-1'"는 보통 문자열 리터럴을 닫기 위해 사용됩니다(예: WHERE id = '-1' ...).
    • 그 뒤에 오는 OR 절은 조건식을 삽입합니다: 2+940-940-1 = 0+0+0+1
    • 좌변을 계산하면 2+940-940-1 = 1, 우변은 0+0+0+1 = 1 이므로 조건은 참(True)입니다.
    • "--"는 SQL에서 남은 부분을 주석 처리하여 이후 원래 의도된 조건을 무력화합니다.
  • 결과: 원래의 WHERE 절이나 인증 검사에 이 페이로드가 삽입되면 조건이 항상 참이 되어 인증 우회나 데이터 노출 등의 의도된 악용이 가능해집니다.

권장 대응 및 완화책:

  • 항상 파라미터화된 쿼리(Prepared statements / parameterized queries)를 사용하세요. 문자열을 직접 연결하지 마십시오.
  • 입력 검증(허용된 형식 화이트리스트)과 길이 제한을 적용하세요.
  • 데이터베이스 계정에 최소 권한 원칙을 적용하세요(읽기 전용 등 필요 권한만 부여).
  • 오류 메시지에 민감한 정보를 노출하지 않도록 일반화된 에러 처리 및 로깅을 사용하세요.
  • 웹 애플리케이션 방화벽(WAF)을 도입해 의심스러운 페이로드를 차단하는 것을 고려하세요.
  • 정기적으로 보안 테스트(정적 분석, 동적 취약점 스캐닝, 펜테스트)를 수행하세요.

위 설명대로 이 입력은 조건을 항상 참으로 만들어 쿼리 논리를 우회하려는 전형적인 SQL 인젝션 시도입니다.

댓글 달기:
이전 질문:

다음 질문:

비밀번호를 입력하세요.