Code::Security/비박스(BWAPP)

비박스(bWAPP) A2 Session Mgmt. - Session ID in URL

태군 코드 2022. 7. 6. 15:06
반응형

이 도구를 이용하여 허용받지 않은 서비스 대상으로 해킹을 시도하는 행위는 범죄 행위입니다. 해킹을 시도할 때에 발생하는 법적인 책임은 그것을 행한 사용자에게 있다는 것을 명심하시기 바랍니다.

 

A2 - Session Mgmt. - Session ID in URL

 

smgmt_sessionid_url.php

'smgmt_sessionid_url.php' 페이지에서는 다른 사용자의 세션 정보를 이용하여 권한을 획득할 수 있는 취약점을 담고 있습니다.

 

해당 페이지를 살펴 보기전에 브라우저 두 개를 사용하도록 하겠습니다. 저는 크롬과, 익스플로러를 사용하지만 브라우저는 자신이 편한 것을 사용하시면 됩니다.

 

난이도 하

smgmt_sessionid_url.php bee 계정 로그인

크롬 브라우저에서 bee 계정으로 로그인한 후 smgmt_sessionid_url.php 페이지를 살펴보면 세션 ID는 절대 URL에 노출되면 안된다는 문구를 확인할 수 있습니다. 하지만 메시지와 달리 URL을 보면 세션 ID가 노출되어 있는 것을 확인할 수 있습니다.

 

이제 공격을 위하여 다른 브라우저에서 비박스 로그인 페이지에 접속을 한다음 버프스위트를 사용하여 패킷을 가로채도록 하겠습니다.

 

익스플로러에서 로그인 페이지 접속

 

로그인 페이지 패킷 확인

버프스위트를 통하여 로그인 페이지를 가로챈 후 Host 헤더와 Cookie 헤더를 살펴봅니다.

 

Host 헤더와 Cookie 헤더 수정

패킷을 잡은 상태에서 Host 헤더와 Cookie 헤더의 값을 크롬에서 확인하였던 URL 정보에 노출된 값으로 수정하여 주신 후 Forward 버튼을 눌러 줍니다.

 

bee 계정으로 접근 확인

Forward 버튼을 눌러 값을 전달해 주면 인증 단계를 거치지 않고도 공격 대상의 세션 아이디로 페이지 접근이 가능한 것을 확인할 수 있습니다.

 

smgmt_sessionid_url.php 페이지 소스코드

smgmt_sessionid_url.php 페이지의 소스 코드를 확인해 보면 난이도 하에서는 PHP의 'header' 함수를 사용하여 HTTP 헤더를 서버로 보냅니다. header 함수에 사용된 'Location'은 콜론 뒤에 있는 주소로 리다이렉션 하는 헤더 메시지로 세션 ID를 URL에 노출이 되게 코드가 작성되어 있는 것을 알 수 있습니다.

 

난이도 중/상에서는 페이지에 들어가도 URL에 세션 ID를 노출하지 않으며, 페이지의 소스코드를 확인하여도 별다른 동작을 하지 않게 소스코드가 짜여 있는 것을 확인할 수 있습니다.

반응형