LAB: Role Based Access Control [ 역할 기반 엑세스 제어 ]
[Description]
직원 목록 페이지에서는 많은 계정이 존재하며 비밀번호는 직원의 첫 이름의 소문자입니다. 우리는 이러한 직원의 계정으로 로그인하여 삭제 기능이 있는 직원의 계정을 찾아 무단으로 여러 직원들의 계정들을 삭제가 가능한지에 대한 취약점 진단 여부입니다. 우리는 Tom 의 계정을 삭제하여야합니다.
[그림1]
[그림1] Tom 의 계정으로 로그인한 그림.
우리는 무단으로 직원의 계정을 삭제하기 위해 직원의 계정중 Tom 의 계정으로 로그인한 결과 Tom 계정에는 삭제 기능이 존재하지 않습니다.
[그림2]
[그림2] John 계정으로 로그인한 그림.
John 계정으로 로그인 시 Tom 계정으로 로그인시 존재하지 않았던
따라서
[그림3]
[그림3]
따라서 , Tom 의 계정으로 로그인할때 사용되는
[그림4]
[그림4] Tom 계정으로 로그인 시 Request 값 확인 그림.
Tom 계정으로 로그인을 할 때 패킷을 잡아 Request 값을 확인해 보면
따라서 Tom 의 계정으로 로그인하여 action= 매개변수에
[그림5]
[그림5] Tom의 계정의 id 와 , action 매개변수를
Tom 의 계정으로 접근하여 , 아무 기능을 눌러 패킷을 잡고 , action 매개변수를
[그림6]
[그림6] 계정 삭제가 성공한 그림.
[impact]
사용자가 입력한 매개변수
[Description]
직원 목록 페이지에서는 많은 계정이 존재하며 비밀번호는 직원의 첫 이름의 소문자입니다. 우리는 이러한 직원의 계정으로 로그인하여 삭제 기능이 있는 직원의 계정을 찾아 무단으로 여러 직원들의 계정들을 삭제가 가능한지에 대한 취약점 진단 여부입니다. 우리는 Tom 의 계정을 삭제하여야합니다.
[그림1]
[그림1] Tom 의 계정으로 로그인한 그림.
우리는 무단으로 직원의 계정을 삭제하기 위해 직원의 계정중 Tom 의 계정으로 로그인한 결과 Tom 계정에는 삭제 기능이 존재하지 않습니다.
[그림2]
[그림2] John 계정으로 로그인한 그림.
John 계정으로 로그인 시 Tom 계정으로 로그인시 존재하지 않았던
CreateProfile
와 DeleteProfile
기능이 존재합니다.따라서
DeleteProfile
기능을 통해 Tom 의 계정을 무단으로 삭제가 가능한지에 대한 취약점 진단이 가능합니다.[그림3]
[그림3]
DeleteProfile
기능을 통해 Request 값 확인 그림.DeleteProfile
기능을 통해 Request 값 확인 시 employee_id
변수가 존재하며 해당 변수의 ID 를 통해 계정을 삭제합니다.따라서 , Tom 의 계정으로 로그인할때 사용되는
employee_id
를 넣어 삭제시 Tom 의 계정이 삭제가 되는지에 대한 취약점 진단을 시도합니다.[그림4]
[그림4] Tom 계정으로 로그인 시 Request 값 확인 그림.
Tom 계정으로 로그인을 할 때 패킷을 잡아 Request 값을 확인해 보면
employee_id
값은 105 를 사용하고있습니다.따라서 Tom 의 계정으로 로그인하여 action= 매개변수에
DeleteProfile
변수를 넣어삭제를 시도합니다.[그림5]
DeleteProfile
변수로 수정하여 전송하는 그림.Tom 의 계정으로 접근하여 , 아무 기능을 눌러 패킷을 잡고 , action 매개변수를
DeleteProfile
로 수정하여 전송하여 취약점을 진단합니다.[그림6]
[그림6] 계정 삭제가 성공한 그림.
[impact]
사용자가 입력한 매개변수
DeleteProfile
필터링이 재대로 처리되지 않아 공격자는 계정 삭제 및 수정 등 다양한 작업을 수행할수있습니다.
댓글
댓글 쓰기