[웹 취약점 진단/모의해킹/해킹] XPath 인젝션

목차

     

     

    XI - XPath 인젝션

     

    ■ 점검내용

     

    웹페이지 내 조작된 XPath 쿼리 공격 가능성 점검

     

    ■ 점검목적

     

    XPath 쿼리에 대한 적절한 필터링을 적용하여 웹 사이트의 로직 손상 및 특정 데이터 추출을 차단하기 위함

     

    ■ 보안위협

     

    해당 취약점이 존재할 경우 프로그래머가 의도하지 않았던 문자열을 전달하여 쿼리문의 의미를 왜곡시키거나 그 구조를 변경하고 임의의 쿼리를 실행하여 인가되지 않은 데이터를 열람할 수 있으므로 적절한 필터링 로직 구현이 필요함

     

    ■ 참고

     

    ※ 소스코드 및 취약점 점검 필요

     

     

    점검대상 및 판단기준

     

    ■ 대상 : 웹 애플리케이션 소스코드, 웹 방화벽

     

    양호

    쿼리 입력 값에 대해 검증이 이루어지는 경우

     

    취약

    쿼리 입력 값에 대해 검증이 이루어지지 않는 경우

     

    ■ 조치방법

     

    쿼리 입력 값에 대해 검증 로직 추가 구현

     

     

    점검 및 조치 방법

     

    ■ 점검방법

     

    Step 1) ['and'a'='a, 'and'a'='b], [ and 1=1, and 1=2]의 셋트의 값을 각각 삽입하여 쿼리의 참, 거짓에 따라 반환되는 페이지가 다른지 확인

     

    Step 2) 다음 값을 입력해서 에러가 발생하지 않는지 확인
    ‘ or count(parent::*[position()=1])=0 or ‘a’='b
    ‘ or count(parent::*[position()=1])>0 or ‘a’='b
    1 or count(parent::*[position()=1])=0
    1 or count(parent::*[position()=1])>0

     

    ■ 보안설정방법


    * XPath 쿼리에 사용자가 값을 입력할 수 있는 경우, 엄격한 입력 값 검증을 통해 필요 문자만을 받아들이게 함 ( ) = ‘ [ ] : , * / 등 XPath 쿼리를 파괴하는 특수문자는 입력하지 못하게 하여야 하며, 특정 특수문자만을 필터링하는 것이 아닌 허용된 문자 이외의 모든 입력을 허용하지 않아야 함

     

     

    조치 시 영향 : 일반적인 경우 영향 없음

     

    댓글

    Designed by JB FACTORY