1번 풀이에서 문제 접근하는 법을 알려드렸으므로 생략하고 바로 문제풀이에 들어가도록 하겠습니다~

 

1. 문제

 

 

막상 바로 ID/PW를 뚫으라는 문제를 보니 심장이 두근대었다...

바로 ID/PW에 SQL injection 꼽아서 로그인 우회 시도했지만 역시 안되었다...

잡소리 그만하고 문제풀이 시작하도록 하겠습니다~

 

2.문제풀이

 

1) 문제를 보며 ID/PW를 풀어 Authkey를 알아내야 되겠다고 생각하였다.

 

2) 어떻게 ID/PW가 보내지는지 확인하기 위하여 페이지 자체를 새로고침하여 Burp를 이용하여 패킷 분석을 하였다.

왼쪽이 요청 값 오른쪽이 응답 값

3) 페이지 응답 값 분석

 

- id, pw 변수 값을 보니 등록된 id, pw 값이 있는 듯하다.

- 스크립트를 통해 ID/PW 가 같을 경우 "YOU can't join! Try again"이라는 문구가 뜨게 되어있다.

- 아래에 주석처리에 친절히 힌트를 주었다 Join이라는 단어를 힌트로 주었고 아이디와 패스워드는 일치하다고 한다.

 

4) 힌트를 활용하여 ID/PW에 JOIN/JOIN을 입력해 보았다.

 

5) 위에 ID/PW가 같을 경우 문구가 뜨게 되어있던 게 진짜였다.

 

6) 이렇게 된 이상 우회를 하기로 마음먹었다. 

- 우회 첫 번째 방법 ID/PW를 다르게 입력하여 경고 문구가 뜨지 않게 한 뒤 프록시(burp)를 이용하여 ID/PW 값에 JOIN/JOIN을 넣어봐야겠다.

 

- ID: TEST / PW : 1234로 입력 후 요청 패킷을 잡아 id=TEST&pw=1234 부분을 id=JOIN&pw=JOIN으로 변조해주었다.

 

7) 결과는....

 

 

통과 시켜주었따....

 

8) 우회 두 번째 방법

- 페이지에 접근할 때 응답 패킷을 수정하기로 했다.

수정 전 응답 값
수정 후 응답 값

- 수정 전 ID/PW가 같을 경우 "YOU can't join! Try again"문구가 뜨며 ID/PW 값을 초기화시키는 로직을 제거한 후 ID/PW가 같아도 제출되는 로직으로 변경시켜 주었다.

 

9) 이후 로그인 창에서 ID:JOIN / PW:JOIN 입력

 

 

10) 이후 통과~

 

 

이번 문제는 일하면서 자주 시도해본 상황이라 무난하게 풀 수 있었던 것 같다.

다음 레벨도 기대가 된다.

 

*제 개인적인 문제풀이 방식이었으며, 잘못된 점이 있다면 알려주시면 감사하겠습니다.

 

'워게임 > suninatas' 카테고리의 다른 글

suninatas/웹/6번 문제풀이  (0) 2021.06.14
suninatas/웹/5번 문제풀이  (0) 2021.06.09
suninatas/웹/4번 문제풀이  (0) 2021.05.30
suninatas/웹/3번 문제풀이  (0) 2021.05.28
suninatas/웹/1번 문제풀이  (0) 2021.05.19
복사했습니다!