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 |