Portswigger-User ID controlled by request parameter with password disclosure

problem link

풀이

Account Details 페이지에서 암호에 대한 정보를 얻을 수 있다. 이를 이용하여 administrator로 로그인, carlos를 삭제하라. wiener:peter 계정을 제공한다.

wiener 계정으로 로그인하여 My Account 페이지에 접속하면 비밀번호를 재설정하는 폼이 있고, 마스킹된 비밀번호가 써있다.

개발자 도구를 이용해 소스를 읽으면 마스킹 된 비밀번호를 읽을 수 있다.

https://ac3a1ff91ee19d97802933b300dd0071.web-security-academy.net/my-account?id=administrator URL로 접속하면 administrator의 페이지에 접속할 수 있어 수평적 권한 상승이 가능하다. 로그인을 하지 않은 상태에서 접근해도 가능하다. 비밀번호가 cxcfbywdhkd578jc5yju 인 것을 알아냈다.

administrator로 로그인하여 수직적 권한 상승을 했다. admin 페이지에 접근하여 carlos를 삭제하면 성공이다.

이 취약점은 보호해야하는 페이지에 대해 액세스 컨트롤을 하지 않아 발생하였다. 유저가 임의로 URL 파라미터를 변경하는 경우를 고려하지 않았기 때문에 발생한 문제다. 또한 이전 이전 패스워드에 대한 정보를 보여주기에 발생하였다. (해싱하지 않고 평문을 저장해두고 이를 다시 유저가 확인할 수 있게 했다.)


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