본문 바로가기

Penetration/WEB

[주요정보통신기반시설] 7. XPath 인젝션

이번에도 많이 발견되지는 않는 취약점인 XPath 인젝션에 대해서 작성해보려고 합니다.

해당 취약점은 진단형태가 SQL 인젝션과 비슷하므로 비슷한 방법인 '(싱글 쿼테이션) 대입을 통해서 반응을 확인해봅니다.

 

(블라인드 형태라면? 흠..)

일단 에러기반을 통해서 통해서 실습해보겠습니다.

먼저 비박스에서 XML/XPath injection 부분을 실행시켜봅니다.

아래는 XPath 인젝션에 사용되는 명령들입니다.

이제 본격적인 실습을 시작해봅니다.

 일단 에러반응을 확인하기 위해서 '(싱글 쿼테이션)을 대입합니다.

대입 후 확인해보면 에러반응을 확인할 수 있습니다.

') or 1=1 ][(' or와 같은 쿼리를 이용하여 전체 테이블을 출력합니다.(항상 참이되는 조건이기 때문에 모든 테이블을 출력합니다.)

이후에 ')] | //* | evil [(' 이런 쿼리를 이용하여 heros 테이블에 존재하는 모든 사용자 정보를 조회할 수 있습니다. //* 는 모든 노드를 조회하라는 뜻이고 evil 은 임의의 문자열을 조회하라는 뜻이며, [(' 는 문법에 맞추기 위해서 임의로 붙인 것입니다.

위의 화면을 스크롤 해서 확인해보면 아래와 같은 화면을 확인할 수 있습니다.

이 취약점의 경우 로그인 창에서 쓰이는 경우에 대해서도 실습해야 하지만 이후 조금 더 학습해서 해당 내용을 게시해보려고 합니다.

 

나중에 조금더 상세하게 공부해보려고 합니다.

이상입니다.