1. 개념
- Cross Site Request Forgery의 약자로, 사이트간 요청 위조
- 사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위(데이터 수정, 삭제, 등록 등)를 특정 웹사이트에 요청하게 하는 공격기법
2. 공격원리
1. 사용자는 보안이 취약한 서버에 로그인합니다.
2. 서버에 저장된 세션 정보를 사용할 수 있는 session ID가 사용자의 브라우저 쿠키에 저장됩니다.
3. 공격자는 사용자가 악성 스크립트 페이지를 누르도록 유도합니다.
(악성 스크립트 페이지를 누르도록 유도하는 방식은 아래와 같습니다.)
- 게시판이 있는 웹사이트에 악성 스크립트를 게시글로 작성하여 사용자들이 게시글을 클릭하도록 유도
- 메일 등으로 악성 스크립트를 직접 전달하거나, 악성 스크립트가 적힌 페이지 링크를 전달
4. 사용자가 악성 스크립트가 작성된 페이지 접근시, 웹 브라우저에 의해 쿠키에 저장된 session ID와 함께 서버로 요청됩니다.
5. 서버는 쿠키에 담긴 session ID를 통해 해당 요청이 인증된 사용자로부터 온 것으로 판단하고 처리합니다.
3. 실습
※ 본 실습은 DVWA Security Level을 Low로 설정해서 진행했습니다.
3-1. 테스트로 현재 아이디와 비밀번호를 확인
3-2. 비밀번호 교체를 한 후에 get 요청에서 바꾼 비밀번호와 동일 한지 확인
3-3. 해당 링크를 실제로 보낸다는 가정하에 결과 확인
3-4. 링크 클릭 후 테스트 결과, 바뀐 비밀번호로 로그인 성공
4. 대응방안
- Referer 검증
- HTTP 헤더에 있는 Referer로 해당 요청이 요청된 페이지의 정보를 확인하는 방법. 간단하여 소규모 웹사이트에 주로 이용된다. 하지만, 해당 정보는 Paros나 Zap, fiddler같은 프로그램으로 조작이 가능하다.
- GET / POST 요청 구분
- img 태그 등의 경우 GET 요청으로, form 태그로 값을 받을 경우 POST를 이용하여 요청을 구분해준다.
- Token 사용
- 서버에서 hash로 암호화 된 token을 발급, 사용자는 매 요청마다 token을 함께 보내어 서버의 검증을 거쳐야한다.
- 추가 인증 수단 사용 ( ex. CAPCHA )
- 추가 인증 수단을 거쳐 만약 테스트를 통과하지 못할 시, 해당 요청 자체를 거부하는 방법.
5. 침해사례
https://www.boannews.com/media/view.asp?idx=9481
'침해대응' 카테고리의 다른 글
[웹 모의해킹] File Upload 공격 (1) | 2024.11.19 |
---|---|
[웹 모의해킹] File Inclusion 공격 (0) | 2024.11.19 |
[웹 모의해킹] Brute Force(무차별 대입) 공격 (0) | 2024.11.16 |
[웹 모의해킹] Command Injection 공격 (0) | 2024.11.16 |
DVWA 환경 구축 (칼리 리눅스 설치) (0) | 2024.03.18 |