본문 바로가기
Web/DVWA 실습

DVWA - Insecure CAPTCHA (low,medium) 실습

by jh117jh 2022. 10. 30.
728x90

CAPTCHA

현재 서비스를 사용하고 있는 주체가 사람인지 컴퓨터 프로그램인지 구분하기 위한 프로그램으로 평소 우리가 로그인이나 인증을 할때 볼 수 있으며 brute force 방지 , 추가인증 등의 용도로 쓰이고 있다.

 

 

low level

먼저 변경할 비밀번호를 입력후 CAPTCHA인증을 한 다음 change 버튼을 눌러보자

버프스위트로 요청을 확인해본 결과 step = 1 이라는 파라미터가 눈에 띈다.

우리는 비밀번호만 입력했지 step이라는 입력값은 입력한적이 없기 때문에 개발자가 hidden값으로 넣어 놓은것 같다.

아직 step의 의미를 잘 모르므로 계속 진행해보자.

CAPTCHA를 통과했다는 문구와 변경을 확정짓는 버튼이 나왔다.

변경 확정 버튼을 누른후 요청을 확인해 보면 step = 2로 바뀐것을 확인 할 수있다.

이로인해 개발자의 의도는 CAPTCHA 인증 전: step=1 인증 후: step = 2 라고 볼 수 있다.

그러면 요청을 보낼때 step = 2로 보내면 CAPTCHA 인증을 우회하여 통과 할 수 있지 않을까?

CAPTCHA 인증을 하지 않은 채  step = 2로 파라미터 값을 변경후 요청을 보내보자

변경에 성공한것을 볼 수 있다.

 

Medium level

 

low 레벨과 같이 step 파라미터를 2로 변경후 요청을 보내보았더니 CAPTCHA 인증을 통과하지 못하였다.

왜 그런지 한번 CAPTCHA 인증 후 요청 과정을 살펴 보았더니

변경 확정 버튼을 누르면 passed_captcha 라는 새로운 파라미터값이 생성되는것을 볼 수 있다.

이로써 인증 확인 과정이 하나 더 생겼다는것을 확인하였고 요청값에  passed_captcha을 추가하여 전송하면 인증을 우회 할 수 있을거라 예상 했다.

 

인증을 하지 않은 후 요청값에 step =  2변경후 passed_captcha=true 값을 추가해 전송한 결과

변경에 성공 하였다.

728x90