Portswigger-User role can be modified in user profile

problem link

풀이

admin 페이지에 /admin 경로로 접속할 수 있다. 하지만 이 페이지에는 roleid가 2인 로그인한 유저만 접근할 수 있다. admin 페이지에 접근하여 carlos를 삭제하라. wiener:peter 계정이 제공된다.

My account에서 이메일을 변경할 수 있다. 이메일 변경을 요청하면 위와 같은 Response가 온다.

이메일 변경을 요청하는 JSON 요청에 roleid를 변경하는 요청도 끼워넣었다. 이대로 전송하면 roleid까지 변경할 수 있다.

roleid를 변경하면 admin 페이지에 접근할 수 있다. carlos를 삭제하니 성공했다.

사용자가 웹 브라우저를 통해서만 요청할 것이라 가정해 이메일 외의 리소스에 대한 변경 요청을 필터링하지 않아 취약점이 발생했다. 이러한 필터링의 부재가 사용자가 권한을 변경할 수 있도록 했다.


tags: writeup, access control vulnerability, wstg-athz-02, wstg-athz-03, business-logic-vul, wstg-busl-02, web hacking