❓ 공격 개요
CAPTCAH 란?
> CAPTCHA는 HIP 기술의 일종으로, 어떠한 사용자가 실제 사람인지 컴퓨터 프로그램인지를 구별하기 위해 사용되는 방법이다. 사람은 구별할 수 있지만 컴퓨터는 구별하기 힘들게 의도적으로 비틀거나 덧칠한 그림을 주고 그 그림에 쓰여 있는 내용을 물어보는 방법이 자주 사용된다.
> 주로 봇을 이용한 사이트 아이디 자동생성 방지, 광고성 게시물 방지, 계정 해킹(Brute Force 공격) 등을 막기위해 사용된다.

💻 실습

Insecure CAPTCHA 의 메인화면 이다
패스워드 변경폼에 CAPTCHA 가 추가되었다.

CAPTCHA 를 무시하고 변경을 요청하면 다음과 같이 CAPTCHA 가 틀렸다며 실패문구가 출려된다
CAPTCHA 인증이 어떻게 이루어 지는지 알아보기 위해 패킷을 잡아보자

패스워드 변경 요청을 했을 때의 패킷이다
step1에서 입력값과 CAPTCHA 의 인증이 이루어 진후
password_new,pasword_conf 값이 저장되며 CAPTCHA 응답값과 함께 전송된다

CAPTCAH 를 정상적으로 인증하였을 경우 다음 화면(step2)으로 넘어가게 된다
여기서 취약점이 발생하는데

위 사진과 같이 패스워드 변경 폼에서 step단계를 2로 바꾼후 전송하게 되면
CAPTCAH 를 인증하지 않아도 step2로 넘어가는걸 알 수 있다.
서버에서 change 버튼과 step 매개변수만 확인하기 때문에
간단한 조작으로 매개변수 값을 변경하여 암호를 제출한후
CAPTCHA 시스템을 통과하지않고 step2로 이동할 수 있게 된다.
🔍 대응방안
1. CAPTCHA 상태변수 추가
> CAPTCHA 상태 변수를 추가하여 사용자가 데이터를 제출하기전에 CAPTCHA 를 정상적으로 완료했는지 여부를 파악한다.
> 하지만 이러한 방법도 CAPTCHA 상태변수가 Client 측에 있으면 쉽게 조작이 가능하므로 상태변수를 Server 측에 두는게 안전하다

2. 불필요한 단계 간소화
> 데이터 및 CAPTCHA 인증시 불필요한 단계를 간소화 시켜 Client 측에서 조작이 불가능하도록 한다.

'Web Hacking > DVWA' 카테고리의 다른 글
[DVWA] - Blind SQL Injection (0) | 2022.11.13 |
---|---|
[DVWA] - SQL Injection (0) | 2022.11.12 |
[DVWA] - File Upload (0) | 2022.11.08 |
[DVWA] - File Inclusion (0) | 2022.11.07 |
[DVWA] - CSRF(Cross Site Request Forgery) (1) | 2022.11.06 |
❓ 공격 개요
CAPTCAH 란?
> CAPTCHA는 HIP 기술의 일종으로, 어떠한 사용자가 실제 사람인지 컴퓨터 프로그램인지를 구별하기 위해 사용되는 방법이다. 사람은 구별할 수 있지만 컴퓨터는 구별하기 힘들게 의도적으로 비틀거나 덧칠한 그림을 주고 그 그림에 쓰여 있는 내용을 물어보는 방법이 자주 사용된다.
> 주로 봇을 이용한 사이트 아이디 자동생성 방지, 광고성 게시물 방지, 계정 해킹(Brute Force 공격) 등을 막기위해 사용된다.

💻 실습

Insecure CAPTCHA 의 메인화면 이다
패스워드 변경폼에 CAPTCHA 가 추가되었다.

CAPTCHA 를 무시하고 변경을 요청하면 다음과 같이 CAPTCHA 가 틀렸다며 실패문구가 출려된다
CAPTCHA 인증이 어떻게 이루어 지는지 알아보기 위해 패킷을 잡아보자

패스워드 변경 요청을 했을 때의 패킷이다
step1에서 입력값과 CAPTCHA 의 인증이 이루어 진후
password_new,pasword_conf 값이 저장되며 CAPTCHA 응답값과 함께 전송된다

CAPTCAH 를 정상적으로 인증하였을 경우 다음 화면(step2)으로 넘어가게 된다
여기서 취약점이 발생하는데

위 사진과 같이 패스워드 변경 폼에서 step단계를 2로 바꾼후 전송하게 되면
CAPTCAH 를 인증하지 않아도 step2로 넘어가는걸 알 수 있다.
서버에서 change 버튼과 step 매개변수만 확인하기 때문에
간단한 조작으로 매개변수 값을 변경하여 암호를 제출한후
CAPTCHA 시스템을 통과하지않고 step2로 이동할 수 있게 된다.
🔍 대응방안
1. CAPTCHA 상태변수 추가
> CAPTCHA 상태 변수를 추가하여 사용자가 데이터를 제출하기전에 CAPTCHA 를 정상적으로 완료했는지 여부를 파악한다.
> 하지만 이러한 방법도 CAPTCHA 상태변수가 Client 측에 있으면 쉽게 조작이 가능하므로 상태변수를 Server 측에 두는게 안전하다

2. 불필요한 단계 간소화
> 데이터 및 CAPTCHA 인증시 불필요한 단계를 간소화 시켜 Client 측에서 조작이 불가능하도록 한다.

'Web Hacking > DVWA' 카테고리의 다른 글
[DVWA] - Blind SQL Injection (0) | 2022.11.13 |
---|---|
[DVWA] - SQL Injection (0) | 2022.11.12 |
[DVWA] - File Upload (0) | 2022.11.08 |
[DVWA] - File Inclusion (0) | 2022.11.07 |
[DVWA] - CSRF(Cross Site Request Forgery) (1) | 2022.11.06 |