CSRF (1)

밍기적·2023년 1월 4일
0

웹해킹

목록 보기
30/35

CSRF(Cross Site Request Forgery)은 웹 어플리케이션 취약점 중 하나로 희생자가 자신의 의지와는 무관하게 공격자가 의도한 행위(수정, 삭제, 등록 등)를 특정 웹사이트에 요청하게 만드는 공격입니다

CSRF를 통해 공격자는 희생자의 권한을 도용하여 중요 기능을 실행하는 것이 가능하게 됩니다

예를들어, 페이스북에 희생자의 계정으로 광고성 글을 올리는 것이 가능해집니다

CSRF는 사용자가 실제로 특정 작업을 수행하기를 원하는지 여부를 웹 사이트에서 확인하지 않을 때 발생합니다

따라서 사용자가 실제로 비밀번호를 변경할 의도가 있는지를 확인하지 않습니다

  • 이런 상황이면 HTML 페이지를 프로그래밍하여 사용자가 클릭하면 특정 행위를 실행하도록 할 수 있습니다

DVWA에서 사용자가 원하지 않는 비밀번호 변경

현재 DVWA에 admin 계정으로 로그인하였습니다

CSRF 탭으로 이동합니다

비밀번호를 변경할 수 있습니다

현재 비밀번호는 password 이지만 현재 웹사이트 창을 통해서 222222로 변경했습니다


변경 완료 시 변경이 완료되었다는 메시지가 발생합니다

이 부분에서는 사용자가 실제로 계정에 대해 비밀번호를 변경하려는 의도를 가지고 변경했습니다

하지만 DVWA 웹 사이트가 의도를 확인하지 않는다면 CSRF 취약점이 발생할 수 있습니다


유사한 페이지 생성

하이재킹을 원하는 웹 페이지에서 브라우저의 Inspect 기능을 사용합니다

현재 웹사이트에서 비밀번호를 변경하려는 페이지의 코드입니다

해당 코드를 수정하기 위해 메모장에 해당 코드를 복사한 뒤 html파일로 생성합니다


HTML 파일 생성 후 파일을 열어본다면 이전 웹 페이지에서 볼 수 있었던 비밀번호 변경 폼이 생성됩니다

하이재킹을 시도하는 양식과 유사합니다

이제 해당 페이지를 작동시켜 비밀번호를 변경하기 위해서는 HTML 코드의 수정이 필요합니다

action이 해시태그로 설정된 것을 볼 수 있습니다

이 양식을 제출할 웹사이트의 주소로 변경합니다

이제 비밀번호를 333333으로 변경하도록 시도했습니다

비밀번호가 변경되었다는 문구가 발생합니다

따라서 이것은 실제로 타겟 웹사이트가 유효성 검사를 하지 않기 때문에 CSRF에 취약하다는 것을 확인할 수 있습니다

이런 요청은 웹 사이트 자체에서 오는 것이므로 사용자가 원하는 의도인지 확인하지 않았습니다

0개의 댓글