SQL Injection VS XPath Injection

황인환·2024년 8월 13일

공통점

  • 데이터 노출: 두 공격 모두 민감한 정보를 유출할 수 있습니다.
  • 인증 우회: 인증 메커니즘을 우회하여 시스템에 비정상적으로 접근할 수 있습니다.
  • 입력값 조작: 사용자가 입력값을 조작하여 쿼리의 논리를 변경합니다.

차이점

  • 쿼리 언어: SQL은 관계형 데이터베이스에서 사용되며, XPath는 XML 문서의 쿼리에 사용됩니다.
  • 대상 시스템: SQL Injection은 관계형 데이터베이스를 대상으로 하고, XPath Injection은 XML 데이터 저장소를 대상으로 합니다.
  • 취약점 발생 위치: SQL Injection은 SQL 쿼리에서, XPath Injection은 XPath 쿼리에서 발생합니다.
  • 보호 방법: SQL Injection은 Prepared Statements와 같은 SQL-specific 보호 방법을 사용하며, XPath Injection은 XML-specific 보호 방법을 사용합니다.

항목SQL InjectionXPath Injection
쿼리 언어SQL (Structured Query Language)XPath (XML Path Language)
대상관계형 데이터베이스 (RDBMS) 예: MySQL, PostgreSQL, Oracle XML데이터 저장소 예: XML 파일, XML 데이터베이스
취약점 발생 위치SQL 쿼리에서 사용자 입력값이 직접 삽입될 때XPath 쿼리에서 사용자 입력값이 직접 삽입될 때
주요 공격 방식SQL 쿼리의 구조를 조작하여 데이터베이스의 데이터 검색, 수정, 삭제 등XPath 쿼리의 구조를 조작하여 XML 데이터의 검색, 수정, 삭제 등
위험데이터베이스 데이터 유출, 데이터 변조, 인증 우회, 시스템 권한 상승XML 데이터 유출, 데이터 변조, 인증 우회, 데이터 무결성 해칠 수 있음
입력값 예시' OR '1'='1' or '1'='1
보호 방법Prepared Statements, 입력값 검증, 쿼리 필터링, 최소 권한 원칙입력값 검증, 쿼리 필터링, XML 문서의 구조 및 권한 관리
주요 예시SELECT * FROM users WHERE username = 'admin' AND password = 'password'/users/user[username/text() = 'admin' and password/text() = 'password']
공격 결과민감한 데이터 유출, 인증 우회, 데이터 변조, 시스템 권한 상승민감한 데이터 유출, 인증 우회, 데이터 변조, 성능 저하 공격

0개의 댓글