TeamH4C

[빡공팟 5기] W6 : DVWA 실습 - Insecure CAPTCHA (medium)

이유갬 2022. 10. 30. 23:19

[ 실습 목표 ]

Your aim, change the current user's password in a automated manner because of the poor CAPTCHA system.

현재 사용자의 비밀번호를 CAPTCHA 시스템을 체크하지 않고 변경하는 것이 실습 목표다!


[ 실습 화면 ]

- 초기 화면이다.

- 소스 코드를 봐보자!

- 새로운 패스워드와 새로운 패스워드를 확인한 패스워드가 동일하면 You passed the CAPTCHA! 라는 문구의 폼으로 넘어가는데 다 hidden 처리가 되어 있다.

- 위 코드가 어떻게 실행되는지 확인하기 위해서 한번 실습 화면에서 비밀번호를 변경해보았다.

- 패스워드를 입력하고 로봇이 아니라는 체크 박스를 체크한 후 버튼을 누르자 해당 메시지가 출력되었고 최종 Change 버튼을 누르자 비밀번호가 변경되었다.

- 그냥 step 을 2 로 변경하면 되는 거 아닌가 라는 생각이 들어 구체적인 구조를 알기 위해 패킷을 잡아보았다.

- 로봇이 아닙니다. 를 체크한 상태로 버튼을 누른 패킷을 잡아보았다. g-recaptcha-response 라는 곳에 값이 들어가있다.

- 여기서 step 을 그냥 2로 변경했더니 passed_captcha 가 되지 않았다고 뜬다.

- hidden 된 폼을 확인해보니 passed_captcha 를 true 로 바꾸는 기능이 있었다.

- 그렇다면 로봇이 아닙니다를 체크하지 않은 상태로 패킷을 잡은 다음 step 을 2 로 변경하고 passed_captcha 를 true 로 변경하면 어떻게 될까?

- 우선 내 예상대로 구성되어있는지 확인하기 위해 또 패킷을 잡았다.

- 정상적으로 인증을 거치고 마지막 Change 버튼을 눌렀을 때 위와 같은 내용이 전송된다.

- 위와 같은 내용을 패킷에 입력하면 체크 박스에 체크를 하지 않아도 비밀번호가 변경될 것 같다.

- 시도해보자!

- 0000 을 입력하고 체크를 하지 않은 상태로 Change 버튼을 누르고 패킷을 잡았다.

- 잡은 패킷에 step 을 2 로 변경하고 passed_captcha=true 로 변경하고 Forward 버튼을 눌러서 전송했다.

- 비밀번호 변경에 성공했다!

- 이렇게 실습의 목표를 달성했다!