bWAPP A2 Session Management - Cookies (HTTPOnly)
itsecgames.com
www.itsecgames.com
쿠키 값을 웹페이지에 출력해주고, alert 함수로도 띄어주는 웹페이지이다. 위 사진들의 쿠키는 test 계정으로 로그인 후 출력한 것이다.
문제 제목에 HTTPOnly라고 되어 있는 것으로 보아 쿠키 값에 접근하여 변조 후 다른 계정의 세션을 탈취하라는 것 같다. HTTPOnly는 자바스크립트로 쿠키 값으 접근하는 것을 막아준다.
* HTTPOnly
쿠키 옵션 - Secure & HttpOnly - 생활코딩
수업소개 Secure는 웹브라우저와 웹서버가 https로 통신하는 경우만 웹브라우저가 쿠키를 서버로 전송하는 옵션입니다. HttpOnly는 자바스크립트의 document.cookie를 이용해서 쿠키에 접속하는 것을
opentutorials.org
low
low 레벨이다. test 계정으로 로그인한 후 Change Password 메뉴를 클릭하면 위와 같이 test 계정의 패스워드를 변경할 수 있다.
크롬의 시크릿 모드를 통해 bWAPP 웹페이지에 bee 계정으로 접속한 후 쿠키값을 확인해보면 위와 같다.
> 쿠키값
- test : f628b8c3c73db59acf05377c1ab3f0ec
- bee : 7ae962442bcc03cf89ff0976a1370161
다시 test 계정으로 접속한 bWAPP 웹페이지에서 프록시를 설정하고 Change Password 메뉴를 클릭하면 위와 같이 test 계정의 쿠키 값이 PHPSESSID를 통해 서버로 전송된다.
[사진 6]의 쿠키 값을 bee 계정의 쿠키 값으로 변조해준다.
그럼 위와 같이 패스워드 변경 웹페이지가 bee 계정으로 접속된 것을 확인할 수 있다.
서버에서 받아오는 response 패킷을 보면 Set-Cookie 옵션에 HTTPOnly 옵션이 없는 것을 확인할 수 있다.
medium
medium 레벨이다. 응답 패킷을 보면 Set-Cookie 옵션에 httponly가 추가된 것을 확인할 수 있다.
test 계정에서 medium 레벨로 재접속 후 [사진 1]의 Cookies 버튼을 클릭하면 위와 같이 모든 쿠키 값이 잘 출력된다.
그런데, here 단어를 클릭할 경우 top_security 정보는 출력되지 않는다. httponly가 설정되어 top_security 쿠키 접근을 차단했기 떄문이다.
하지만 low 레벨과 마찬가지로 프록시 도구를 통해 PHPSESSID를 bee 계정의 쿠키 값으로 변조해주면 위와 같이 bee 계정의 세션으로 전환된다.
high
high 레벨이다. high 레벨도 medium 레벨과 마찬가지로 httponly가 적용되지만 bee 계정의 쿠키값을 알고 있다면 세션탈취가 가능하다.
서버 코드륿 보면 가장 오른쪽의 값들(false, true, true)이 httponly 설정을 의미한다. low 레벨만 httponly 설정이 되어있지 않기 때문에 자바스크립트로 top_security 쿠키값에 접근이 가능하였다. 하지만, 세션정보가 유출될 경우 세션탈취는 모두 가능했다.
* PHP setcookie() Function
PHP: setcookie - Manual
The server my php code is running on has sessions disabled so I am forced to store a fair bit of arbitrary data in cookies. Using array names was impractical and problematic, so I implemented a splitting routine. I do not serialize any class instances,
www.php.net
'Wargame > bWAPP' 카테고리의 다른 글
bWAPP A2 Session Management - Session ID in URL (0) | 2020.11.17 |
---|---|
bWAPP A2 Session Management - Cookies (Secure) (0) | 2020.11.17 |
bWAPP A2 Session Management - Administrative Portals (0) | 2020.11.17 |
bWAPP A2 Broken Authentication - Weak Passwords (0) | 2020.11.17 |
bWAPP A2 Broken Authentication - Password Attacks (0) | 2020.11.17 |