본문 바로가기

Security/Hacking & Security

[보안 해킹] 홈페이지 개발 보안 방안 - XQuery 인젝션

[보안 해킹] 홈페이지 개발 보안 방안 - XQuery 인젝션



■ 취약점 설명

    - XML 데이터에 대한 동적 쿼리문(XQuery)을 생성할 때 외부 입력 값에 대해 적절한 검증절차가 존재하지 않으면, 공격자가 쿼리문의 구조를 임의로 변경 가능하게 하는 취약점


■ 보안 대책

    ⑴ XQuery에 사용되는 외부 입력데이터에 대하여 특수 문자 및 쿼리 예약어 필터링

    ⑵ XQuery를 사용한 쿼리문은 스트링을 연결하는 형태로 구성하지 않고 인자(파라미터)화된 쿼리문 사용


■ 코드예제

    - 다음의 예제에서는 외부의 입력(name)값에 something' or '1'='1' 을 name 의 값으로 변조한 후 executeQuery를 사용하여 쿼리문을 전달하면 파일 내의 모든 값이 출력될 수 있는 코딩 'doc('users.xml')/userlist/user[uname='something' or '1'='1']"


    - 다음의 예제에서는 외부 입력 값을 받고 해당 값 기반의 XQuery상의 쿼리 구조를 변경시키지 않는 bindXXX함수를 이용함으로써 외부의 입력으로 인하여 쿼리 구조가 바뀌는 것을 차단하도록 코딩






※ 문의 사항은 메일 : jyuhm@sntkor.com 이나 070-8611-4853


문의 사항 남기기