본문으로 바로가기
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

10. CSRF (Cross Site Request Forgery)


1) CSRF


▣ CSRF

- 태그값을 쓸 수 있기 때문에 발생하는 문제.

- 공격자가 작성해놓은 Request를 통해 일어나는 악위적인 공격 (요청메시지 위조)

- 자신의 의도와는 다른 액션이 발생

- 엄밀히 서버를 공격하는 것은 아니지만 공격 대상은 서버임.


CSRF와 XSS 차이

- XSS : 악성 스크립트가 사용자 클라이언트에서 일어남.

- CSRF : 인증 완료된 자신의 권한으로 서버에 요청.


2) CSRF 원리


▣ CSRF의 원리

0. 최소한 의도한 동작을 공격자가 한번은 해보고 요청메시지의 구조를 파악.

☞ 분석만 가능하다면 희생자의 권한으로 어떠한 행동이나 다 가능. (로그인 한 후의 행동)

☞ 이 공격을 네이버에 못함. 왜? 네이버 관리자로 한번이라도 비밀번호 변경을 할 수 있어야 파악이 가능하지만 못하잖아...

☞ 그래서 오픈소스 공격에 강한 공격임! 해당 오픈 소스는 나도 깔아서 요청메시지를 파악가능하니까.

1. 게시물에 스크립트 등록.

2. 사용자 및 관리자가 스크립트 게시물 열람.

3. 게시물을 읽는 희생자의 권한으로 원하지 않는 요청 발생.

4. 공격자가 의도한 희생자의 패스워드가 변경.

5. 해당 계정을 2,3차 공격으로 활용.


▣ 요청 메시지 파악하기

- form 태그를 중심으로 파악! 

- input들만 모아 게시물로 등록.

- type을 hidden으로 설정하면 보이지 않음. textarea는 hidden이 없기에 input으로 바꿔줌.

- 자동으로 변경하기 위해 <body onload>를 사용함.

ex) <body onload = document.csrf.submit();>


3) CSRF 실습 서버 생성


위즈몰을 설치.

- APM setup 을 사용하여 기본적인 DB 아이디 패스워드는 root/apmsetup임.

- 사용 DB는 :mysql임.


4) CSRF 방어


▣ 웹 서버

- HTML 지원하지 않음.

- HTML을 화이트리스트 방식 허용.


▣ 클라이언트

- 팝업 차단 설정의 생활화






i2sec 대구지점 23기 수료생.

'해킹&보안 > 웹 해킹&보안' 카테고리의 다른 글

[D+12] Session Management Vulnerabilities  (0) 2017.05.22
[D+11] FileUpload & FileDownlaod  (0) 2017.05.21
[D+9] XSS (Cross Site Scripting) (2)  (0) 2017.05.17
[D+8] XSS (Cross Site Scripting)  (0) 2017.05.15
[D+8] OWASP TOP 10  (0) 2017.05.15