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 값을 추가해 전송한 결과
변경에 성공 하였다.
'Web > DVWA 실습' 카테고리의 다른 글
DVWA - SQL Injection (low,medium) 실습 (0) | 2022.10.30 |
---|---|
DVWA - File Upload (low,medium) 실습 (0) | 2022.10.30 |
DVWA - File Inclusion (low,medium) 실습 (0) | 2022.10.30 |
DVWA - CSRF(low,medium) 실습 (0) | 2022.10.30 |
DVWA - Command Injection(low,medium) 실습 (0) | 2022.10.30 |