일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Authentication
- active reconnaissance
- access control
- php
- sql injection
- php 로그인 페이지 만들기
- over the wire
- php login page
- ssrf
- War Game
- SQLi
- Leviathan
- Cookie
- tryhackme
- php To Do List
- Reconnaissance
- Recon
- active recon
- THM
- php file upload
- file upload
- overthewire
- Server Side Request Forgery
- Cryptography
- 파일 업로드 취약점
- BANDiT
- OS Command Injection
- privilege escalation
- FTZ
- php 파일 업로드하기
- Today
- Total
R's Hacking Daily Log
CSRF Attack 본문
CSRF :: Cross Site Request Forgery
web은 client & server 사이에서 request & response를 주고받으며 동작한다.
client가 server에게 요청을 보내고 server는 자신이 받은 요청대로 응답을 만들어 client에게 답장을 보내는데
이런 부분을 이용해 사이트를 거쳐 client가 보내는 요청을 위조해서 이뤄지는 공격을
CSRF 라고 한다.
CSRF의 전반적인 과정을 살펴보자.
1) 사용자가 로그인을 하면 서버로부터 받은 Session token을 가지고 있을 것이다.
이 token을 보고 서버는 "이미 로그인 된 사용자다"를 알고 이 사용자로부터 오는 요청을 처리해준다.
2) 이런 상황에서 공격자가 어떻게든 사용자를 속여 악의적인 요청을 보내게 했다고 가정해보자.
3) 서버 입장에서는 이 요청이 유효한 token을 가진 사용자에게서 온 것이기 때문에 token을 보고
"okay! 처리해드림" 하고 요청을 처리하게 되는 것이다.
여기서 주목할 부분은 공격자가 직접 서버로 접근하지 않는 이유이다.
Token을 사용하는 이유 중 하나는 자신의 권한을 증명하기 위함인데 이때 권한이라고 하는 것은 로그인,
즉 개인정보를 입력해서 인증된 사용자라는 것을 확인받은 사람에게 부여되는 것이다.
다만 사용자마다 자신의 권한이 다르기 때문에 서버에 접근해 실행할 수 있는 기능의 범위는 달라진다.
공격자의 입장에서는 중요한 정보를 탈취하고자 하지만 그 만한 권한이 없기 때문에 관리자 수준의 사용자 권한을 이용해
서버에 있는 정보에 접근할 수 있게 된다.
CSRF는 위에서 살펴봤듯이 공격자가 자신이 직접 서버에 접근하는 것이 아니라
권한 있는 사용자를 거쳐 자신이 원하는 동작을 서버에서 실행하도록 만드는 공격이다.
CSRF와 XSS 공격의 1차이점이 있다면
CSRF는 Server의 데이터를 탈취하는 것을 목적으로 한다면
XSS는 Client의 데이터를 탈취하는 것을 목적으로 삼는 공격이다.
두 공격이 유사한 느낌이 있다보니 차이점이 무엇인지 정확히 짚고 넘어가자!!
'Daily-Note > web' 카테고리의 다른 글
DVWA로 보는 간단한 CSRF 실습 (0) | 2023.04.08 |
---|---|
CSRF Defense (0) | 2023.04.08 |
XSS (0) | 2023.04.05 |
Cookie & Session & Token (0) | 2023.04.02 |
HSTS (0) | 2023.03.15 |