본문 바로가기

Security/Hacking & Security

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

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



■ 취약점 설명

    - 외부 입력 값을 적절한 검사과정 없이 XPath 쿼리문 전달이 가능해 지면, 공격자가 쿼리문의 구조를 임의로 변경 가능하게 하는 취약점


■ 보안 대책

    ⑴ XPath 쿼리에 사용되는 외부 입력데이터에 대하여 특수문자(", [, ], /, =, @ 등) 및 쿼리 예약어 필터링 수핼

     인자화된 쿼리문을 지원하는 XQuery문 사용


■ 코드예제

    - 다음 예제에서 name의 값으로 user1', passwd의 값으로 'or '=' 을 전달하면 다음과 같은 질의문이 생성되어 인증과정을 거치지 않고 로그인이 가능한 코딩

      // users/user[login/text() = 'user1 and password/text() = " or "="]/home_dir/text()


    - 인자화된 쿼리문을 지원하는 XQuery를 사용하여 미리 쿼리 골격을 생성하고, 이에 인자값을 설정함으로써 외부입력으로 인해 쿼리 구조가 바뀌는 것을 차단하도록 코딩






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


문의 사항 남기기