본문 바로가기
3. 웹 애플리케이션 취약점 진단

프로세스 검증 누락 - 권한을 우회하여 타인의 글 변조

by Robert8478 2024. 6. 21.

게시글은 기본적으로 자신이 작성한 글만 수정 및 삭제가 가능하다. 하지만 프로세스 검증이 되지 않는 사이트의 경우 타인의 게시글을 변조하고 삭제하는 취약점이 존재할 수 있다.

해당 게시판에서 계정은 단 1개의 게시글에 수정 권한이 존재했다. 해당 수정페이지에 접근했다.

접근하고 나면 GET 방식이라 요청한 URL이 보이는데 seqNo 값을 받는 것이 확인됐다. 만약 이 값을 타인의 게시글 고유의 seqNo 값으로 변경하면 어떻게 될까?

그 결과 검증이 이루어지지 않아 타인의 게시글에 접근할 수 있었다. 이렇게 정상적으로 변조까지 가능했던 것을 확인했다.

뿐만 아니라 해당 페이지의 소스코드에 존재하는 자바스크립트 구문을 살펴보면 수정과 제거 관련 함수가 노출되어 있으며, 위 함수를 직접 호출하거나 혹은 함수에 나온 URL 주소를 요청하게 되면 일반적으로 권한이 존재하지 않아 변조 및 삭제가 불가능한 타인의 게시글을 조작할 수 있게 된다.

이러한 취약점의 가장 좋은 대응 방안은 세션을 검증하는 것이다. 계정 별로 난수화되는 세션을 발급하고 이러한 세션 키를 Server-Side 로직에 구축하여 동일한 세션 키가 아니라면 게시글의 작성, 수정, 삭제 페이지에 접근이 불가능하도록 로직을 구축하는 것이다. 그렇게 될 경우 일반적으로 이러한 취약점은 발현이 불가능하다.