본문 바로가기
보안

Chapter 10. XSS 요청 변조(CSRF) 공격

qbang 2019. 3. 1.

 

Chapter 10. XSS 요청 변조(CSRF) 공격

 

CSRF 공격 개요

 

- CSRF의 취약점의 공격 방법은 공격자가 피싱을 이용하여 공격 대상이 링크에 정상적인 접속하도록 하여 웹사이트의 어떤 기능을 실행하게 하는 것

 

 

 

CSRF 공격 실습

 

 

 

- DVWA -> Vulnerability: CSRF에 패스워드 값으로 test 입력했을 때 버프수트에 잡히는 내역

 

- 사용자가 로그인되어 있을 때에는 웹 페이지를 요청할 때마다 쿠키가 웹 브라우저에 의해 자동으로 전달됨 -> 로그인된 웹 사이트의 링크를 누르게 만들면 쿠키를 전달시킬 수 있음

 

- 어떤 정보를 변경하는 요청 메시지에 쿠키 이외에는 랜덤한 값이 없으면 CSRF에 취약할 수 있음

 





 

 

 

- 1번 부분에서는 요청 url과 파라미터가 똑같이 구성되어 있고, 2번 부분에서는 withCredentials 속성을 true로 설정하여, 요청이 전송될 때 웹 브라우저가 쿠키를 자동으로 같이 전송하도록 함

 

 

 

- 실습에 앞서 15번째 줄 hostdvwaip 주소로 변경하고 /var/www/html 디렉토리로 옮김

 

http://localhosy/csrf.html

 

 

 

- 주소창에 해당 명령어를 입력했을 때 출력되는 페이지

 

 

 

- click 링크를 눌렀을 때 http history를 통해 기록을 확인하면 password hacker로 변경된 것을 확인할 수 있음

 

- 또한 응답코드가 200으로 변경되어 있으면 패스워드가 정상적으로 변경된 것임

 

                                                    

 

CSRF 공격 대응

 

1. 요청 메시지의 레퍼러 헤더(해당 요청을 링크하고 있던 이전 웹 페이지의 주소를 알려주는 헤더)를 검사하여, 웹 메일이나 타 사이트에서 피싱을 당해 전송되는 요청을 실행하지 않는 것

 

2. CSRF 토큰(CSRF 공격 대응을 위해 포함시키는 랜덤한 값) 사용

 

- 웹 애플리케이션이 CSRF 토큰을 매 응답마다 랜덤하게 생성하여 히든 폼 필드를 통해 클라이언트에게 전송

 

- 클라리언트는 이전 응답 메시지에 포함된 토큰 값을 다음 요청 시 포함시켜 전송

 

- 웹 애플리케이션이 CSRF 토큰 값을 검사하면, 정상적인 과정을 통해 전달된 요청인지 확인할 수 있음

 

해당 포스팅은 '화이트해커를 위한 웹 해킹의 기술' 책 내용을 바탕으로 작성되었습니다.

'보안' 카테고리의 다른 글

Chapter 12. 파일 업로드 공격  (0) 2019.03.03
Chapter 11. 파일 인클루전 공격  (0) 2019.03.03
Chapter 09. XSS 공격  (0) 2019.03.01
Chapter 08. Command 인젝션 공격  (0) 2019.02.28
Chapter 07. SQL 인젝션 공격  (0) 2019.02.28

댓글