이 페이지에서는 다른 사용자의 세션 정보를 이용해서 권한을 획득 할 수 있는지에 대해 검사한다.
실무에서는 게시판에 스크립트를 삽입해서 사용자의 정보를 획득하거나 네트워크 스푸핑을 통해 획득한다.
[난이도 하]
https://chrome.google.com/webstore/detail/editthiscookie/fngmhnnpilhplaeedifhccceomclgfbg/related?hl=ko
쿠키값을 변경할 수 있는 크롬 확장프로그램을 다운받아서 쿠키값을 변경할 수 있도록 하자.
URL 주소 부분에 떡하니 PHP 세션값이 나와있다. 이 세션값을 복사하면 다른 사용자가 이 페이지에 대한 어드민 권한을 얻을 수 있을 것이다. 다른 사용자로 로그인하기 위해 새 브라우저를 열고 bWAPP login 페이지로 간다.
login 페이지에서 쿠키 변경 확장프로그램을 열고 PHPSESSID 값을 아까 노출되었던 세션값을 넣어주고 아래 초록 버튼을 눌러준다.
아직 로그인 창인 상태에서 smgmt_sessionid_url.php 주소로 이동해주면 로그인 하지 않았는데도 해당 페이지로 이동한 것을 볼 수 있다.
[난이도 중,상]
난이도 중에서는 URL에 세션값이 노출되지는 않았으나 버프슈트에서는 노출되었다.
난이도 중에서 로그인한 세션값을 얻어서 똑같은 방식으로 이동해보자.
그랬더니 전과 똑같이 권한을 얻은것을 확인할 수 있다. 난이도 상도 똑같다. 세션 값을 탈취하게 되면 막기 힘들어지지만
URL 같은 곳에 노출시키는 것은 꼭 막아야만 하는 일이다.
난이도 하의 소스코드를 확인해 보았을 때 PHP의 header 함수를 사용해서 HTTP 헤더를 서버로 보냈다.
header 함수에 사용된 location은 콜론 뒤에 있는 주소로 리다이렉션 하는 헤더 메시지이다. 즉, 세션 아이디를 URL에 노출되도록 한 것이다.
난이도 중,상에서는 저러한 코드가 없기 때문에 노출되지 않았다.
'3. 웹 애플리케이션 취약점 진단 > 비박스를 활용한 웹 애플리케이션 취약점 진단' 카테고리의 다른 글
[비박스를 활용한 웹 취약점 진단] 7-1.크로스 사이트 스크립팅 [Stored XSS-Change Secret] (0) | 2023.12.13 |
---|---|
[비박스를 활용한 웹 취약점 진단] 7.크로스 사이트 스크립팅 [Stored XSS-Blog] (0) | 2023.12.13 |
[비박스를 활용한 웹 취약점 진단] 6.세션 관리 취약점 [관리자 페이지 접근] (0) | 2023.12.13 |
[비박스를 활용한 웹 취약점 진단] 5-2.인증 결함 [비밀번호 사전 대입 공격] (0) | 2023.12.13 |
[비박스를 활용한 웹 취약점 진단] 5-1.인증 결함 [비밀번호 무차별 대입 공격] (0) | 2023.12.13 |