사이트 내 전체검색
CSRF(Cross-site request forgery) 취약점을 이용한 공격하기올엠
최고관리자
https://cmd.kr/server/745 URL이 복사되었습니다.

본문

참고 자료 및 사이트를 운용하여 제가 제작한 내용입니다.

사이트 : http://www.nshc.net

문서 : CSRF_Basic_by_Certlab[1].pdf

추가 내용을 확인하시려면 문서나 해당 홈페이지를 참고 하세요 J

<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 

CSRF(Cross-site request forgery) 취약점을 이용한 공격방법

 

CSRF?

CSRF 는 특정 사용자를 대상으로 하지 않고 불특정 다수를 대상으로 로그인된 사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위(수정,삭제, 등록등)를 하게하는 공격입니다.

 

CSRF가 성립하려면 수정, 삭제, 등록 하는 액션에서 사용자를 구분하는 파라메터 값이 존재하지 않아야합니다. 특정한 사용자를 구분하는 파라메터가 있다면 하나의 사용자 에게만 적용 되거나 인증에러로공격이 되지 않을 수 있기 때문입니다.

 

따라서 인증을 쿠키 만으로 관리할 때 CSRF 공격이 쉽게 성공 할 수 있습니다.

 

CSRF 준비하기

 

1. Local Proxy Tool

Proxy Tool 을 이용하여 Web 에서의 Request / Response 를 변조 할수 있습니다

Paros 설정 사용방법 보려 가기

 

2. XSS가 실행 가능한 사이트

쓰기가능한 게시판을 오픈하여 XSS가 가능한지 간단히 테스트 합니다.

<script> alert(‘xss test’) </script>

 

csrf-1.png

아래와 같이 정상 Alert 메시지가 표시되면 XSS가 사용가능한 사이트 입니다.

csrf-2.png


가능성을 확인하였다면 실제 공격용 소스를 만들도록 합니다.

 

CSRF(Cross-site request forgery) 취약점을 이용한 공격하기

 

1. 상품 주문 페이지로 이동합니다.

csrf-3.png


2. 상품 정보를 모두 입력후 결제하기 버튼을 입력하기전 ParosTrap탭에서 Trap request Trap Response의 체크박스에 체크합니다.

csrf-4.png


3. 결제하기를 누르면 웹서버에 전송 전에 자동으로 Paros가 그 값을 낙아채며 웹 브라우저는 일시정지같은 상태됩니다. 해당 값 내용중 요청하려뎐 URL을 포함한 경로 와 웹서버에게 보내려던 결과값(빨간 상자의내용)을 따로 저장합니다.

 

csrf-5.png



4. XSS 가능 개시판에 글을 작성하여 <img width=0 height=0 을 추가하여 3번에서 저장한 URL과 결과값을 조합해 글 내용에 포함후 글을 등록합니다.

csrf-6.png


  <img width=0 height=0 HTML 코드로 이미지 가로세로 사이즈를 0으로 하여 실제 화면에는 표시되지 않게 됩니다.

 

이제 해당글을 누군가 읽으면그 읽은 사람에게 자신의 주문 정보가 들어가게 됩니다.

 

게시판에 글을 등록하는 CSRF를 만들어 등록하여 1000명의 사용자가 읽었다면 문제가 심각할 듯 합니다.

 

 

CSRF 방어대책

 

- 모든 Form/URL 에서 요청을 할때에 임의 토근을 추가하여 요청을 할때에 이 토큰을 검증

- 중요한 페이지는 재인증을 유도

 

 

댓글목록

등록된 댓글이 없습니다.

1,139 (23/23P)

Search

Copyright © Cmd 명령어 3.17.187.116