* 컨퍼런스
> 꼭! 시간이 되면 참여하기
> 코드게이트(연 초), POC, 화이트햇 콘테스트
** CSRF
피해자가 임의로 어떤 요청을 하게 만드는 것
ex) 비밀번호 변경, 돈 송금, 게시글 작성, 계정 생성 etc..
** 대응방안
1) 웹 메서드 변경: GET → POST
GET: URL 링크로 공격
▷ 우회 포인트
> POST 방식으로 보낸다. form 태그를 작성해서 공격을 수행한다 (XSS)
form 태그 전송 방법
① 클릭을 유도하는 방식
ex)
<form action = "~~" method ="post">
<input ~>
<input type = "submit" value = "Click Me!">
</form>
② 전송 자동화
onload라는 eventhandler 사용 → 이 태그들이 load 되면 바로 특정 form이 전송된다
<body onload="">
<form action = "~~" method ="post">
<input ~>
<input type = "submit" value = "Click Me!">
</form>
③ Stealth 버전
타겟 지정
<iframe>
<form action = "~~" method ="post" target="~">
<input ~>
<input type = "submit" value = "Click Me!">
</form>
xss, csrf는 프론트엔드를 더 많이 알아야한다 (ex.javascript)
이런 식으로 우회가 가능하기 때문에 제대로 된 대응방안이 아니다.
2) Referer 검증
> Referer 헤더 검증
→ Referer 헤더를 엄격하게 검증하면 CSRF 문제가 없다
▷ 우회 포인트
① Referer 체크를 도메인 단위로 하는 경우, 같은 도메인에서 XSS 취약점이 발견되면 우회가 가능하다
Referer이 상세 페이지가 아닌 도메인만 검증하는 경우가 있다
ex) http://normaltic.com/asdfasd (제거)
http://normaltic.com (검증)
② Referer가 없는 경우, 처리해주면 → 우회 가능 (false-positive)
Referrer 없애고 보내는 법
<meta name="referrer" content="no-referrer">
3) CSRF 토큰
→ 서버에서 응답할 때마다 랜덤한 난수값 생성 : asdfqfew13rkwefasd2r642
→ 세션에 token=asdfqfew13rkwefasd2r642
→ 응답할 때, 이 난수값을 같이 보내준다
<form>
<input token=asdfqfew13rkwefasd2r642>
</form>
토큰 비교 → 똑같으면 처리하고 다르면 처리해주지 않는다.
▷ 우회 포인트
① CSRF 토큰을 적용하지 않은 곳, 일회용이 아닌 곳
→ 공격자가 CSRF 토큰을 가져오고 스크립트에 적용할 수 있다
② CSRF 토큰이 세션에 연결되지 않은 경우
ex) 개발자가 CSRF Token Table에 Token 값을 저장할 때
→ 공격자가 CSRF 토큰을 가져오고 스크립트에 적용할 수 있다
③ XSS
→ XSS이 되면 CSRF 토큰을 써도 무조건 우회가 된다
iframe으로 CSRF 토큰을 가져와서 form 태그를 작성한다
XSS는 웬만하면 있을 수 있다
4) Captcha
→ 로봇이 아닙니다 뭐시기
→ CSRF 공격을 막기위해 나온 것이 아니다
→ 자동화 공격을 막기 위한 것 (매크로 방지)
→ Challenge / Solve 기반, 해결한 정답 제출
▷ 우회 포인트
① Challenge가 세션에 묶여있지 않을 때
→ 공격자가 Challenge를 직접 풀고 풀이값을 Captcha 값으로 넣어 보낼 수 있다
CSRF 토큰도 자동화 공격을 막을 수 있기 때문에 Captcha보다 CSRF 토큰 쓰는 게 낫다
5) 인증 정보 추가
→ 비밀번호, OTP...
▷ 우회 불가능
'Web Hacking Study > 수업 정리' 카테고리의 다른 글
| [10주차] File Upload 대응방안, File Download 공격개념, 대응방안 (0) | 2022.06.03 |
|---|---|
| [9주차] File Upload 공격 개념, 검증 및 우회 (0) | 2022.05.27 |
| [7주차] 이전 내용 복습, XSS 시나리오, CSRF 문제풀이, 대응방안 (0) | 2022.05.13 |
| [6주차] 5주차 복습, CSRF (0) | 2022.04.29 |
| [5주차] 4주차 복습, XSS (Stored XSS, Reflected XSS, DOM XSS) (0) | 2022.04.22 |
댓글