Hacking_study/해킹과제

CSRF 수업 정리(9주차)

jin_li 2023. 5. 25. 22:54
CSRF vs XSS

 

csrf는 피해자의 세션을 이용하여 피해자가 서버에 임의의 요청을 날리게 하는 공격이고,

xss는 임의의 명령문을 삽입해서 클라이언트 측에서 실행되는 공격.

 

csrf는 서버 측 공격, xss는 클라이언트 측 공격.. 이라고 많이 구분짓지만 사실 csrf도 엄밀히 따지면 클라이언트 측 공격이다.

 

csrf 는 모든 요청에 대해 가능한 공격. 단, 모든 요청이 민감한 요청이라 할 수는 없으니... 컨설턴트의 주관에 따라 민감한 요청과 그렇지 않은 요청을 분류해서 취약점을 판단함.

 

 

 

 

 

 

CSRF 공격 기법

 

(1) GET Method

에서는 URL 이용... 로그인 한 다음에 볼 수 있는 페이지에 링크연결해서 공격.

 

(2) POST  Method

에서는 무조건 XSS 취약점을 같은 도메인에서 찾아야한다. 세션 때문.

 

옛날에 브라우저가 아주 단순했을 땐 공격자 사이트에 접속만 해도 피해자의 다른 사이트에서의 쿠키들까지 모두 탈취 가능 했었는데...

요즘은 도메인별로 쿠키를 다 나눠놨다.

따라서 세션을 이용하기 위해서는 같은 도메인에서만 가능하다.

 

xss로 삽입할 태그는 <form method="POST"> </form> 과 같은 형태.

 

 

(3) Referrer Bypass

referrer 헤더 없는데서는 <meta name="referrer" content="no-referrer"> 넣으면 referrer 없이 보내기 가능! 그 외 referrer 검사 꼼꼼히 하는 데서는 우회 힘듦.

 

(4) CSRF 토큰

요청을 위조할 수 있는데... XSS로 csrf 토큰 빼내와서 붙여넣어 공격하면 된다.

 

 

 

 

 

 

CSRF 대응방안

(1) 지키고자 하는 요청에서 인증정보 추가. 

패스워드 변경할 때 현재 패스워드도 입력하게 하는 방법이 대표적이다.

 

(2) 게시판 같은 곳에서 페이지 요청할 때마다 현재 패스워드 입력하는 건 번거로우니.. 게시판과 같은 애매한(?) 요청에 대해서는 referrer check, csrf token을 사용한다.

 

(3) captcha

자동화 공격을 막기 위해서 도입된 것으로, 클라이언트 측에서 실행된다. 우회 가능.

 

 

 

 

 

 

 

SSRF (sever side request forgery)

서버가 임의의 요청을 하게 하는 공격으로, 원리는 CSRF와 같다. 서버가 외부 자원(리소스)를 이용하는 곳이나, 파라미터로 url을 받는 요청에서 일어날 수 있다.

대응방안 : 파라미터로 url 받지 않기.

 

 

SSRF는 내부 망 쓰는 곳에서 자주 쓰이는 공격이다. 내부 망에 있는 컴퓨터 한 대의 요청을 조작할 수 있으면, 포트스캔으로 같은 내부 망에 있는 다른 웹 서버가 있는지도 확인 가능하기 때문. api를 많이 쓰다보니 요즘 csrf보다 뜨는 공격이라고 한다.

 

가장 많이 쓰는 건... file://localhost/etc/passwd 와 같이 쓰면 임의의 파일 열람 가능...또는

ssh://localhost/ 이용해도 ㅇㅋ....라고 한다...

'Hacking_study > 해킹과제' 카테고리의 다른 글

SSRF  (0) 2023.06.07
파일 업로드 및 다운로드  (8) 2023.06.01
CSRF 수업 정리(8주차)  (0) 2023.05.18
XSS (stored xss / reflected xss / 대응 방안)  (0) 2023.05.11
Blind SQL injection 및 SQLi 대응방안  (0) 2023.05.03