Cross Site Request Forgery [ CSRF ]
[Description]
CSRF 는 사이트의 취약점을 이용하여 사용자가 원하지 않는 데이터 변경 작업을 수행하는 공격으로 , 주로 게시판에 <img> , <embed> 태그를 허용할경우 발생합니다.
다음은 , 뉴스 그룹에 CSRF 공격이 포함된 이메일을 보내 자금을 이체시켜야 합니다. 자금을 이체시키기 위해선 , "Screen"및 "menu" 매개 변수와 ,"transferFunds" 매개변수가 포함되어 있어야 합니다.
[그림1]
[그림1] 임의의 문자를 입력 한 그림.
임의의 문자를 입력 후 , Submit 을 누르는 동시에 패킷을 잡아 상세분석을 합니다.
[그림2]
[그림2] 임의의 문자를 입력한 값을 패킷을 통해 확인하는 그림.
임의의 문자열을 입력 후 패킷을 통해 Request 값을 분석 시 , 다음과 같은 URL 을 통해 값을 전달하고있습니다.
http://localhost:8080/WebGoat/attack?Screen=1915&menu=900&title=test&message=TEST&SUBMIT=Submit
CSRF 공격을 통해 자금을 이체시키기 위해서는 다음과 같은 매개변수가 필요합니다.
Screen
, menu
,transferFunds
즉 다음과 같은 구문이 포함된 값을 전달합니다.
<img src="http://localhost:8080/WebGoat/attack?Screen=1915&menu=900&transferFunds=1 width=1px height=1px">
[그림3]
[그림3] <img> 태그를 통해 CSRF 구문을 전달하는 그림.
위와 같이 데이터를 전송 시 , 아래와 같은 문구가 출력됩니다.
위 문구를 클릭 후 , 상세 취약점을 진단합니다.
[그림4]
[그림 4] 개발자 도구를 통해 작성한 URL을 확인하는 그림.
개발자 도구를 통해 Message 박스 옆 이미지 파일에 대고 검사를 한 후 , 해당 이미지 사진 위치를 파악한 후 , 새로 브라우저를 열어 이미지 파일 주소로 이동합니다.
[그림 5]
[그림 5] CSRF 에 성공 그림.
위와 같이 CSRF 에 성공합니다.
[그림 6]
[impact]
공격자는 CSRF 취약점을 이용하여 , 사용자도 모르게 공격자에 의해 자금이 이체됩니다.
댓글
댓글 쓰기