hacking study/CSRF

정보보안 스터디 - 8주차 2일 - CSRF 공격 상세 연구

wonder12 2022. 12. 3. 04:09

 

XSS 세션 탈취가 막혔을 때

 

세션아이디는 어떻게 사이트를 개발하냐에 따라서 다르지만 로그아웃 한다고해서 세션이 변하지 않습니다.

한 번 CSRF페이지에서 로그인 한 후 생성되는 순간 XSS에서도 유지 되었습니다.

 

기본적으로 웹브라우저를 재부팅해야 세션이 재생성됩니다.

csrf환경에서는 로그인페이지를 들어왔을 때 세션이 달라지고, 로그인 한 후에 또 바뀌며 document.cookie를 막아놓은 상태였습니다.

 

그렇기 때문에 결론적으로 XSS로 세션 탈취가 만능이 아니라, 세션 탈취가 막히는 경우가 생길 수 있으므로, CSRF에 눈을 돌려 공격을 진행해야합니다.

 

 

 

☞ CSRF 공격 코드

 

GET방식

get방식이 가능하다면 이미지 태그를 이용한 요청을 보내면 쉽게 csrf가 가능합니다.

또한 요청을 보내고 알림창이 안뜨기 때문에 사용자 눈에 띄지 않고 정보변경이 가능합니다.

 

url로 이동도 가능하지만 몰래 변경을 위해 이미지 태그를 사용합니다.

 

이미지 파일이 아니더라도 요청이 가능합니다. img 에러는 떠있지만 요청은 들어갔으며 burp suite를 보면 확인 가능합니다.

 

 

 

 

POST방식

자바스크립트로 form을 submit할 때

submit 버튼없이 요청 가능합니다.

 

script태그를 밑에 쓰는 방법도 가능합니다.

 

이미지 에러 시 id를 쓰는 방법도 가능합니다.

 

 

보통 정보변경 페이지로 리다이렉트 되는 것을 숨기기 위해 iframe을 이용하지만

alert창은 제어가 불가능해서 알림이 안뜨게 할 수 없습니다. 

확인 클릭한 후 창을 닫거나, 리다이렉션은 가능하지만 몇초 시간뒤에 알림창을 닫는다거나, 스크립트를 이용해 엔터를 이용해 알림창을 닫는다거나 등의 제어가 불가능합니다.