기준

취약점 설명

ID/PW 찾기와 같은 사용자 인증이 꼭 필요한 부분이 존재합니다.

이러한 경우 2차 인증을 구현하여 사용자 인증을 통해 권한이 없는 사용자가 침해할 수 없도록 조치하는 것이 일반적입니다.

 

하지만 비밀번호가 설정되어 있는 글이나 타 사용자 ID에 인증 값 변조를 통해 접근이 가능한 경우 발생하는 취약점입니다.

 

해당 취약점은 인증이 필요한 부분이 구현된 인증이 미흡하여 열람/변조가 가능하여 서비스 가용성을 떨어트리거나 관리자 ID가 탈취당한 경우 공격자에 의해 웹 서비스가 장악될 수 있는 위험한 취약점입니다.

 

다만 여기에서 중요한 것은 후에 작성할 불충분한 인가와의 차이점입니다.

아래에 제가 생각하는 차이점을 올려보도록 하겠습니다.

 

불충분한 인증

위의 사진을 보면 인증정보를 변조하여 관리자 ID를 접근하는 공격자를 그림으로 나타내 보았습니다.

예를 들어 URL이 http://www.test.com/board/edit.jsp?id=test인 페이지가 있다고 가정하겠습니다.

이런 경우 위의 URL의 마지막 부분의 id를 admin으로 바꿔주었을 때 admin으로 접근 가능할 때 admin에 대한 인증이 없는 경우로 불충분한 인증으로 포함되는 것입니다.

 

즉, 로그인과 같이 인증이 필요한 부분에 인증이 없거나 부족한 경우 불충분한 인증이라고 판단합니다.

 

불충분한 인가

위의 사진은 권한이 없는 페이지에 접근하는 공격자를 표현한 그림입니다.

예를 들어 타 사용자 혹은 관리자가 작성한 글이나 공지사항이 존재한다고 가정하겠습니다.

작성된 글이 타 사용자를 위해 공개된 글이 아닌 경우 공격자가 인증 정보를 바꾸지 않은 상태로 접근 가능하면 불충분한 인가에 포함되는 것입니다.

 

즉, 공개되지 않거나 권한이 없을 때 별 다른 인증 정보 변경 없이 접근이 가능한 경우 불충분한 인가라고 판단합니다. 

 

공격 방법

(실습할 수 있는 페이지를 찾지 못해서 설명으로 대체하겠습니다.ㅠㅠ)

위와 같은 로그인 페이지가 있다고 가정하겠습니다.

username값이 rokefoke였으나 admin으로 바꿔주고 접근했을 때 정상적으로 접근이 된다면 취약한 것입니다.

 

이외에 URL에 포함된 ID값을 변조하는 방식으로도 시도 가능합니다.

위는 쿠키 값입니다.

쿠키 값은 세션에 더 가깝지만 쿠키에 ID가 포함된 경우 ID 값만을 변조하여 시도하는 경우도 존재합니다.

 

--------------------------------------------------------------------------------------------------------------------

실제 페이지를 보여드릴 순 없어 위처럼 설명으로 대체하여 포스팅하였습니다.

 

만약 실습할 수 있는 페이지를 방명록에 남겨주신다면 작성하여 포스팅하도록 하겠습니다.

(실습할 공간을 알고 계신 분은 꼭 알려주시길 부탁드려요ㅠㅠㅠ)

+ Recent posts