CSRF 공격

devguri·2022년 10월 6일
0
post-thumbnail

⭐CSRF 공격

Cross Site Request Forgery

→ 사이트간 요청 위조

→ 해커들이 피싱해서 사용자들이 링크 누르게 하고 그거 누르면 사용자들도 모르게 어떤 기능 실행됨(해커가 패스워드 변경하는거로 사용됨)

  • 해커가 어떤 링크 보내고 그 링크 접속시 패스워드 변경되도록 하여 해커가 그 사용자 정보로 로그인하게 됨

✔️CSRF 공격 실습 (Low 단계)

로그인시 어떤 정보 전송하는지 확인하기 위해 burp suite-> proxy -> http history에서 확인한다.

  • 링크 클릭했을 때 이러한 요청이 전달되면 패스워드를 변경할 수 있을 것이다.
  • 로그인 되어 있어야 적절한 쿠키가 보내져서 공격 성공함

이메일 작성하여 링크 첨부하기

-> 클릭하면 해커가 변경한 password로 변경함
ID : admin
PW : hacker

→ 왼쪽이 정상, 오른쪽이 해커가 설정한 것
쿠키가 같으므로 같은 사용자로 인식

Referer, Origin : 요청이 어디서 시작했는지 알려주는 헤더

  • 링크 클릭하면 해커가 설정한 파일 열게 되어 패스워드 변경시킴* 정상적인 요청과 해커가 보낸 요청을 comparator을 통해 비교하기

✔️CSRF 공격 실습 (Medium 단계)

HTTP_REFERER 이용 → 해커가 만든 사이트 주소가 referer에서 준 주소와 같은지 비교하여 아니면 거른다.

Referer 헤더에 있는 localhost라는 웹서버 주소 때문에 해커가 비번 바꿀 수 있게 됨

어떤 경로에서 요청되었는지 비교하여 자기 서버 주소와 동일한지 확인하여 같지 않으면 CSRF 공격을 막음

✔️CSRF 공격 실습 (High 단계)

웹페이지 값 변경될 때마다 token 값 변경됨

csrf token 값 계속 random으로 변하기 때문에 해커가 알아내기 쉽지않다. (token 값이 정상이면 허용해줌)

→ 공격하는 법 : XSS와 csrf token 이용하여 공격 성공

✔️CSRF 공격 대응

  • 현재 비밀번호를 입력하는 창을 만들어준다.
  • 해커는 현재 비밀번호 모르기 때문에 공격하기 어려움

⭐CSRF 문제풀기

Dreamhack CSRF-1

Dreamhack CSRF-2

profile
Always live diligently

0개의 댓글