본문 바로가기

취약점/웹

WebGoat [Bypass Business Layer Access Control ], [Add Business Layer Access Control]

WebGoat 접속 ▶[Access Control Flaws] ▶[Stage 1 : Bypass Business Layer Access Control]

문제에서 제시한 방법으로, ID : Larry stooge, P/W : larry 계정으로 로그인하면,

로그인 후, Larry (일반 직원임으로) ViewProfile, Logout 만 사용 가능하다.

삭제할 때 서버에게 보내는 파라미터 값을 확인하기 위해 ,John으로 로그인한다.

JohnCreaterProfile, 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