[웹해킹] CSRF 공격 (Cross Site Request Forgery)

주연쓰·2021년 7월 7일
0

웹해킹

목록 보기
9/23

1. CSRF 공격 이란?

  • 사용자가 사이트에 정상적으로 로그인한 상태에서
    해커가 보낸 피싱 링크를 클릭하면
    로그인 되어 있던 사이트의 패스워드를 자동으로 변경되는 해킹 공격이다.
    이후부터 해커가 변경된 패스워드로 계정에 접속할 수 있다.

  • 필수조건 : 링크를 클릭하는 시점에 사이트에 사용자가 로그인 되어있어야 한다.

2. CSRF 공격 실습

(1) DVWA Security > DVWA Security Level ; low 로 실습

(2) CSRF > 패스워드 변경

변경하고 Proxy > HTTP Proxy 에서 확인했을 때 하이라이트 표시한 요청의 첫번째 줄에보면

password_new=smit19&password_conf=smit19&Change=Change 

라는 요청이 있다. 이는 패스워드를 변경하는 코드이다.

그리고, line 15의 다음과 같은 코드(Cookie)는 로그인이 되었을 때 나타는 것으로, CSRF 공격에서 반드시 필요하다.

Cookie: security=low; PHPSESSID=ekiv8q5d5a6eqnrrecpilhn827

다음 링크에서 csrf.html 으로 들어간다.
https://github.com/secuacademy/webhacking

RAW 를 누른 다음, 링크 복사 후 터미널에서 다음 명령을 입력한다.

> wget 링크주소

파일을 다운로드 받은 후, /opt/lampp/htdocs 로 이동시켜준다.

> cp csrf.html /opt/lampp/htdocs

nano 편집기로 csrf.html 파일을 보면, 새로운 패스워드를 hacker로 바꾸는 코드라는 것을 알 수 있다.

password_new=hacker&password_conf=hacker&Change=Change 

이제 나에게 해킹 링크(csrf.html)가 담긴 메일을 보내고, DVWA에 로그인 한 상태에서 다른 탭으로 메일의 링크를 클릭해 나의 DVWA를 해킹해 보겠다.

(이때, Burp Suite 자체 웹에서는 보안상의 문제 때문에 구글로 로그인이 안되었다. 따라서 네이버 메일로 진행하였다)


위 링크를 누르면, 다음 화면이 뜬다.

Click 링크를 클릭한 후, DVWA에서 로그아웃하고 원래의 비밀번호(smit19)로는 로그인이 안되고, hacker 로 로그인이 되어야 하는데 나는 원래 비밀번호대로 로그인이 잘 되어, 이유를 알아보았다.

원래 로그인코드(왼)와 해킹으로 접속한 파일(오) 인데, 쿠키도 생략되어있고 빠진 코드가 많아서 그랬던 것 같다.

csrf.html 코드를 보완한 후에 다시 공격을 시도해봐야겠다.

3. CSRF 대응

(1) impossible 단계 : 현재 비밀번호를 입력해야 새로운 비밀번호를 설정할 수 있게 해둔다.

profile
( •̀ ω •́ )✧

0개의 댓글