WebGoat 접속 ▶[Access Control Flaws] ▶[Stage 1 : Bypass Business Layer Access Control]
문제에서 제시한 방법으로, ID : Larry stooge, P/W : larry 계정으로 로그인하면,
로그인 후, Larry (일반 직원임으로) 는 ViewProfile, Logout 만 사용 가능하다.
삭제할 때 서버에게 보내는 파라미터 값을 확인하기 위해 ,John으로 로그인한다.
John은 CreaterProfile, DeleteProfile 기능이 존재한다는 것을 파악할 수 있고,
MOE 계정을 DeleteProfile 하면,
employee_id=102 &action=DeleteProfile 계정번호, 프로필을 삭제할 때의 파라미터값을 확인 할 수 있다.
문제의 Tom 의 계정을 삭제하기 위해서는 톰의 id 를 확인해야한다. Tom의 프로필을 확인 할 때 서버에게 105로 전송하는 것을 보아 Tom의 계정 ID 는 105 라는 것을 확인.
일반 계정인 Larry 로 로그인한 후 View 프로필 버튼을 누른 후 파라미터 값을
Tom 계정번호와 행동을 deleteprofile 로 변경하고 Forward 한다.
톰의 계정은 삭제되고 문제는 풀이에 성공한다.
대응방안.
해당 JAVA 를 열어 다음과 같이 문구를 추가하고, 삭제를 다시 시도하면 에러로 실패한다.
'취약점 > 웹' 카테고리의 다른 글
WebGoat [Multi Level Login 2] (0) | 2020.12.15 |
---|---|
WebGoat [Multi Level Login 1] (0) | 2020.12.14 |
WebGoat [XML External Entity] (0) | 2020.12.13 |
WebGoat [JSON Injection] (0) | 2020.12.13 |
WebGoat [XML Injection] (0) | 2020.12.12 |