목차
- 정의
- 취약점 포인트
- 발생 포인트 예시
- 공통점과 차이점
정의
XSS ▩
Cross-Site Scripting 공격
- 임의의 스크립트를 삽입하여 피해자의 브라우저에서 그 스크립트가 실행되도록 하는 공격
- [+] 자바스크립트 등의 클라이언트 측 스크립트 이용
CSRF ◐
Cross-Site Request Forgery
- 피해자가 원치 않는 임의의 요청을 하게 만드는 공격
- [+] 스크립트가 꼭 필요하지 않음
취약점 포인트
XSS ▩
- 공격자가 입력한 스크립트가 문자열 처리되지 않은 채 피해자 브라우저에서 실행되는 곳
- 종류: Stored XSS, Reflected XSS, DOM Based XSS 등
- <,',",> 등의 특수문자를 HTML Entity로 치환하여 대응할 수 있음
CSRF ◐
- 인증 정보가 포함되지 않은 모든 요청
- 요청이 GET 방식일 때, POST 방식일 때 공격 방법 다름
- 발견된 위치의 위험도에 따라 대응
- 요청에 공격자가 알 수 없는 인증 정보를 포함하거나 referrer 요청 헤더를 화이트리스트 기반으로 필터링하여 대응
- 위험도가 그렇게 크지 않다 싶으면 CSRF Token 포함
- SOP / CORS 보안 정책 준수 여부에 따라 도메인 내부에 XSS 없어도 공격 가능
발생 포인트 예시
XSS ▩
공격자가 입력한 스크립트가 문자열 처리되지 않은 채 피해자 브라우저에서 실행되는 곳
**모든 예시에 입력값을 HTML Entity로 치환시키는 로직이 없을 경우를 가정
- 마이페이지: GET 요청으로 받은 쿠키 데이터가 화면에 표시됨
- 댓글: 사용자 입력값이 그대로 서버에 저장되어 브라우저에 표시됨
- 검색창 오류문: GET요청으로 받은 입력값에 대한 검색 결과가 없을 시, 사용자 입력값을 포함한 경고문이 출력됨
CSRF ◐
인증 정보가 포함되지 않은 모든 요청
**모든 예시에 요청 파라미터에 비밀번호 등 사용자만 아는 인증 정보를 필요로 하지 않을 경우를 가정
**모든 예시에 요청 보낸 출처를 제대로 필터링하지 않을 경우를 가정
- 개인정보 변경: GET일 때-> 링크 이용 / POST일 때-> form태그 이용
- 게시글 작성
- 댓글 수정 등등..
SOP, CORS 정책이 준수되고 있는 경우 같은 도메인에서 XSS 포인트를 찾아야할 수 있음
공통점과 차이점
XSS | CSRF | ||
공통점 | 클라이언트 측 공격 (피해자 == 사용자) |
||
차이점 |
발생 이유 | 사용자가 자바스크립트 등을 삽입할 수 있게 함 | 요청 파라미터에 인증 정보가 없어 요청을 위조할 수 있음 |
클라이언트 측 스크립트 필요 여부 |
자바스크립트 등 필요 | 스크립트 없어도 링크 등을 통해 공격 가능 | |
공격자의 의도를 수행하는 주체 |
사용자 브라우저가 스크립트를 처리 | 서버가 요청 처리 | |
대응 방법 | 스크립트 못 넣게 함 HTML Entity 치환 |
요청 위조되면 위험한 곳: -> 비번 포함, referrer 체크 요청 위조돼도 덜 위험한 곳: -> CSRF Token 등 |
CSRF에 XSS를 활용하여 헷갈리는 경우가 있지만
이 둘은 다른 공격임
'모의해킹 스터디 복습' 카테고리의 다른 글
모의해킹 스터디 14주차(1): 파일 업로드 (0) | 2025.01.31 |
---|---|
모의해킹 스터디 13주차(2): CSRF - 보안 정책, 대응 방안 (0) | 2025.01.22 |
모의해킹 스터디 12주차: CSRF (사이트 간 요청 위조) (0) | 2025.01.14 |
모의해킹 스터디 11주차: XSS - 데이터 추출, 대응 방안 (0) | 2024.12.30 |
모의해킹 스터디 9-10주차: XSS (1) | 2024.12.19 |