이 도구를 이용하여 허용받지 않은 서비스 대상으로 해킹을 시도하는 행위는 범죄 행위입니다. 해킹을 시도할 때에 발생하는 법적인 책임은 그것을 행한 사용자에게 있다는 것을 명심하시기 바랍니다.
세션 관리(Session Management)가 소홀하면 세션을 가로채서 재사용 공격이 가능합니다. 실무에서도 세션 처리를 제대로 하지 않아 많은 취약점이 발견되기도 합니다.
A2 - Session Mgmt. - Administrative Portals (관리자 페이지 접근)
'smgmt_admin_portal.php' 페이지는 관리자 권한을 체크하는 전달 값을 수정하여 관리자 인증 없이 내부 페이지에 접근이 가능한지 확인을 하기 위한 취약한 페이지입니다. 비인가 사용자가 관리자 페이지에 접근이 가능하다면 중요 정보 확인 및 정보 노출이 발생할 수 있기 때문에 관리자 페이지에 접속하기 위해서는 인증 프로세스가 꼭 필요합니다.
'smgmt_admin_portal.php' 페이지를 살펴 보기 전에 테스트 계정을 생성 후 테스트 계정으로 로그인 후에 해당 페이지를 살펴보도록 하겠습니다.
난이도 하
난이도 하에서는 URL 주소에 포함된 전달 값을 조작하여 간단히 우회 할수 있습니다. smgmt_admin_portal.php 페이지에 접속하면 URL에 'admin' 변수가 노출되어 있는 것을 확인할 수 있습니다. URL 정보나 쿠키 값에 추축 하기 쉬운 변수가 있다면 여러 값으로 값을 변경하면서 확인해 보는 것이 좋습니다.
admin 변수에 입력된 0을 1로 변경을 해보면 URL 조작으로 현재 페이지에 잠금을 풀었다는 메시지를 확인 할수 있습니다. 해당 공격은 매우 간단한 공격이지만 아직도 이런 공격이 가능한 취약점이 많이 존재하고 있어 전달되는 값을 유심히 살펴볼 필요성이 있습니다.
난이도 중
난이도 중에서는 URL 주소에 값이 노출되지 않는것을 확인할 수 있으며, 웹 프록시 툴을 이용하여 해당 페이지를 살펴보도록 하겠습니다.
버프스위트로 HTTP 요청 헤더를 확인해 보면 쿠키 값에 admin 변수가 있는 것을 확인할 수 있습니다. 여기서 Request 부분에서 마우스 오른쪽 클릭을 하여 Send to Repeater를 선택하여 Repeater 탭으로 해당 패킷을 전달하여 줍니다.
쿠키값에서 확인된 admin 값을 0에서 1로 바꿔준히 Go 버튼을 눌러서 확인을 하면 쿠키를 변조하여 페이지의 잠금을 풀었다는 메시지를 확인할 수 있습니다. 해당 예제처럼 쿠키 값에 admin, security_level 같이 권한과 관련된 단어들이 평문으로 노출되는 경우에는 우회 가능성이 있습니다.
난이도 상
난이도 상에 접속하면 페이지가 잠겨 있으며 dba 관리자에게 연락하라는 내용의 메시지를 확인할수 있습니다. 그럼 아까 만든 테스트 계정을 로그아웃 한 뒤 bee 계정으로 로그인한 후 해당 페이지를 확인해 보도록 하겠습니다.
bee 계정 정보는 dba에 있기 때문에 관리자 페이지로 접속이 가능한 것을 확인 할수 있습니다.
대응방안
smgmt_admin_portal.php 페이지의 소스 코드를 확인해보면 이전 단계와는 다르게 admin 변수의 값이 1인지 체크하고 세션 정보가 admin 계정인지 검사한 후 해당 페이지의 잠금을 해제합니다. 따라서 admin 계정인 'bee'로 접속하면 dba의 도움을 받아 이 페이지의 잠금을 해제했습니다. 라는 메시지를 확인할 수 있는 것입니다.
'Code::Security > 비박스(BWAPP)' 카테고리의 다른 글
비박스(bWAPP) A2 Session Mgmt. - Cookies (Secure) (0) | 2022.07.05 |
---|---|
비박스(bWAPP) A2 Session Mgmt. - Cookies (HTTPOnly) (0) | 2022.07.04 |
비박스(bWAPP) A2 Broken Auth. - Weak Passwords (0) | 2022.06.28 |
비박스(bWAPP) A2 Broken Auth. - Password Attacks (0) | 2022.06.21 |
비박스(bWAPP) A2 Broken Auth. - Logout Management (0) | 2022.06.16 |