전체 글 썸네일형 리스트형 파일 업로드(File Upload) 공격 파일 업로드 공격공격자가 원하는 임의의 파일을 업로드 하는 공격단순하게 파일을 올리는 것에 그치는 공격이 아니라, 파일이 웹 서버 상에서 실행되는 것을 목표로 하는 공격이다.파일이 서버측에 저장되어서 실행되는 공격이므로 서버 측 공격이다. 원인으로는 파일을 업로드 받을 때, 검증/검사를 하지 않아서 악성 파일이 업로드 될 경우 발생한다.공격 종류1. 서버 측 실행 공격서버는 각 백엔드 언어에 맞는 파일을 올려야지 엔진이 작동한다.업로드된 파일은 WAS(Web Application Server)에서 실행하고 실행한 결과물을 브라우저에 전송하게 되는데, 이 때 서버 권한을 가져올 수 있는 파일을 업로드하여 WAS가 실행시키게 하면, 서버 권한을 가져올 수 있다. 2. Phishing : HTML 파일HTML.. 더보기 CSRF 취약점 해결방안(SOP, CORS 이해) XSS: 클라이언트 측에서 실행하는 스크립트를 삽입하는 공격CSRF: 클라이언트가 원하지 않는데 공격자가 원하는 요청을 보내게 하는 공격 CSRF는 크게 GET방식(url)과 POST방식(form)으로 나누며,취약점은 모든 요청이 될 수 있다. CSRF 대응 방안 Referer 체크 Referer이란 현재 페이지로 이동하기 전에 방문한 페이지를 말한다.이 기능을 활용하여 요청이 어느 url에서 온 것인지 확인하고 허용할지 여부를 판단할 수 있다. 위의 이미지는 크롬 브라우저에서 구글을 실행하고 검색을 통해 네이버로 접속을 요청한 이미지이다.Referer을 통해 구글에서 네이버로 접속을 요청하고 있음을 알 수 있다. 위의 이미지는 이전 ctf 문제에서 가져온 request 패킷 목록이다.게시판 페이지에.. 더보기 객체지향 프로그래밍과 4가지 특징 프로그래밍을 하다 보면 객체, 객체지향이라는 말을 종종 듣게 된다. 이는 프로그래밍 패러다임 중 하나이며, 용어를 그대로 풀어서 쓴다면 객체를 지향하는 프로그래밍을 하라는 뜻이다. 여기서 말하는 객체란 과연 무엇인가? 용어 자체로 이해하는데에는 한계가 있기 때문에 예시를 통해 이해해보도록 하자. 객체란 하나의 단위를 뜻한다. 우리가 흔히 주변에서 볼 수 있는 사물로는 자동차가 있다. 자동차는 각각의 개체로 이루어진 프로그래밍 집합체이다. 자동차에서 핸들, 바퀴, 엔진, 기어 등은 각각의 기능을 가진다.핸들은 움직이는 방향을 조정하는 기능, 바퀴는 굴러갈 수 있도록 하는 기능. 이와 같은 부품들을 각각 객체라고 부르며 기능들이 모인 집합체가 바로 자동차이다. 프로그래밍도 마찬가지이다.(간단한 예시) .. 더보기 모의해킹 스터디 week12 수업내용 정리 CSRF서버로 요청을 하게 만드는 공격(Cross Site Request Forgery)클라이언트가 자신의 의도와는 무관하게 공격자가 원하는 요청을 하게 만드는 공격이다. 링크를 클릭하도록 유도하는 공격이다.* 컴퓨터에서 서버로 날라가는 요청과 링크를 클릭했을 때 전송되는 요청이 동일한 원리를 이용 예시) https://~~?(파라미터) XSS도 클라이언트 측 공격인데 CSRF와 어떤 차이점이 있는가?- XSS : 클라이언트 측 스크립트를 삽입하는 공격. 서버로 직접 요청하지 않고 클라이언트 측에서 스크립트를 실행시켜 클라이언트측의 데이터를 탈취하는 공격이다.- CSRF : 스크립트를 삽입하지 않아도 클라이언트가 의도하지 않은 요청을 하게 만드는 공격. 서버로의 직접적인 요청이 있지만 클라이언트는 인지하.. 더보기 XSS 취약점 해결 방안 HTML EntityHTML Entity는 HTML 문서에서 특정 문자나 기호를 명확하게 표현하기 위해 규정한 코드 규약이다.문서 작성시에 HTML의 여러 기호와 태그가 혼용되어 사용되는 것을 방지할 수 있다. <>>''"" function HTMLentity(input) { return unsafe .replace(//g, ">") .replace(/'/g, "'") .replace(/"/g, """);} 화이트 리스트 기반 필터링허용된 태그(tag)만 통과시키고 나머지 태그는 모두 차단하는 방식이다.즉, 화이트 리스트에 포함된 태그들만 이용 가능하며, 나머지 태그들은 모두 차단된다. 블랙 리스트 기반 필터.. 더보기 DOM Based XSS DOM이란?DOM은 Document Object Model의 줄임말로, 메모리에 웹 페이지 문서 구조를 트리 구조로 표현해서 웹 브라우저가 HTML 페이지를 인식하게 해주는 객체 모델을 의미한다. 또한 DOM 객체는 자바스크립트로 접근이 가능하다. 정의는 대충 이와 같고 간단하게 표현하자면 아래 이미지와 같다. 구조 : 각 HTML 요소(노드)가 트리처럼 계층적으로 연결되어 있다. 그리고 최상위 노드는 document 객체이다.조작 : Javascript를 이용하여, 특정 요소를 선택하거나 변경이 가능하며 이벤트를 줄 수도 있다.(아래 예시 참조) hello 1st 2nd 3rd .. 더보기 XSS를 이용한 쿠키 탈취 이전 9주차 모의해킹 스터디 수업에서 XSS를 이용하여 스크립트를 작성하는 방법을 배웠다. 위의 코드와 같이 발견된 취약점에서 POC(Proof of Concept)를 작성하여 스크립트를 띄웠다. 하지만 취약점을 발견해놓고 악의적인 코드를 삽입하지 못한다면 코드만 삽입하는 것은 아무런 의미가 없다! 실제로 모의해킹에서는 POC 기반으로 "여기 취약점이 있어요"라고 알려주는 방식으로 코드를 작성해야 하는 것은 맞지만, 나중에 실무에서 취약한 이유를 설명해야 한다면 alert(1)과 같은 코드만으로는 설명하기가 힘들 것이다. 그래서 이번 10주차 수업에서는 XSS를 이용하여 클라이언트의 쿠키를 탈취하는 방법을 배웠다.XSS - 쿠키 탈취XSS를 이용하여 쿠키를 탈취할 수 있다.웹 서버의 통신에서 세션ID가 .. 더보기 XSS(Stored XSS, Reflected XSS)의 이해 XSS크로스 사이트 스크립팅클라이언트 측에 스크립트를 삽입하여 공격하는 기법 SQL Injection은 SQL query를 삽입하여 서버를 공격하는 반면에 XSS는 클라이언트측에 스크립트를 삽입하여 이용자의 브라우저에서 실행되게 하는 것이 목적인 공격이다 공격 Point : 데이터가 저장되고, 출력되는 곳스크립트를 클라이언트 측에서 실행시키는 것이 목적인 공격이기 때문에 데이터를 저장하는 곳 뿐만 아니라, 출력되는 곳도 함께 존재해야함 따라서 작성한 데이터가 화면에 응답되는 모든 곳이 취약점 발생 가능 지점이다 공격 과정 작성한 데이터가 화면에 응답되는 것을 확인 - 데이터 입출력 확인 특수문자 체크( ) - 스크립트 삽입 시 이용 가능한 특수문자 확인 스크립트 삽입 보통 스크립트 삽입시에 POC(P.. 더보기 이전 1 2 3 4 5 6 ··· 8 다음